GLSL icon indicating copy to clipboard operation
GLSL copied to clipboard

Missing interaction with ARB_bindless_texture and ARB_gpu_shader_int64

Open ianromanick opened this issue 7 years ago • 1 comments

The ARB_bindless_texture extension predates ARB_gpu_shader_int64 by a couple years. At the time 64-bit integer types were only provided by NVIDIA vendor extensions. As a result, ARB_bindless_texture says:

(19) How does ARB_bindless_texture differ from NV_bindless_texture?

  RESOLVED:

  - The constructors to convert between sampler and integer types use uvec2
    rather than uint64_t to avoid a dependency on the 64-bit integer types
    in the shader from NV_gpu_shader5.

However, these types were later added by ARB_gpu_shader_int64, but neither extension mentions any interaction with the other. Specifically, I believe that ARB_gpu_shader_int64 should say that uint64_t(sampler) and sampler(uint64_t) constructors exist if ARB_bindless_texture is also supported.

As far as I'm aware, only NVIDIA currently supports both these extensions, and I believe they support these constructors. Mesa currently supports ARB_gpu_shader_int64, and ARB_bindless_texture is on the way.

ianromanick avatar Apr 06 '18 22:04 ianromanick

I can confirm that NVIDIA allows casting between sampler* and uint64_t. Assigned to @ianromanick to create a PR.

pdaniell-nv avatar Apr 11 '18 15:04 pdaniell-nv