[Mesa-dev] [PATCH v3 00/13] anv: Implement VK_KHX_multiview

Jason Ekstrand jason at jlekstrand.net
Wed May 3 16:06:06 UTC 2017


On Wed, May 3, 2017 at 12:15 AM, Iago Toral <itoral at igalia.com> wrote:

> Hi Jason
>
> Sorry that I missed this. All the changes look good to me and I have
> sent reviews for the patches that missed them. With this series we pass
> all the multiview tests.


Thanks!


>
> Iago
>
> On Thu, 2017-04-27 at 09:31 -0700, Jason Ekstrand wrote:
> > This is mostly a re-send of my earlier patches but there are a few
> > changes.
> > I think, at this point, that I'm ready to merge it assuming Iago is
> > ok with
> > the changes.  The important chages are:
> >
> >  1. The lowering pass has been altered to take a view mask instead of
> > a
> >     subpass.  The rest of the anv_pipeline code has also been
> > modified to
> >     properly incorporate the view mask into the shader key.
> >  2. There have been two fixes to the code which multiplies the number
> > of
> >     invocations by the number of views.  First was that I
> > accidentally used
> >     AND instead of ADD.  Second was an off-by-one error when adding
> > ALU
> >     operations to an MI_MATH instruction that made us stomp the
> > MI_MATH
> >     instruction itself instead of starting on dword 1.
> >
> >  3. I've added a trivial implementation of multiDrawIndirect.  This
> > isn't
> >     really required but some of the tests erroneously required it by
> >     mistake.  I'm not 100% sure that I like having a software
> >     implementation of multiDrawIndirect but it's no worse (and
> > probably
> >     slightly better) than an application fall-back would be.
> > Jason Ekstrand (14):
> >   compiler: Add a system value and varying for ViewIndex
> >   spirv: Bump the SPIR-V header to the latest public version
> >   spirv: Add support for SPV_KHR_multiview
> >   anv/nir: Delete the apply_dynamic_offsets prototype
> >   anv: Add the KHX_multiview boilerplate
> >   anv/pass: Store the per-subpass view mask
> >   anv: Move shader hashing to anv_pipeline
> >   anv/pipeline: Call nir_gather_info later
> >   anv/pipeline: Add a subpass field to anv_pipeline
> >   anv/pipeline: Add shader lowering for multiview
> >   anv/cmd_buffer: Pull indirect draw parameter loading into a helper
> >   anv/cmd_buffer: Emit instanced draws for multiple views
> >   anv: Enable VK_KHX_multiview and SPV_KHR_multiview
> >   anv: Trivially implement multiDrawIndirect
> >
> >  src/compiler/nir/nir.c                     |   4 +
> >  src/compiler/nir/nir_intrinsics.h          |   1 +
> >  src/compiler/shader_enums.c                |   2 +
> >  src/compiler/shader_enums.h                |   4 +
> >  src/compiler/spirv/nir_spirv.h             |   1 +
> >  src/compiler/spirv/spirv.h                 |  34 ++++-
> >  src/compiler/spirv/spirv_to_nir.c          |   4 +
> >  src/compiler/spirv/vtn_variables.c         |   4 +
> >  src/intel/Makefile.sources                 |   1 +
> >  src/intel/vulkan/anv_device.c              |  23 ++-
> >  src/intel/vulkan/anv_entrypoints_gen.py    |   1 +
> >  src/intel/vulkan/anv_nir.h                 |   5 +-
> >  src/intel/vulkan/anv_nir_lower_multiview.c | 234
> > +++++++++++++++++++++++++++++
> >  src/intel/vulkan/anv_pass.c                |  19 +++
> >  src/intel/vulkan/anv_pipeline.c            |  83 +++++++---
> >  src/intel/vulkan/anv_pipeline_cache.c      |  27 ----
> >  src/intel/vulkan/anv_private.h             |  15 +-
> >  src/intel/vulkan/genX_cmd_buffer.c         | 209
> > ++++++++++++++++++++++----
> >  src/intel/vulkan/genX_pipeline.c           |   9 +-
> >  src/mesa/program/prog_print.c              |   2 +
> >  20 files changed, 588 insertions(+), 94 deletions(-)
> >  create mode 100644 src/intel/vulkan/anv_nir_lower_multiview.c
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170503/9e1be5f1/attachment.html>


More information about the mesa-dev mailing list