Mesa (17.3): i965: Don't disable CCS for RT dependencies when dispatching compute.
Emil Velikov
evelikov at kemper.freedesktop.org
Tue Feb 27 00:20:28 UTC 2018
Module: Mesa
Branch: 17.3
Commit: 2475b3a56c1a3224991185b6f7527ed7c86e1dd8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2475b3a56c1a3224991185b6f7527ed7c86e1dd8
Author: Kenneth Graunke <kenneth at 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 <jason at jlekstrand.net>
Reviewed-by: Iago Toral Quiroga <itoral at 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:
More information about the mesa-commit
mailing list