diff options
author | José Fonseca <jfonseca@vmware.com> | 2010-01-05 17:32:19 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2010-01-05 17:32:53 +0000 |
commit | 8ebef37c7ba67c4449367b95821293176a0a370b (patch) | |
tree | d803c5c435c45c32912ca00c56cf28f96e9b6cbe /src/gallium/drivers/svga/svga_state_fs.c | |
parent | ef1b9426918a29b7ddd28601b0e53ed683abb89a (diff) |
svga: Rebind shaders when tokens change.
Even shader ID doesn't change. Otherwise the token change is not
effective.
This reverts regression from commit
cdb445f3a9285e2d8f042a07021ade78b94e0156. Regression could be seen in
Quake3's loading screen -- the upper right corner of the screen would
be black.
Diffstat (limited to 'src/gallium/drivers/svga/svga_state_fs.c')
-rw-r--r-- | src/gallium/drivers/svga/svga_state_fs.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/gallium/drivers/svga/svga_state_fs.c b/src/gallium/drivers/svga/svga_state_fs.c index 1902b0106b..272d1dd14e 100644 --- a/src/gallium/drivers/svga/svga_state_fs.c +++ b/src/gallium/drivers/svga/svga_state_fs.c @@ -268,16 +268,13 @@ static int emit_hw_fs( struct svga_context *svga, assert(id != SVGA3D_INVALID_ID); if (result != svga->state.hw_draw.fs) { - if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT]) { - ret = SVGA3D_SetShader(svga->swc, - SVGA3D_SHADERTYPE_PS, - id ); - if (ret) - return ret; - } + ret = SVGA3D_SetShader(svga->swc, + SVGA3D_SHADERTYPE_PS, + id ); + if (ret) + return ret; svga->dirty |= SVGA_NEW_FS_RESULT; - svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT] = id; svga->state.hw_draw.fs = result; } |