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@jlekstrand.net> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
parent
e91c3540fc
commit
583ce96c94
|
@ -177,7 +177,7 @@ brw_dispatch_compute_common(struct gl_context *ctx)
|
||||||
|
|
||||||
brw_validate_textures(brw);
|
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
|
/* 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.
|
* grow them if needed, but this is not free, so we'd like to avoid it.
|
||||||
|
|
|
@ -1234,7 +1234,7 @@ void intel_update_renderbuffers(__DRIcontext *context,
|
||||||
__DRIdrawable *drawable);
|
__DRIdrawable *drawable);
|
||||||
void intel_prepare_render(struct brw_context *brw);
|
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,
|
void intel_resolve_for_dri2_flush(struct brw_context *brw,
|
||||||
__DRIdrawable *drawable);
|
__DRIdrawable *drawable);
|
||||||
|
|
|
@ -381,7 +381,7 @@ intel_disable_rb_aux_buffer(struct brw_context *brw,
|
||||||
* enabled depth texture, and flush the render cache for any dirty textures.
|
* enabled depth texture, and flush the render cache for any dirty textures.
|
||||||
*/
|
*/
|
||||||
void
|
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 gl_context *ctx = &brw->ctx;
|
||||||
struct intel_texture_object *tex_obj;
|
struct intel_texture_object *tex_obj;
|
||||||
|
@ -416,7 +416,7 @@ brw_predraw_resolve_inputs(struct brw_context *brw)
|
||||||
num_layers = INTEL_REMAINING_LAYERS;
|
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,
|
intel_disable_rb_aux_buffer(brw, tex_obj->mt, min_level, num_levels,
|
||||||
"for sampling");
|
"for sampling");
|
||||||
|
|
||||||
|
@ -678,7 +678,7 @@ brw_prepare_drawing(struct gl_context *ctx,
|
||||||
* and finalizing textures but before setting up any hardware state for
|
* and finalizing textures but before setting up any hardware state for
|
||||||
* this draw call.
|
* this draw call.
|
||||||
*/
|
*/
|
||||||
brw_predraw_resolve_inputs(brw);
|
brw_predraw_resolve_inputs(brw, true);
|
||||||
brw_predraw_resolve_framebuffer(brw);
|
brw_predraw_resolve_framebuffer(brw);
|
||||||
|
|
||||||
/* Bind all inputs, derive varying and size information:
|
/* Bind all inputs, derive varying and size information:
|
||||||
|
|
Loading…
Reference in New Issue