radv: implement VK_KHR_depth_stencil_resolve

Submitted by Samuel Pitoiset on May 27, 2019, 3:38 p.m.

Details

Reviewer None
Submitted May 27, 2019, 3:38 p.m.
Last Updated May 27, 2019, 3:38 p.m.
Revision 1

Cover Letter(s)

Revision 1
      Hi,

This series implements depth/stencil resolves inside a subpass as
required by VK_KHR_depth_stencil_resolve. I implemented all resolve
modes with graphics and compute. Graphics doesn't support layers but
it's not required to decompress HiZ before resolving. While compute
supports layers but it requires a decompression pass.

All CTS tests pass on Polaris10 and Vega10.

Please review,
Thanks!

Samuel Pitoiset (7):
  radv: record if a render pass has depth/stencil resolve attachments
  radv: implement all depth/stencil resolve modes using graphics
  radv: implement all depth/stencil resolve modes using compute
  radv: select the depth/stencil resolve method based on some conditions
  radv: decompress HTILE if the resolve src image is compressed
  radv: clear the depth/stencil resolve attachment if necessary
  radv: add support for VK_KHR_depth_stencil_resolve

 src/amd/vulkan/radv_device.c          |  21 +
 src/amd/vulkan/radv_extensions.py     |   1 +
 src/amd/vulkan/radv_meta_clear.c      |  73 +++-
 src/amd/vulkan/radv_meta_resolve.c    | 103 ++++-
 src/amd/vulkan/radv_meta_resolve_cs.c | 491 +++++++++++++++++++++
 src/amd/vulkan/radv_meta_resolve_fs.c | 597 +++++++++++++++++++++++++-
 src/amd/vulkan/radv_pass.c            |  30 +-
 src/amd/vulkan/radv_private.h         |  37 ++
 8 files changed, 1319 insertions(+), 34 deletions(-)
    

Revisions