diff options
author | Marek Olšák <maraeo@gmail.com> | 2011-03-12 06:11:18 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2011-03-12 07:56:33 +0100 |
commit | 4b92c688a45480027390764b06077105298666c3 (patch) | |
tree | cc3f8a13d2082ec9f145bdfc422cd43fc272cc21 /src/gallium/drivers/r300/r300_state.c | |
parent | e4707604ab46252d2e010906124775d3300f0be1 (diff) | |
download | external_mesa3d-4b92c688a45480027390764b06077105298666c3.zip external_mesa3d-4b92c688a45480027390764b06077105298666c3.tar.gz external_mesa3d-4b92c688a45480027390764b06077105298666c3.tar.bz2 |
r300g: implement fragment color clamping in the shader
This finishes the implementation of the fragment color clamp control
for ARB_color_buffer_float. I don't wanna keep this stuff in a branch...
Diffstat (limited to 'src/gallium/drivers/r300/r300_state.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_state.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 49c2b88..f0830e1 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -195,6 +195,8 @@ static void* r300_create_blend_state(struct pipe_context* pipe, boolean clamp = TRUE; CB_LOCALS; + blend->state = *state; + if (state->rt[0].blend_enable) { unsigned eqRGB = state->rt[0].rgb_func; @@ -377,6 +379,10 @@ static void r300_bind_blend_state(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); UPDATE_STATE(state, r300->blend_state); + + if (r300->fs.state && r300_pick_fragment_shader(r300)) { + r300_mark_fs_code_dirty(r300); + } } /* Free blend state. */ |