This bug exists since driver release 22.7.1.
I know for a fact that my RX 5700 XT neither supports GL_NV_shading_rate_image nor GL_ARB_fragment_shader_interlock.
However when I do the following to check if they are available in code:
#version 460 core
#extension GL_ARB_fragment_shader_interlock : enable
#extension GL_NV_shading_rate_image : enable
void main()
{
#ifdef GL_NV_shading_rate_image
code(); // gets executed
#endif
#ifdef GL_ARB_fragment_shader_interlock
code(); // gets executed
#endif
}
both paths get executed. If I then proceed to actually use the glsl functionality I either get compile errors like "Program Link Failed for unknown reason." or unrelated side effects in my program. This bug no longer makes it possible to conditionally use certain extensions in glsl.
Thank you for reporting it. I will forward the issue to the OpenGL team.
A bug ticket has been created to track the issue. I will notify you if I get any update on this.
Thanks.
Hi @BoyBaykiller ,
Could you please check the issue with the latest public driver and let us know if the issue has been fixed?
Thanks.
Hi @dipak,
I've just tested this on the new 23.3.1 driver. I would say this has been partially fixed.
The good thing is checking for support of an extension with
#ifdef NAME_OF_EXTENSION
now works as expected, however when doing
#extension NAME_OF_EXTENSION : require
shader compilation succeedes even if NAME_OF_EXTENSION is not supported.
The glsl spec states that if an extension is ": require" but not supported shader compilation should fail.
Thanks for sharing this observation. I will inform the OpenGL team about it.
Thanks.