[Mesa-dev] [PATCH v4 00/18] anv: Do CCS resolves at layout transitions

Jason Ekstrand jason at jlekstrand.net
Fri Jul 21 23:01:45 UTC 2017


On Wed, Jul 19, 2017 at 2:28 PM, Nanley Chery <nanleychery at gmail.com> wrote:

> On Wed, Jul 19, 2017 at 02:21:52PM -0700, Nanley Chery wrote:
> > In this revision:
> > * review feedback is incorporated.
> > * a couple of bugs caught by a new dEQP version are fixed:
> >   - image data could be lost if CCS_D wasn't enabled in render passes
> >     before we started doing explicit layout transitions on images with
> >     that auxiliary buffer.
> >   - subpass resolves with multisampled images ignored CCS_D.
> > * the Haswell boxes in jenkins start to GPU hang, but the don't do so
> >   on my local machine.
>
> To be more specific, hanging is observed sporadically but each run
> returns failures. I'm not sure if the failure list is the same every
> time. Here's the list of failures from my last run:
>
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.a2b10g10r10_unorm_pack32.r16_unorm.optimal_optimal_nearest.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r16_unorm.r8g8b8a8_unorm.general_general_linear.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r16g16b16_snorm.a2b10g10r10_unorm_pack32.
> optimal_general_linear.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r16g16b16a16_sfloat.a2r10g10b10_unorm_pack32.
> optimal_optimal_linear.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r32g32_sfloat.r8_unorm.general_general_linear.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r8_snorm.b8g8r8a8_unorm.optimal_general_linear.hswm64
> dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.
> color.r8g8b8_unorm.r8g8b8a8_snorm.general_general_linear.hswm64
> dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_
> image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_
> unorm.optimal_general.hswm64
> dEQP-VK.api.image_clearing.core.clear_color_image.2d_r32_
> sint_multiple_layers.hswm64
> dEQP-VK.api.image_clearing.core.clear_color_image.2d_
> r32g32b32_uint_multiple_layers.hswm64
>

I pointed out one more issue with not subtracting base_layer.  Maybe this
is related and we're accidentally trying to resolve non-existant layers on
HSW?  I kind-of doubt it.


> dEQP-VK.api.image_clearing.dedicated_allocation.clear_
> color_image.2d_r32g32b32_uint_multiple_layers.hswm64
>

And you didn't see any hangs with Haswell before?  Ugh...  One guess would
be to try implementing full end-of-pipe sync operations like we did in GL.
I have no idea if that will help but it seemed to help HSW on GL.

I left a couple of comments here and there but, other than those, The
series is

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

That said, I really don't want to torch haswell so I'd like to get that
sorted out before we land anything.  I'd like this to make 17.2 but losing
stability isn't worth it to gain a couple FPS.  If we can get the HSW
issues resolved quickly enough, we may land and have Emil back-port it.

--Jason


> >
> > Nanley Chery (18):
> >   anv: Transition MCS buffers from the undefined layout
> >   intel/isl: Add surface state clear value information
> >   anv/image: Disable CCS if the image doesn't support rendering
> >   anv/image: Append CCS/MCS with a fast-clear state buffer
> >   anv/cmd_buffer: Initialize the clear values buffer
> >   anv/cmd_buffer: Don't partially fast clear image layers
> >   anv/cmd_buffer: Restrict fast clears in the GENERAL layout
> >   anv/gpu_memcpy: Add a lighter-weight GPU memcpy function
> >   anv/cmd_buffer: Ensure fast-clear values are current
> >   anv/cmd_buffer: Disable CCS on gen7 color attachments upfront
> >   anv/cmd_buffer: Always enable CCS_D in render passes
> >   anv/cmd_buffer: Move aux_usage assignment up
> >   anv/cmd_buffer: Warn about not enabling CCS_E
> >   anv: Transition more color buffer layouts
> >   anv: Stop resolving CCS implicitly
> >   anv/cmd_buffer: Skip some input attachment transitions
> >   intel/blorp: Allow BLORP calls to be predicated
> >   anv: Predicate fast-clear resolves
> >
> >  src/intel/blorp/blorp.h            |   3 +
> >  src/intel/blorp/blorp_genX_exec.h  |   3 +
> >  src/intel/isl/isl.c                |   9 +
> >  src/intel/isl/isl.h                |   4 +
> >  src/intel/vulkan/anv_blorp.c       | 183 ++---------
> >  src/intel/vulkan/anv_genX.h        |   5 +
> >  src/intel/vulkan/anv_image.c       |  93 ++++++
> >  src/intel/vulkan/anv_pass.c        |  36 ++-
> >  src/intel/vulkan/anv_private.h     |  37 ++-
> >  src/intel/vulkan/genX_cmd_buffer.c | 626 ++++++++++++++++++++++++++++++
> ++-----
> >  src/intel/vulkan/genX_gpu_memcpy.c |  40 +++
> >  11 files changed, 783 insertions(+), 256 deletions(-)
> >
> > --
> > 2.13.3
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170721/322996ec/attachment.html>


More information about the mesa-dev mailing list