Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

glslc: GL_NV_shader_atomic_fp16_vector requires float16 arithmetic type #1450

Open
Botondar opened this issue Oct 31, 2024 · 1 comment
Open

Comments

@Botondar
Copy link

The imageAtomic<Op> functions added by GL_NV_shader_atomic_fp16_vector require the argument to be cast to f16vec4, however by default that throws the following error:

error: 'built-in function: float16 types can only be in uniform block or buffer storage' : required extension not requested: Possible extensions include:
GL_AMD_gpu_shader_half_float
GL_EXT_shader_explicit_arithmetic_types
GL_EXT_shader_explicit_arithmetic_types_float16

Enabling GL_EXT_shader_explicit_arithmetic_types_float16 does fix the error, however it leads to a validation error during runtime because my GTX 970 doesn't support arithmetic float16 operations.

This might be an oversight in the spec (I'm not sure if the generated SPIR-V is even valid if it doesn't declare Float16 support) but in case it's not, using f16vec4 as a constructor in imageAtomic<Op> should not throw an error with GL_NV_shader_atomic_fp16_vector and/or GL_EXT_shader_16bit_storage.

@dneto0
Copy link
Collaborator

dneto0 commented Dec 12, 2024

this seems like it should be filed upstream in the Glslang project
https://github.com/KhronosGroup/glslang

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants