<p dir="ltr"><br>
On Mar 21, 2015 2:49 AM, "Timothy Arceri" <<a href="mailto:t_arceri@yahoo.com.au">t_arceri@yahoo.com.au</a>> wrote:<br>
><br>
> This series adds most of the remaining glsl arrays of arrays support. Support for uniform blocks is still missing, I've played around with this but don't have anything working yet.<br>
><br>
> What do you guys think about adding these changes without the uniform blocks support? Adding these changes now I assume would make it easy for the nir guys to start adding AoA support (if it doesn't exist already) and the intel backend changes could start to be worked on.</p>
<p dir="ltr">Support in NIR should "just work".  Of course that probably won't actually be the case.  However, if it does break something then that's a bug because the code is all there.  It should be easy to check since your already running on Intel.  If your i965 is IVB+, just do a piglit run with INTEL_USE_NIR=1.  If its older than that, I'll be pushing support for SNB and prior on Monday; just rebase.</p>
<p dir="ltr">The one place I know of where this will get dicey is in the sampler arrays portion of the ARB_gpu_shader5 extension.  That implementation is rather hacky and I'm pretty sure will fall flat on its face if milti-level arrays are involved.  I know NIR's implementation will assert-fail; the i965 code may just do the wrong thing.  In other words, tests are needed for that specific case.  However, I guess that falls under the category of yet-to-be-done uniform stuff.</p>
<p dir="ltr">> For anyone interested the main remaining changes to be made are in:<br>
> ./glsl/link_uniform_block_active_visitor.cpp<br>
> ./glsl/link_uniform_blocks.cpp<br>
> ./glsl/lower_ubo_reference.cpp<br>
><br>
> For gallium drivers the glsl to tgsi conversion seems to handle everything without changes so at least for the piglit tests I've written everything seem to just work.<br>
><br>
> There are no piglit regressions from these changes (tested on i965 driver) and all the current arrays of arrays piglit test pass (tested with ilo gallium driver using MESA_GL_VERSION_OVERRIDE=3.3COMPAT MESA_GLSL_VERSION_OVERRIDE=150) besides the uniform block tests. There are also some unreviewed interface linking tests relating to the last 4 patches on the piglit list [1]. I also have some generated execution tests in my piglit repo [2], I'm not sure if I've created these the best way and wish to extend them further so these haven't been sent to the piglit list yet.<br>
><br>
> [1] <a href="http://lists.freedesktop.org/archives/piglit/2015-March/015167.html">http://lists.freedesktop.org/archives/piglit/2015-March/015167.html</a><br>
> [2] <a href="https://github.com/tarceri/Mesa_arrays_of_arrays_piglit/tree/execution_tests">https://github.com/tarceri/Mesa_arrays_of_arrays_piglit/tree/execution_tests</a><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</p>