summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/swr/swr_state.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp
index d19acfbb347..65327f39d02 100644
--- a/src/gallium/drivers/swr/swr_state.cpp
+++ b/src/gallium/drivers/swr/swr_state.cpp
@@ -1318,7 +1318,12 @@ swr_update_derived(struct pipe_context *pipe,
compileState.desc.alphaTestEnable =
ctx->depth_stencil->alpha.enabled;
compileState.desc.independentAlphaBlendEnable =
- ctx->blend->pipe.independent_blend_enable;
+ (compileState.blendState.sourceBlendFactor !=
+ compileState.blendState.sourceAlphaBlendFactor) ||
+ (compileState.blendState.destBlendFactor !=
+ compileState.blendState.destAlphaBlendFactor) ||
+ (compileState.blendState.colorBlendFunc !=
+ compileState.blendState.alphaBlendFunc);
compileState.desc.alphaToCoverageEnable =
ctx->blend->pipe.alpha_to_coverage;
compileState.desc.sampleMaskEnable = 0; // XXX