[Mesa-dev] [RFC] More ARB_arrays_of_arrays support

Jason Ekstrand jason at jlekstrand.net
Sat Mar 21 09:27:16 PDT 2015


On Mar 21, 2015 2:49 AM, "Timothy Arceri" <t_arceri at yahoo.com.au> wrote:
>
> 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.
>
> 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.

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.

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.

> For anyone interested the main remaining changes to be made are in:
> ./glsl/link_uniform_block_active_visitor.cpp
> ./glsl/link_uniform_blocks.cpp
> ./glsl/lower_ubo_reference.cpp
>
> 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.
>
> 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.
>
> [1] http://lists.freedesktop.org/archives/piglit/2015-March/015167.html
> [2]
https://github.com/tarceri/Mesa_arrays_of_arrays_piglit/tree/execution_tests
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150321/01ac8de3/attachment.html>


More information about the mesa-dev mailing list