summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Bornecrantz <wallbraker@gmail.com>2011-02-26 01:48:27 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2011-02-26 14:58:41 +0100
commitbe724185d44011636090259aff2f6a98bd0f6e91 (patch)
tree0127f233b54fbca46b6a144a30e4ccbf39c97d9a
parent0bdc24e6485cf475d788439febc1c23e2a661cb4 (diff)
i915g: Experimental fix for weird issue
-rw-r--r--src/gallium/auxiliary/draw/draw_context.c5
-rw-r--r--src/gallium/auxiliary/draw/draw_context.h1
-rw-r--r--src/gallium/drivers/i915/i915_state_derived.c1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c
index 2e38dacd1f..0b8ba4065e 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -199,6 +199,11 @@ void draw_flush( struct draw_context *draw )
draw_do_flush( draw, DRAW_FLUSH_BACKEND );
}
+void draw_flush_state( struct draw_context *draw )
+{
+ draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE );
+}
+
/**
* Specify the Minimum Resolvable Depth factor for polygon offset.
diff --git a/src/gallium/auxiliary/draw/draw_context.h b/src/gallium/auxiliary/draw/draw_context.h
index a0b217e4d3..065f28cdbd 100644
--- a/src/gallium/auxiliary/draw/draw_context.h
+++ b/src/gallium/auxiliary/draw/draw_context.h
@@ -60,6 +60,7 @@ draw_create_gallivm(struct pipe_context *pipe, struct gallivm_state *gallivm);
void draw_destroy( struct draw_context *draw );
void draw_flush(struct draw_context *draw);
+void draw_flush_state(struct draw_context *draw);
void draw_set_viewport_state( struct draw_context *draw,
const struct pipe_viewport_state *viewport );
diff --git a/src/gallium/drivers/i915/i915_state_derived.c b/src/gallium/drivers/i915/i915_state_derived.c
index 1d4026a214..341e4c2c96 100644
--- a/src/gallium/drivers/i915/i915_state_derived.c
+++ b/src/gallium/drivers/i915/i915_state_derived.c
@@ -144,6 +144,7 @@ static void calculate_vertex_layout(struct i915_context *i915)
i915->dirty |= I915_NEW_VERTEX_FORMAT;
memcpy(&i915->current.vertex_info, &vinfo, sizeof(vinfo));
+ draw_flush_state(i915->draw);
}
}