/* _NEW_FRAG_CLAMP */
raster->clamp_fragment_color = !st->clamp_frag_color_in_shader &&
- ctx->Color._ClampFragmentColor;
+ ctx->Color._ClampFragmentColor &&
+ !ctx->DrawBuffer->_IntegerColor;
raster->gl_rasterization_rules = 1;
/* _NEW_RASTERIZER_DISCARD */
/* _NEW_FRAG_CLAMP */
key.clamp_color = st->clamp_frag_color_in_shader &&
- st->ctx->Color._ClampFragmentColor;
+ st->ctx->Color._ClampFragmentColor &&
+ !st->ctx->DrawBuffer->_IntegerColor;
st->fp_variant = st_get_fp_variant(st, stfp, &key);
const struct st_tracked_state st_update_fp = {
"st_update_fp", /* name */
{ /* dirty */
- 0, /* mesa */
+ _NEW_BUFFERS, /* mesa */
ST_NEW_FRAGMENT_PROGRAM /* st */
},
update_fp /* update */
key.st = st;
key.bitmap = GL_TRUE;
key.clamp_color = st->clamp_frag_color_in_shader &&
- st->ctx->Color._ClampFragmentColor;
+ st->ctx->Color._ClampFragmentColor &&
+ !st->ctx->DrawBuffer->_IntegerColor;
fpv = st_get_fp_variant(st, st->fp, &key);
struct pipe_rasterizer_state rasterizer;
memset(&rasterizer, 0, sizeof(rasterizer));
rasterizer.clamp_fragment_color = !st->clamp_frag_color_in_shader &&
- ctx->Color._ClampFragmentColor;
+ ctx->Color._ClampFragmentColor &&
+ !ctx->DrawBuffer->_IntegerColor;
rasterizer.gl_rasterization_rules = 1;
rasterizer.depth_clip = !ctx->Transform.DepthClamp;
rasterizer.scissor = ctx->Scissor.Enabled;
ctx->Pixel.AlphaScale != 1.0);
key.pixelMaps = ctx->Pixel.MapColorFlag;
key.clamp_color = st->clamp_frag_color_in_shader &&
- st->ctx->Color._ClampFragmentColor;
+ st->ctx->Color._ClampFragmentColor &&
+ !st->ctx->DrawBuffer->_IntegerColor;
fpv = st_get_fp_variant(st, st->fp, &key);