Module: Mesa Branch: 17.3 Commit: 2475b3a56c1a3224991185b6f7527ed7c86e1dd8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2475b3a56c1a3224991185b6f7527ed7c86e1dd8
Author: Kenneth Graunke <kenn...@whitecape.org> Date: Mon Oct 23 15:46:47 2017 -0700 i965: Don't disable CCS for RT dependencies when dispatching compute. Compute shaders don't have access to the framebuffer, so there's no point in worrying whether a texture is bound as a render target. This saves a bunch of resolves in GFXBench4 Manhattan 3.1, but doesn't seem to impact performance at all, at least on Apollolake. Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> (cherry picked from commit 583ce96c9429e23c33daeb7025210ef73ae51688) --- src/mesa/drivers/dri/i965/brw_compute.c | 2 +- src/mesa/drivers/dri/i965/brw_context.h | 2 +- src/mesa/drivers/dri/i965/brw_draw.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_compute.c b/src/mesa/drivers/dri/i965/brw_compute.c index c1b2df590b..9be7523bab 100644 --- a/src/mesa/drivers/dri/i965/brw_compute.c +++ b/src/mesa/drivers/dri/i965/brw_compute.c @@ -177,7 +177,7 @@ brw_dispatch_compute_common(struct gl_context *ctx) brw_validate_textures(brw); - brw_predraw_resolve_inputs(brw); + brw_predraw_resolve_inputs(brw, false); /* Flush the batch if the batch/state buffers are nearly full. We can * grow them if needed, but this is not free, so we'd like to avoid it. diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index d6f2ed501f..386765b7f6 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1244,7 +1244,7 @@ void intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable); void intel_prepare_render(struct brw_context *brw); -void brw_predraw_resolve_inputs(struct brw_context *brw); +void brw_predraw_resolve_inputs(struct brw_context *brw, bool rendering); void intel_resolve_for_dri2_flush(struct brw_context *brw, __DRIdrawable *drawable); diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 19def47d09..83ab53bd27 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -382,7 +382,7 @@ intel_disable_rb_aux_buffer(struct brw_context *brw, * enabled depth texture, and flush the render cache for any dirty textures. */ void -brw_predraw_resolve_inputs(struct brw_context *brw) +brw_predraw_resolve_inputs(struct brw_context *brw, bool rendering) { struct gl_context *ctx = &brw->ctx; struct intel_texture_object *tex_obj; @@ -417,7 +417,7 @@ brw_predraw_resolve_inputs(struct brw_context *brw) num_layers = INTEL_REMAINING_LAYERS; } - const bool disable_aux = + const bool disable_aux = rendering && intel_disable_rb_aux_buffer(brw, tex_obj->mt, min_level, num_levels, "for sampling"); @@ -697,7 +697,7 @@ brw_prepare_drawing(struct gl_context *ctx, * and finalizing textures but before setting up any hardware state for * this draw call. */ - brw_predraw_resolve_inputs(brw); + brw_predraw_resolve_inputs(brw, true); brw_predraw_resolve_framebuffer(brw); /* Bind all inputs, derive varying and size information: _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit