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

Vulkan multiview and geometry shaders

TomSK
Beginner
2,299 Views

Greetings,

when using multiview feaure and geometry shaders gl_ViewIndex has incorrect value when accessed for geometry shader stage.

Windows 10, HD Graphics 630,  27.20.100.9126

 

0 Kudos
10 Replies
AndrewG_Intel
Employee
2,291 Views

Hello @TomSK

Thank you for posting on the Intel® communities.

We would like to know if this is the same issue described in this thread: Vulkan incorrect sparse image granularity or page size.

If this is a different inquiry/issue, could you please provide more details?


1- Please elaborate more on the issue that you are having and what you are trying to achieve.

2- Are you having issues using a specific app or tool? Are your a software developer working with graphics drivers and/or graphics engines?

3- Also, please run the Intel® System Support Utility (Intel® SSU) and attach the report to this thread to gather more details about the system that is experiencing these behaviors/issues

  • Download the Intel® SSU and save the application on your computer
  • Open the application, check the "Everything" checkbox, and click "Scan" to see the system and device information. The Intel® SSU defaults to the "Summary View" on the output screen following the scan. Click the menu where it says "Summary" to change to "Detailed View".
  • To save your scan, click Next and click Save.


Best regards,

Andrew G.

Intel Customer Support Technician


0 Kudos
TomSK
Beginner
2,274 Views

Hello Andrew,

This issue is different than one concerning sparse granularity.

We can observe incorrect behaviour running our in-house developed image generator (3D engine based on Vulkan) on integrated GPU. 

One feature of our rendering solution uses a geometry shader together with a multiview (VK_KHR_multiview). On the geometry shader stage we use gl_ViewIndex as an index into a uniform buffer to source a proper projection matrix. Unfortunately the value of gl_ViewIndex is corrupted on this stage.

I’ve attached an SSU report. Please, feel free to ask for additional details. 

0 Kudos
AndrewG_Intel
Employee
2,247 Views

Hello TomSK

Thank you for your response.


We understand that this is regarding a custom application that you have developed. Would it be possible for you to provide us with a demo of the software so we can test this behavior in our lab?

Please also provide us with very detailed step-by-step instructions for replication purposes and if possible, please share a short video showing the steps/behavior.


Best regards,

Andrew G.

Intel Customer Support Technician


0 Kudos
TomSK
Beginner
2,241 Views

Andrew,

It would be difficult to provide working sample of our application. Instead of that I’ve modified vkcube example found in VulkanSDK to use multiview and geometry shaders. To my surprise, modified example works fine. 

In this situation I’ll try to provide working sample anyway despite difficulties but it will take a while.

 

Best,

TomSk

0 Kudos
AndrewG_Intel
Employee
2,231 Views

Hello TomSK

Thank you for your response.


We understand it may be difficult to provide us with a working sample. No problem, please feel free to post back if you have additional details regarding this.

We are also checking further regarding this inquiry and we will be posting back in the thread as soon as we have more details available.


In the meantime, since this is regarding a custom developed application, you may check our Intel® Developer Zone where you may find additional information when developing using Intel® Hardware and Software. You may also review our Software Products Forums where you can connect with other developers and technical experts on Intel® Software.


Best regards,

Andrew G.

Intel Customer Support Technician


0 Kudos
TomSK
Beginner
2,217 Views

Hello Andrew,

I’ve managed to prepare simplified app exploiting the problem. App renders a lot of trees and uses geometry shader to expand the tree data to billboards. Multiview functionality is enabled for render pass despite the fact that there’s only one viewport at the moment. 

Originally, gl_ViewIndex was used on geometry stage to source proper projection matrix: gl_Position = proj_multiview[gl_ViewIndex] * vec4(pos, 1.0); 

Incorrect value of gl_ViewIndex caused problems. Not all trees received correct projection matrix and many of them flicker.

For sake of this app this line was replaced by workaround: gl_Position = proj_multiview[0] * vec4(pos, 1.0); 

Instead, gl_ViewIndex is used to select a color of the tree. Original color is used when gl_ViewIndex is equal to zero which is correct value for this case. Otherwise the tree color is red to signal there’s a problem.

There are screenshots from both cases in screenshot folder. Correct screenshot is from running the app on gtx1050.

I hope this helps. There might be a problem in our source code or in our understanding of the standard. App runs without any validation/synchronization error or warning. 

Please, let me know in case of any trouble.

Best,

Tom Sk

0 Kudos
AndrewG_Intel
Employee
2,208 Views

Hello TomSK

Thank you very much for all the details provided. Please allow us to check this further and we will be posting back in the thread as soon as we have more details available.


Best regards,

Andrew G.

Intel Customer Support Technician


0 Kudos
AndrewG_Intel
Employee
2,200 Views

Hello TomSK

Thank you for your patience in this matter.

After checking this further, we would like to inform you that so far we haven't identified or isolated an issue specific to Vulkan and our drivers.


In this case, our recommendation is to post these questions and issues on the Visual Computing (Graphics and Gaming) Forum which is the correct forum for those topics and where Intel® developers and peers may provide further assistance.


Having said that, we will proceed to close this inquiry now. Thank you for your understanding.


Best regards,

Andrew G.

Intel Customer Support Technician


0 Kudos
TomSK
Beginner
2,193 Views

Hello Andrew,

pity to hear but I understand. Thank you and the team for your time.

Have a nice day!

Best,

Tom Sk

 

0 Kudos
AndrewG_Intel
Employee
2,184 Views

Hello TomSK

You are very welcome. Also thank you for your time and for your effort as well. It has been a pleasure to assist you.


Sincerely,

Andrew G.

Intel Customer Support Technician


0 Kudos
Reply