[Mesa-dev] [PATCH v3 00/13] anv: Implement VK_KHX_multiview
Iago Toral
itoral at igalia.com
Wed May 3 07:15:58 UTC 2017
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.
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
>
More information about the mesa-dev
mailing list