<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Jul 2, 2018 at 11:26 AM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Friday, June 29, 2018 5:13:48 PM PDT Jason Ekstrand wrote:<br>
> This little series adds an optimization pass to NIR and wires up up in anv<br>
> that moves large constant variables to a UBO.  This fixes a farily common<br>
> case in some filter or ambient occlusion shaders where they put some sort<br>
> of look-up table in the shader itself.  This series takes Skyrim Special<br>
> Edition running under DXVK from a slide show to a smooth and very playable<br>
> framerate on my SKL desktop.<br>
> <br>
> The first part of the series adds a concept of constant data that can be<br>
> associated with a NIR shader and adds an optimization pass to move large<br>
> constant variables into this constant data section.  It's left up to the<br>
> driver to figure out how to get this constant data into the shader.  The<br>
> last three patches wire things up in ANV to put this data into an implicit<br>
> UBO and enables the optimization.<br>
> <br>
> v2 (Jason Ekstrand):<br>
>  - Take anholt's feedback and make it more clear that the units on the<br>
>    number of constants is in bytes by calling it constant_data_size.<br>
>  - Break some of the deref to offset code out into helpers<br>
>  - Add new size/align helpers for types to ensure that we get alignments<br>
>    right when setting up constants.  This hasn't usually been a problem in<br>
>    the past because we align most things to a dword and 64-bit values<br>
>    aren't common.  We should start being more careful.<br>
> <br>
> Jason Ekstrand (9):<br>
>   util/macros: Import ALIGN_POT from ralloc.c<br>
>   nir: Add a deref_instr_has_indirect helper<br>
>   nir/types: Add a natural size and alignment helper<br>
>   nir/deref: Add helpers for getting offsets<br>
>   nir: Add a concept of constant data associated with a shader<br>
>   nir: Add a large constants optimization pass<br>
>   anv: Add support for shader constant data to the pipeline cache<br>
>   anv: Add state setup support for shader constants<br>
>   anv,intel: Enable nir_opt_large_constants for Vulkan<br>
<br>
</div></div>I had some minor commentary, but even without any changes, series is:<br>
Reviewed-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
</blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks!<br></div></div>