diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2017-12-13 17:25:26 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2018-01-16 21:41:32 -0800 |
commit | d84275b884244a2fd3a6e67ceb2a5277e5edf89a (patch) | |
tree | 1e990a0c971353c3eb8c28ff82b7446fc36c5ac1 /src/mesa/drivers/dri/i965/intel_fbo.h | |
parent | 622786c20c6cd073071b00ddf6e50c447f8c5768 (diff) |
i965: Track format and aux usage in the render cache
This lets us perform render cache flushes whenever a surface goes from
being used with one aux+format to a different aux+format.
This is the "proper" fix for https://bugs.freedesktop.org/102435.
ee57b15ec764736e2d5360beaef9fb2045ed0f68 which was really just a partial
revert of 3e57e9494c2279580ad6a83ab8c065d01e7e634e was just a hack to
get rid of a hang in a bunch of Valve games. This solves the actual
problem responsible for the hang and lets us enable CCS_E once again.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102435
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "17.3" <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_fbo.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_fbo.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_fbo.h b/src/mesa/drivers/dri/i965/intel_fbo.h index 10be4bbc7dc..88a5b6732b2 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.h +++ b/src/mesa/drivers/dri/i965/intel_fbo.h @@ -236,9 +236,13 @@ intel_renderbuffer_upsample(struct brw_context *brw, void brw_cache_sets_clear(struct brw_context *brw); void brw_cache_flush_for_read(struct brw_context *brw, struct brw_bo *bo); -void brw_cache_flush_for_render(struct brw_context *brw, struct brw_bo *bo); +void brw_cache_flush_for_render(struct brw_context *brw, struct brw_bo *bo, + enum isl_format format, + enum isl_aux_usage aux_usage); void brw_cache_flush_for_depth(struct brw_context *brw, struct brw_bo *bo); -void brw_render_cache_add_bo(struct brw_context *brw, struct brw_bo *bo); +void brw_render_cache_add_bo(struct brw_context *brw, struct brw_bo *bo, + enum isl_format format, + enum isl_aux_usage aux_usage); void brw_depth_cache_add_bo(struct brw_context *brw, struct brw_bo *bo); unsigned |