From: Kevin Rogovin <kevin.rogo...@intel.com> Perform the ASTC5x5 workaround tasks for drawing; note that the function does not do anything and immediately returns if the bug is not present on the hardware.
Signed-off-by: Kevin Rogovin <kevin.rogo...@intel.com> --- src/mesa/drivers/dri/i965/brw_draw.c | 6 ++++++ src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 7e29dcfd4e..f335c2bd64 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -684,6 +684,12 @@ brw_prepare_drawing(struct gl_context *ctx, brw_predraw_resolve_inputs(brw, true); brw_predraw_resolve_framebuffer(brw); + /* if necessary, perform astc5x5 workarounds to make sure any sampler does + * not sample sample from a surface using an auxilary buffer within the + * same batch of sampling from a surface with an ASTC5x5 format + */ + brw_astc5x5_perform_wa(brw); + /* Bind all inputs, derive varying and size information: */ brw_merge_inputs(brw, arrays); diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index adf60a840b..ccdb537227 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -447,6 +447,11 @@ brw_aux_surface_disabled(const struct brw_context *brw, { const struct gl_framebuffer *fb = brw->ctx.DrawBuffer; + if (brw->astc5x5_wa.required && + brw->astc5x5_wa.texture_astc5x5_present) { + return true; + } + for (unsigned i = 0; i < fb->_NumColorDrawBuffers; i++) { const struct intel_renderbuffer *irb = intel_renderbuffer(fb->_ColorDrawBuffers[i]); -- 2.14.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev