Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance and optimization
17450 Discussions

OpenGL Driver Bug Reports

Scenomics
Beginner
964 Views

Where can I file driver bug reports for an Intel GPU?

0 Kudos
15 Replies
David_G_Intel
Moderator
953 Views

Hello Scenomics


Thank you for posting on the Intel®️ communities. 

 

Please share with us more information about this bug, the components on your system, and pictures/videos if applicable.

 

Regards, 

David G 

Intel Customer Support Technician 


Scenomics
Beginner
943 Views

Thank you David 🙂

------

Here's information about the device:

GL Vendor: Intel
GL Renderer: Intel(R) UHD Graphics 630
GL Version: 4.6.0 - Build 27.20.100.8681
GL Shading Language Version: 4.60 - Build 27.20.100.8681

------

1. In a compute shader, I have to use unusual explicit locations in order to get sampler binding to work for the first two slots.

1.1. By unusual, I mean using binding slots 2 and 3. It seems like something else is already using slots 0 and 1, but it's not the application.

1.2. This works without explicitly defined binding slots on all other test hardware.

2. I haven't tested other slots. I haven't noticed this problem in any other shader stage, and it seems to only affect sampler2D so far.

3. Using an explicit location does not seem to be required for image2D.

If I do not use explicit locations, the drive reports the following error message:

   Linker Output
   Validation Error: A sampler points to a texture unit used by fixed function with an incompatible target.

------

In a similar compute shader, using image2D, I do not have to use explicit locations, and I do not receive the error message in any situation when binding slots 0 and 1.

------

Here's the shader code that exhibits the error. This is a publicly available, non-proprietary sample:

#extension GL_ARB_compute_variable_group_size : enable
#ifdef GL_ARB_compute_variable_group_size
layout( local_size_variable ) in;
#else
layout( local_size_x = 32, local_size_y = 32, local_size_z = 1 ) in;
#endif

#include <SPA_Vendor.glsl>

#if INTEL
layout( binding = 2 ) uniform sampler2D lhs_texture;
layout( binding = 3 ) uniform sampler2D rhs_texture;
#else
uniform sampler2D lhs_texture;
uniform sampler2D rhs_texture;
#endif

layout( rgba32f ) uniform image2D dst_image;
uniform int lhs_image_width = int( 0 );
uniform int lhs_image_height = int( 0 );
uniform int rhs_image_width = int( 0 );
uniform int rhs_image_height = int( 0 );
uniform float blend_opacity = float( 0.5 );

vec4 addImages( vec4 base, vec4 blend )
{
   return min( base + blend, vec4( 1.0 ) );
}

vec4 addImages( vec4 base, vec4 blend, float opacity )
{
   return addImages( base, blend ) * opacity + base * ( 1.0 - opacity );
}

void main(void)
{
   ivec2 pos = ivec2( gl_GlobalInvocationID.xy ); // Gets the equivalent of the pixel coords on x/y.

#if INTEL
   ivec2 lhsDims = ivec2( lhs_image_width, lhs_image_height ); // Gets the lhs image dimensions.
   ivec2 rhsDims = ivec2( rhs_image_width, rhs_image_height ); // Gets the rhs image dimensions.
#else
   ivec2 lhsDims = textureSize( lhs_texture, 0 ); // Gets the lhs image dimensions.
   ivec2 rhsDims = textureSize( rhs_texture, 0 ); // Gets the rhs image dimensions.
#endif

   vec4 lhs = texture( lhs_texture, vec2( pos ) / lhsDims ); // Samples the texture using floating point coords.
   vec4 rhs = texture( rhs_texture, vec2( pos ) / rhsDims ); // Samples the texture using floating point coords.

   vec4 res = addImages( rhs, lhs, blend_opacity ); // Performs additive blending using a standard algorithm.

   imageStore( dst_image, pos, res ); // Writes the result to the image sampler.
}

 

David_G_Intel
Moderator
892 Views

Hello Scenomics

 

Thank you for the update, to investigate this request we need more information from the system. I will send you an e-mail to the e-mail address associated with your community profile requesting some reports that may contain sensitive information. 

 

Regards, 

David G 

Intel Customer Support Technician 


Scenomics
Beginner
889 Views

Thanks for the reply and assistance.

I've generated the report and saved it to disk, but I can't use the utility to submit it to Intel. Clicking the submit button takes me to a web page that doesn't load:

https://servicerequestmgmt.intel.com/webticketui/

Can I submit the report by email?

AlHill
Super User
884 Views

You only need to ATTACH the report to this thread.

Doc (not an Intel employee or contractor)

David_G_Intel
Moderator
856 Views

Hello Scenomics


Thank you for the reports provided via email, we will start an investigation on this request. As soon as we have an update, all the details will be posted on this thread.

 

Regards, 

David G 

Intel Customer Support Technician 


David_G_Intel
Moderator
810 Views

Hello Scenomics


Is the issue reproducible and impacting any commercially available application?


Regards, 

David G 

Intel Customer Support Technician 


Scenomics
Beginner
810 Views

Yes. I can tell you how to get a copy of the application if you are interested.

While we're at it, I found something else it might be worth taking a look at.

David_G_Intel
Moderator
794 Views

Hello Scenomics


Please list the applications, and provide as much information as possible to resolve this request. We're waiting for your response.


Regards, 

David G 

Intel Customer Support Technician 


David_G_Intel
Moderator
780 Views

Hello Scenomics


We are waiting for the information to continue with the case, please update this thread when you have more information.


Regards, 


David G 

Intel Customer Support Technician 


Scenomics
Beginner
634 Views

Thanks for all your help so far!

Do you want me to post a link and instructions on how to reproduce the error?

David_G_Intel
Moderator
627 Views

Hello Scenomics


Yes, please list the applications that are affected and the instructions to reproduce the problem.


Regards, 


David G 

Intel Customer Support Technician 


Scenomics
Beginner
622 Views

You can download the application here:

https://www.scenomics.com/download/scenome_binaries_setup_21_10.exe

It's digitally signed by Scenomics LLC.

1. Download the software installer onto your test machine.

2. Start the software installer and go through the installation process using the default settings provided by the installer.

- At the end the installer presents a checkbox that allows you to start the Shader application when the installer completes.
- This option should be checked by default, but you want it to be checked if it isn't.

3. The Shader application starts and the splash screen appears.
- The software presents two status message dialogs to complete the installation process.
- The first message informs you that the software is going to configure itself.
- The second indicates whether installation and configuration was successful.

4. The Shader application is now running on your test machine.

5. Select "File > Open" from the main menu.

6. This puts you in a directory containing a number of folders.

7. Go into the directory named 'Additive Blend'.

8. Open the file called 'Additive Blend.box'.
- You should see a square containing a colorful image of roses.

9. Examine the hierarchy on the left side of the workspace.
- Near the top there is a node named 'Compute Shader'.
- Below 'Compute Shader' is a node named 'Compute'.

10. Right click over the node named 'Compute' and select "Copy Source Path > Compute Shader" from the listed options.
- This copies the compute shader source path to the Windows clipboard.
- Open this file in a text editor.

11. Examine the shader code and you will find the following GLSL near the top:

#if INTEL
layout( binding = 2 ) uniform sampler2D lhs_texture;
layout( binding = 3 ) uniform sampler2D rhs_texture;
#else
uniform sampler2D lhs_texture;
uniform sampler2D rhs_texture;
#endif


12. Replace this entire section, from '#if INTEL' to the '#endif' (lines 10-16) with:

uniform sampler2D lhs_texture;
uniform sampler2D rhs_texture;

13. Save the shader file in the text editor.

14. Return to the running shader application.

15. Close the file and reopen it.
   - You will notice the colorful image of roses is replaced with a gray screen.
   - If you look at the output window (at the bottom of the workspace) you'll notice the following text:

   Linker Output
   Validation Error: A sampler points to a texture unit used by fixed function with an incompatible target.

 

That's how you can reproduce the bug. I believe that I should not have to use binding points 2 and 3 in order to get this shader to work. In fact, I shouldn't have to use explicit binding points at all. This shader should work just fine on an Intel GPU without any #if INTEL or similar.

 

 

David_G_Intel
Moderator
596 Views

Hello Scenomics


Thank you for the information provided, we are working on this request, as soon as we have an update for the investigation we will post it on the thread.

 

Regards, 

David G 

Intel Customer Support Technician


David_G_Intel
Moderator
544 Views

Hello Scenomics


Thank you for your feedback and all the information shared, our dev team was notified about this. However, we can't promise it is going to be fixed anytime soon as these obscure bugs usually take longer to be addressed, hence we want to set the right expectations from the start. There is also the chance it won't be addressed at all as well as it depends on many factors such as overall business impact, visibility or how easy it is to reproduce, workload, etc.

Please keep in mind that this thread will no longer be monitored by Intel. Thank you for your understanding.


Regards, 

David G 

Intel Customer Support Technician


Reply