diff options
author | Dave Airlie <airlied@redhat.com> | 2009-06-07 16:51:32 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-06-07 16:51:32 +1000 |
commit | 545e574cd9a2a659cd9a93879dff8884bd247558 (patch) | |
tree | f56d65eaa851edfb1248a6fc8ac0bae4cc98eff5 /src/gallium/drivers/r300/r300_state.c | |
parent | e2aedfa62079ff1a333e1f4e56faea303cc36edb (diff) | |
parent | f1edfa09ea50e8833ddbf241da4d36fd38685e9d (diff) |
Merge remote branch 'origin/master' into radeon-rewrite
Diffstat (limited to 'src/gallium/drivers/r300/r300_state.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_state.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 4e65fbbabe..29e721984f 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -119,9 +119,10 @@ static void r300_set_clip_state(struct pipe_context* pipe, const struct pipe_clip_state* state) { struct r300_context* r300 = r300_context(pipe); - /* XXX add HW TCL clipping setup */ - draw_flush(r300->draw); - draw_set_clip_state(r300->draw, state); + + r300->clip_state = *state; + + r300->dirty_state |= R300_NEW_CLIP; } static void @@ -151,10 +152,12 @@ static void /* If the number of constants have changed, invalidate the shader. */ if (r300->shader_constants[shader].user_count != i) { - if (shader == PIPE_SHADER_FRAGMENT && r300->fs) { + if (shader == PIPE_SHADER_FRAGMENT && r300->fs && + r300->fs->uses_imms) { r300->fs->translated = FALSE; r300_translate_fragment_shader(r300, r300->fs); - } else if (shader == PIPE_SHADER_VERTEX && r300->vs) { + } else if (shader == PIPE_SHADER_VERTEX && r300->vs && + r300->vs->uses_imms) { r300->vs->translated = FALSE; r300_translate_vertex_shader(r300, r300->vs); } |