[Mesa-dev] [PATCH 00/12] anv: Implement HiZ for simple render passes

Nanley Chery nanleychery at gmail.com
Mon Sep 19 21:45:22 UTC 2016


On Fri, Sep 02, 2016 at 05:27:11PM -0700, Jason Ekstrand wrote:
> On Wed, Aug 31, 2016 at 8:29 PM, Nanley Chery <nanleychery at gmail.com> wrote:
> 
> > This series enables Hierarchical depth buffer rendering and fast depth
> > clears
> > for render passes with a single subpass running on platforms BDW+.
> > Platforms
> > pre-BDW can test this feature with an environment variable. The FPS of some
> > demos are roughly estimated to increase by as much as ~50% on a SKL GT2.
> >
> > This feature was partially implemented by Chad and Jason. Where applicable,
> > I've tried to accurately note the modifications I've made to their patches
> > without being too verbose. I've also tried to maintain the authorship of
> > their
> > patches when the core of their work remained.
> >
> > The only patch which wasn't retained due to the core of the work being lost
> > was a patch to create a HiZ surface. This was replaced with my patch to
> > update
> > an existing function which does so. This diverged enough for me to feel at
> > risk of misrepresenting the original author's work.
> >
> > Any suggestions with respect to my annotating method, notices of
> > incorrectly
> > attributed credit, or general comments are welcome.
> >
> 
> Feel free to take more credit. :)  Chad and I wrote sketchy, untested,
> skeleton patches.  You were the one who got it working!
> 
> Patches 1, 3-7, and 10-12 have a few comments here and there.  Assuming
> those comments are addressed, those patches are
> 
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
> 

I've made more updates to patch 10 and 12 than your comments so
I'll wait for you to take a look at the V2 before applying your Rb.

> We talked about 2 offline and I sent my little 6-patch series that makes
> the original plan work.
> 
> On patch 9, I gave a bunch of comments but one thing was clear: We need
> tests.  In the interest of merging patches, I think I'd recommend that we
> disable HiZ for mipmapped surfaces (we can just not allocate the surface)
> and don't do fast-clears for anything other than full-RT clears.  That
> seems like the shortest path to getting the patches merged quickly with
> some guarantee of correctness.
> 

I had a local patch to disable gen8 multisampled and BDW+ mipmapped HiZ in
patch 9, but I prefer your plan of not allocating the surface at all.
Partial clears are currently tested by the CTS.

> For partial clears and mipmapped HiZ, I think we need more tests.  There
> may be CTS tests for partial depth clears (In particular, the subpass
> tests) but I'm not sure.  I'll leave it up to you as to whether you'd
> rather write CTS tests or crucible tests.  Crucible may be easier, but the
> CTS needs those tests too, so maybe we should be good citizens and put them
> there?
> 
> 

Yes, we do need more tests. The CTS is steadily increasing its test
coverage so I'm thinking of revisiting those cases once a test
exists for it. If I do write a test, it'd likely be a crucible one.

Nanley

> >
> > Chad Versace (4):
> >   anv: Add anv_image::hiz_surface
> >   anv: Add func anv_image_has_hiz()
> >   anv: Allocate hiz surface
> >   genX/cmd_buffer: Enable rendering to HiZ
> >
> > Jason Ekstrand (3):
> >   anv: Move BindImageMemory to anv_image.c
> >   anv/image: Memset hiz surfaces to 0 when binding memory
> >   anv/cmd_buffer: Add code for performing HZ operations
> >
> > Nanley Chery (5):
> >   isl: Correct a comment in the isl_format enum
> >   isl: Update isl_surf_get_hiz_surf()
> >   isl: Make MSAA pixel scaling function public
> >   genX/cmd_buffer: Enable fast depth clears
> >   anv/TODO: Update the HiZ task
> >
> >  src/intel/isl/isl.c                |  41 ++++++++++--
> >  src/intel/isl/isl.h                |   6 +-
> >  src/intel/vulkan/TODO              |   2 +-
> >  src/intel/vulkan/anv_device.c      |  20 ------
> >  src/intel/vulkan/anv_genX.h        |   3 +
> >  src/intel/vulkan/anv_image.c       |  67 ++++++++++++++++++-
> >  src/intel/vulkan/anv_pass.c        |  11 +++
> >  src/intel/vulkan/anv_private.h     |  18 +++++
> >  src/intel/vulkan/gen7_cmd_buffer.c |   5 ++
> >  src/intel/vulkan/gen8_cmd_buffer.c | 134 ++++++++++++++++++++++++++++++
> > +++++++
> >  src/intel/vulkan/genX_cmd_buffer.c |  45 +++++++++++--
> >  11 files changed, 313 insertions(+), 39 deletions(-)
> >
> > --
> > 2.9.3
> >
> >


More information about the mesa-dev mailing list