summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_wm.c
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2013-09-30 22:53:14 +1300
committerChris Forbes <chrisf@ijw.co.nz>2013-10-03 07:56:40 +1300
commit88f196ab6e2c3efcc75642533aad8bed8c87267a (patch)
treee213419200a9a01f03ac207d4e82656d4199ae02 /src/mesa/drivers/dri/i965/brw_wm.c
parent7df985ad47df831f842843f2db9f7658b11d3df2 (diff)
i965/hsw: Apply gather4 RG32F w/a using SCS instead of shader.
The new surface channel select bits allow us to avoid having to recompile the shader for this workaround. Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-and-tested-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 3d1ed447cc8..6ce58dda35a 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -346,8 +346,9 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx,
key->gl_clamp_mask[2] |= 1 << s;
}
- /* gather4's channel select for green from RG32F is broken */
- if (brw->gen >= 7 && prog->UsesGather) {
+ /* gather4's channel select for green from RG32F is broken;
+ * requires a shader w/a on IVB; fixable with just SCS on HSW. */
+ if (brw->gen >= 7 && !brw->is_haswell && prog->UsesGather) {
if (img->InternalFormat == GL_RG32F && GET_SWZ(t->_Swizzle, 0) == 1)
key->gather_channel_quirk_mask |= 1 << s;
}