On 19 April 2017 at 05:30, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > > > On 04/18/2017 08:14 PM, Nicolai Hähnle wrote: >> >> On 11.04.2017 18:48, Samuel Pitoiset wrote: >>> >>> Bindless sampler/image types are really different from the existing >>> sampler/image types. They are considered 64-bit unsigned integers, >>> they can be declared as temporary, shader inputs/outputs and are >>> non-opaque types. >>> >>> For these reasons, it looks more convenient to introduce new >>> internal base types to the GLSL compiler, called >>> GLSL_TYPE_BINDLESS_SAMPLER and respectively GLSL_TYPE_BINDLESS_IMAGE. >> >> >> Sorry for taking so long to get to this series, but could you explain the >> rationale here a bit more? > > > No worries, all feedbacks are always welcome, even late. :) > > So, the bindless sampler/image types introduced in ARB_bindless_texture are > really different from the "standard" ones. > > They are considered as 64-bit unsigned integers (not 32-bit) and they are > non-opaque types. The latter means they can be declared as temporary > variables, as shader inputs/outputs, inside an interface block, etc. > > That said, the current sampler/image types are opaque (cf, > glsl_type::is_opaque()) and it seemed quite impossible to change the > glsl_type helpers to fit my needs. > > I tried many different solutions before figuring this one which seems better > for some reasons: > > - easy to make bindless sampler/image types 64-bit unsigned int > - easy to make bindless sampler/image types non-opaque > - should avoid breakage because the base type is different > - reduce the amount of changes in most places in the compiler > > At the Gallium level, the changes are really small. Basically, if the type > is a bindless sampler, the ir_dereference variable is visited and it can be > considered as PROGRAM_UNIFORM or PROGRAM_TEMPORARY (for shader > inputs/outputs). > > Hopefully, you are convinced now. :)
When I did my initial implementation I went with merged types, I don't think it was a good idea either. Apart from making old non-bindless samples take up twice as much space, there's a lot or corner cases. Unless we hit some problem in the future where they need to be the same type I'd say this is preferable. Dave. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev