[Mesa-dev] [PATCH 00/22] anv: Move CCS resolves to layout transitions
Nanley Chery
nanleychery at gmail.com
Thu Apr 27 18:31:59 UTC 2017
Resolves of CCS-enabled image subresources are currently tied to the
scope of a subpass. This can cause us to lose clear data compression
prematurely in some cases. For example, an application can record a
render pass that only clears followed by another render pass that only
draws. The driver would do a fast-clear then immediately resolve the
color buffers before the second render pass.
This series instead ties the lifetime of clear data compression to the
scope of the image layout. In the above example, the application would
presumably keep the image in the
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL layout across both render
passes and so the driver would avoid the intermediate resolve.
----
This series improves the average frame rate of a Dota 2 benchmark by
3.04% on my SKL GT4. The frame rates are now similar to those seen when
running it with INTEL_DEBUG=norbc. The benchmark was run three times at
1080p in release mode.
Six tests in dEQP-VK.geometry.layered.3d.* now fail, but I've attributed
the failures to a test bug and filed a bug report.
----
Cc: Jason Ekstrand <jason at jlekstrand.net>
Nanley Chery (22):
intel/isl: Limit CCS to one subresource on gen7
intel/isl: Only create a CCS buffer if the image supports rendering
intel/isl: Add surface state clear value information
anv: Add color auxiliary buffer helpers
anv/image: Append CCS/MCS with a clear value buffer
anv/image: Remove incorrect assertion in anv_BindImage
anv/image: Initialize the clear values buffer
anv/cmd_buffer: Always enable CCS_D in render passes
anv/cmd_buffer: Don't partially fast-clear image layers
anv/cmd_buffer: Disable fast clears in the GENERAL layout
anv/cmd_buffer: Ensure the fast clear values are correct
anv/gpu_memcpy: Add a lighter-weight memcpy path
blorp/clear: Add a binding-table-based CCS resolve function
anv/blorp: Add a surface-state-based CCS resolve function
anv/cmd_buffer: Adjust the image view reloc function
anv/cmd_buffer: Add transition_color_buffer()
anv: Add anv_get_sliceCount()
anv/cmd_buffer: Perform color buffer layout transitions
anv/blorp: Stop resolving CCS implicitly
anv/pass: Get rid of anv_subpass_usage
intel/blorp: Allow BLORP calls to be predicated
anv: Predicate fast-clear resolves
src/intel/blorp/blorp.h | 12 +
src/intel/blorp/blorp_clear.c | 64 +++--
src/intel/blorp/blorp_genX_exec.h | 3 +
src/intel/isl/isl.c | 20 +-
src/intel/isl/isl.h | 4 +
src/intel/vulkan/anv_blorp.c | 188 +++-----------
src/intel/vulkan/anv_image.c | 153 ++++++++++-
src/intel/vulkan/anv_pass.c | 36 ++-
src/intel/vulkan/anv_private.h | 68 ++++-
src/intel/vulkan/genX_cmd_buffer.c | 507 ++++++++++++++++++++++++++++++-------
src/intel/vulkan/genX_gpu_memcpy.c | 38 +++
11 files changed, 801 insertions(+), 292 deletions(-)
--
2.12.2
More information about the mesa-dev
mailing list