summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-10-22 16:45:50 -0600
committerBrian Paul <brianp@vmware.com>2009-10-22 16:52:59 -0600
commit8810b8f67135185d1044746bb861fe2ff997626c (patch)
tree7cb6a53695929c7241605f55d5d954450176a5fa /src
parentc24466c34e7aeb8aeda2455f6a688b99c44b10e2 (diff)
i965: fix hacked Fallback usage in brw_prepare_vertices()
Setting intel->Fallback = 1 clobbered any fallback state that was already set. Not sure where this hack originated (the git history is a little convoluted). Define and use a new BRW_FALLBACK_DRAW bit instead. This shouldn't break anything and could potentially fix some bugs (but no specific ones are known).
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw_upload.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index da0e091bfd..b1e7ec8465 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -116,6 +116,8 @@
*/
+#define BRW_FALLBACK_DRAW (INTEL_FALLBACK_DRIVER << 0)
+
#define BRW_MAX_CURBE (32*16)
struct brw_context;
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index 9d089e113e..4f8ceb37bd 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -375,9 +375,10 @@ static void brw_prepare_vertices(struct brw_context *brw)
* isn't an issue at this point.
*/
if (brw->vb.nr_enabled >= BRW_VEP_MAX) {
- intel->Fallback = 1;
+ FALLBACK(intel, BRW_FALLBACK_DRAW, GL_TRUE);
return;
}
+ FALLBACK(intel, BRW_FALLBACK_DRAW, GL_FALSE);
for (i = 0; i < brw->vb.nr_enabled; i++) {
struct brw_vertex_element *input = brw->vb.enabled[i];
@@ -427,9 +428,10 @@ static void brw_prepare_vertices(struct brw_context *brw)
/* Position array not properly enabled:
*/
if (input->glarray->StrideB == 0) {
- intel->Fallback = 1;
+ FALLBACK(intel, BRW_FALLBACK_DRAW, GL_TRUE);
return;
}
+ FALLBACK(intel, BRW_FALLBACK_DRAW, GL_FALSE);
interleave = input->glarray->StrideB;
ptr = input->glarray->Ptr;