Mesa (master): r300-gallium: Correctly flush Draw.
Corbin Simpson
csimpson at kemper.freedesktop.org
Sun Apr 26 17:06:53 UTC 2009
Module: Mesa
Branch: master
Commit: 904b563fd027c05a9755bc07719c55099ab5a9fd
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=904b563fd027c05a9755bc07719c55099ab5a9fd
Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date: Sun Apr 26 10:06:02 2009 -0700
r300-gallium: Correctly flush Draw.
Should help with a few non-TCL bugs.
---
src/gallium/drivers/r300/r300_state.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index c9507ae..184a23c 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -421,6 +421,7 @@ static void r300_bind_rs_state(struct pipe_context* pipe, void* state)
struct r300_context* r300 = r300_context(pipe);
struct r300_rs_state* rs = (struct r300_rs_state*)state;
+ draw_flush(r300->draw);
draw_set_rasterizer_state(r300->draw, &rs->rs);
r300->rs_state = rs;
@@ -528,7 +529,6 @@ static void r300_set_scissor_state(struct pipe_context* pipe,
const struct pipe_scissor_state* state)
{
struct r300_context* r300 = r300_context(pipe);
- draw_flush(r300->draw);
if (r300_screen(r300->context.screen)->caps->is_r500) {
r300->scissor_state->scissor_top_left =
@@ -555,6 +555,8 @@ static void r300_set_viewport_state(struct pipe_context* pipe,
{
struct r300_context* r300 = r300_context(pipe);
+ draw_flush(r300->draw);
+
if (r300_screen(r300->context.screen)->caps->has_tcl) {
/* Do the transform in HW. */
r300->viewport_state->vte_control = R300_VTX_W0_FMT;
@@ -642,6 +644,8 @@ static void r300_bind_vs_state(struct pipe_context* pipe, void* shader)
{
struct r300_context* r300 = r300_context(pipe);
+ draw_flush(r300->draw);
+
if (r300_screen(pipe->screen)->caps->has_tcl) {
struct r300_vertex_shader* vs = (struct r300_vertex_shader*)shader;
More information about the mesa-commit
mailing list