<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 3, 2017 at 12:15 AM, Iago Toral <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jason<br>
<br>
Sorry that I missed this. All the changes look good to me and I have<br>
sent reviews for the patches that missed them. With this series we pass<br>
all the multiview tests<font color="#888888">.</font></blockquote><div><br></div><div>Thanks!<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
Iago<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Thu, 2017-04-27 at 09:31 -0700, Jason Ekstrand wrote:<br>
> This is mostly a re-send of my earlier patches but there are a few<br>
> changes.<br>
> I think, at this point, that I'm ready to merge it assuming Iago is<br>
> ok with<br>
> the changes. The important chages are:<br>
><br>
> 1. The lowering pass has been altered to take a view mask instead of<br>
> a<br>
> subpass. The rest of the anv_pipeline code has also been<br>
> modified to<br>
> properly incorporate the view mask into the shader key.<br>
> 2. There have been two fixes to the code which multiplies the number<br>
> of<br>
> invocations by the number of views. First was that I<br>
> accidentally used<br>
> AND instead of ADD. Second was an off-by-one error when adding<br>
> ALU<br>
> operations to an MI_MATH instruction that made us stomp the<br>
> MI_MATH<br>
> instruction itself instead of starting on dword 1.<br>
><br>
> 3. I've added a trivial implementation of multiDrawIndirect. This<br>
> isn't<br>
> really required but some of the tests erroneously required it by<br>
> mistake. I'm not 100% sure that I like having a software<br>
> implementation of multiDrawIndirect but it's no worse (and<br>
> probably<br>
> slightly better) than an application fall-back would be.<br>
> Jason Ekstrand (14):<br>
> compiler: Add a system value and varying for ViewIndex<br>
> spirv: Bump the SPIR-V header to the latest public version<br>
> spirv: Add support for SPV_KHR_multiview<br>
> anv/nir: Delete the apply_dynamic_offsets prototype<br>
> anv: Add the KHX_multiview boilerplate<br>
> anv/pass: Store the per-subpass view mask<br>
> anv: Move shader hashing to anv_pipeline<br>
> anv/pipeline: Call nir_gather_info later<br>
> anv/pipeline: Add a subpass field to anv_pipeline<br>
> anv/pipeline: Add shader lowering for multiview<br>
> anv/cmd_buffer: Pull indirect draw parameter loading into a helper<br>
> anv/cmd_buffer: Emit instanced draws for multiple views<br>
> anv: Enable VK_KHX_multiview and SPV_KHR_multiview<br>
> anv: Trivially implement multiDrawIndirect<br>
><br>
> src/compiler/nir/nir.c <wbr> | 4 +<br>
> src/compiler/nir/nir_<wbr>intrinsics.h | 1 +<br>
> src/compiler/shader_enums.c <wbr> | 2 +<br>
> src/compiler/shader_enums.h <wbr> | 4 +<br>
> src/compiler/spirv/nir_spirv.<wbr>h | 1 +<br>
> src/compiler/spirv/spirv.h <wbr> | 34 ++++-<br>
> src/compiler/spirv/spirv_to_<wbr>nir.c | 4 +<br>
> src/compiler/spirv/vtn_<wbr>variables.c | 4 +<br>
> src/intel/Makefile.sources <wbr> | 1 +<br>
> src/intel/vulkan/anv_device.<wbr>c | 23 ++-<br>
> src/intel/vulkan/anv_<wbr>entrypoints_gen.py | 1 +<br>
> src/intel/vulkan/anv_nir.h <wbr> | 5 +-<br>
> src/intel/vulkan/anv_nir_<wbr>lower_multiview.c | 234<br>
> +++++++++++++++++++++++++++++<br>
> src/intel/vulkan/anv_pass.c <wbr> | 19 +++<br>
> src/intel/vulkan/anv_<wbr>pipeline.c | 83 +++++++---<br>
> src/intel/vulkan/anv_<wbr>pipeline_cache.c | 27 ----<br>
> src/intel/vulkan/anv_private.<wbr>h | 15 +-<br>
> src/intel/vulkan/genX_cmd_<wbr>buffer.c | 209<br>
> ++++++++++++++++++++++----<br>
> src/intel/vulkan/genX_<wbr>pipeline.c | 9 +-<br>
> src/mesa/program/prog_print.<wbr>c | 2 +<br>
> 20 files changed, 588 insertions(+), 94 deletions(-)<br>
> create mode 100644 src/intel/vulkan/anv_nir_<wbr>lower_multiview.c<br>
> </div></div></blockquote></div><br></div></div>