cancel
Showing results for 
Search instead for 
Did you mean: 

OpenGL & Vulkan

BoyBaykiller
Adept II

OpenGL Bug Preprocessor names of extensions exposed which arent even implemented

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.

5 Replies
dipak
Big Boss

Thank you for reporting it. I will forward the issue to the OpenGL team.

0 Likes
dipak
Big Boss

A bug ticket has been created to track the issue. I will notify you if I get any update on this.

Thanks.

0 Likes

Hi @BoyBaykiller ,

Could you please check the issue with the latest public driver and let us know if the issue has been fixed?

Thanks.

0 Likes

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. 

0 Likes

Thanks for sharing this observation. I will inform the OpenGL team about it.

Thanks.

0 Likes