summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2010-04-11 08:04:37 +1000
committerDave Airlie <[email protected]>2010-04-11 08:08:49 +1000
commit21ba2cd63239eed4930959218cf5b03c56b26065 (patch)
treea9b555894966148e5b36fff1b984b4ad5d4304e0
parent9b3df661bd50b34ca73ae55f98ced64fd970f443 (diff)
r300g: hack around issue with doom3 and 0 stride
This is most likely a bug in the mesa state tracker, but do the quick hack for now to avoid the divide by 0. reported and hack generated by almos on #radeon Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r--src/gallium/drivers/r300/r300_state.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index 52b89104b99..30f1df7bf66 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -1146,6 +1146,11 @@ static void r300_set_vertex_buffers(struct pipe_context* pipe,
if (vbo->max_index == ~0) {
/* Bogus value from broken state tracker; hax it. */
+ /* TODO - more hax - fixes doom3 from almos on irc */
+ if (!vbo->stride) {
+ fprintf(stderr, "r300: got a VBO with stride 0 fixing up to stide 4\n");
+ vbo->stride = 4;
+ }
vbo->max_index =
(vbo->buffer->width0 - vbo->buffer_offset) / vbo->stride;
}