[Mesa-dev] i965 implementation of the ARB_shader_image_load_store built-ins. (v2)
Matt Turner
mattst88 at gmail.com
Tue May 5 15:05:02 PDT 2015
On Tue, May 5, 2015 at 2:17 PM, Francisco Jerez <currojerez at riseup.net> wrote:
> Kenneth Graunke <kenneth at whitecape.org> writes:
>> That then begs the question - could we do the format conversion and
>> address calculations in a i965-specific NIR pass? It could simplify
>> the backend changes. NIR also has better CSE, which could help for
>> repeated image access.
>
> I doubt that rewriting things in NIR would be of any help at this point.
> We could have support for ARB_shader_image_load_store already in the
> 10.6 release if we refrain from reimplementing the world in the last
> minute. And I doubt that an implementation in terms of NIR would have
> simplified anything, it would have required a bunch of intrinsics with
> driver-specific semantics,
Can you give an example? We weren't sure exactly how to do the bounds
checking on IVB in NIR (add an extra uniform, or maybe do the
image-equivalent of textureSize?) but the other work-arounds didn't
seem like they would be difficult to implement in NIR.
> and I must admit that I find generating NIR
> even more annoying than generating i965 IR directly (for an example of
> what a mean see how [1] spends over twenty lines to calculate a simple
> "a + b * c" expression).
That's nothing specific to NIR itself, and it's really already been
solved with the new nir_builder. Take a look at Ken's
src/mesa/program/prog_to_nir.c.
More information about the mesa-dev
mailing list