Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> --- src/mesa/drivers/dri/i965/brw_program.h | 7 +++++++ src/mesa/drivers/dri/i965/brw_wm.c | 7 +++++++ 2 files changed, 14 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_program.h b/src/mesa/drivers/dri/i965/brw_program.h index 6aa0ac1..fc00517 100644 --- a/src/mesa/drivers/dri/i965/brw_program.h +++ b/src/mesa/drivers/dri/i965/brw_program.h @@ -55,6 +55,13 @@ struct brw_sampler_prog_key_data { * For Sandybridge, which shader w/a we need for gather quirks. */ uint8_t gen6_gather_wa[MAX_SAMPLERS]; + + /** + * ARB_stencil_texturing on gen6/7 requires W-tiled surface to be + * configured as Y-tiled for the HW, and then for the fragment program + * to compensate for the difference in coordinates. + */ + uint16_t translate_y_to_w[MAX_SAMPLERS]; }; #ifdef __cplusplus diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 9edb245..cab37ad 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -231,6 +231,9 @@ brw_debug_recompile_sampler_key(struct brw_context *brw, for (unsigned int i = 0; i < MAX_SAMPLERS; i++) { found |= key_debug(brw, "EXT_texture_swizzle or DEPTH_TEXTURE_MODE", old_key->swizzles[i], key->swizzles[i]); + found |= key_debug(brw, "texturing needs Y to W tiling translation", + old_key->translate_y_to_w[i], + key->translate_y_to_w[i]); } found |= key_debug(brw, "GL_CLAMP enabled on any texture unit's 1st coordinate", old_key->gl_clamp_mask[0], key->gl_clamp_mask[0]); @@ -330,6 +333,7 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx, for (int s = 0; s < sampler_count; s++) { key->swizzles[s] = SWIZZLE_NOOP; + key->translate_y_to_w[s] = false; if (!(prog->SamplersUsed & (1 << s))) continue; @@ -387,6 +391,9 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx, intel_tex->mt->msaa_layout == INTEL_MSAA_LAYOUT_CMS) { key->compressed_multisample_layout_mask |= 1 << s; } + + if (brw->gen < 8 && t->StencilSampling) + key->translate_y_to_w[s] = true; } } } -- 1.8.3.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev