Forums - Adreno 610 vkCreateGraphicsPipelines returns VK_ERROR_UNKNOWN with Tessellation shaders

6 posts / 0 new
Last post
Adreno 610 vkCreateGraphicsPipelines returns VK_ERROR_UNKNOWN with Tessellation shaders
AndreyVK_D3D
Profile picture
Join Date: 10 Jun 13
Location: Moscow
Posts: 36
Posted: Fri, 2021-10-22 03:45

Hi!

I use Tessellation shaders for creating VkPipeline. But  vkCreateGraphicsPipelines has returned error VK_ERROR_UNKNOWN.

Android 11

Vulkan driver info: Conformance Version: 1.2.0.1 ID: VK_DRIVER_ID_QUALCOMM_PROPRIETARY Name: Qualcomm Technologies Inc. Adreno Vulkan Driver Info: Driver Build: 704ecd9a2b, Ib3f3e69395, 1609240670

Date: 12/29/20

Compiler Version: EV031.32.02.06
Driver Branch: 
 

I attached Project with debug apk 

During debugging

I see message in logvat

2021-10-25 10:11:36.989 29550-29576/vkpipeline.android.d I/AdrenoVK-0: Shader compilation failed for shaderType: 3

2021-10-25 10:11:36.989 29550-29576/vkpipeline.android.d I/AdrenoVK-0: Info log: Assertion failed: 0 && "TCS I/O with unhandled qualifier"
 

I can provide additional information.

 

 

  • Up0
  • Down0
AndreyVK_D3D
Profile picture
Join Date: 10 Jun 13
Location: Moscow
Posts: 36
Posted: Sun, 2021-10-24 12:11

Hi , I attached Android Studio project with source and shaders

See VkPipelineAndroid_template\app\src\main\shaderSources

Small test apk

  • Up0
  • Down0
jleger
Join Date: 23 Aug 16
Posts: 15
Posted: Mon, 2021-10-25 11:17

Hi,

I am able to reproduce a failed shader compilation with the SPIR-V shader you provided.  I've created an internal tracker for this and will follow up with our Compiler team on the root-cause.   Will let you know what we find.

  • Up0
  • Down0
jleger
Join Date: 23 Aug 16
Posts: 15
Posted: Wed, 2021-11-17 13:41

We have root-caused this problem.  Thanks for bringing it to our attention.   For exising drivers, the Adreno shader compiler only handles tessellatoin shaders if they originate from GLSL.   This is becuase in GLSL, built-ins like gl_Position must be declared inside a gl_PerVertex strucure.  Our comiler depends on the gl_PerVertex strucure being converted to a corresponding SPIR-V structure.

So in the near-term, the only robust solution for you would be to author your shaders using GLSL. 

  • Up0
  • Down0
AndreyVK_D3D
Profile picture
Join Date: 10 Jun 13
Location: Moscow
Posts: 36
Posted: Fri, 2021-11-19 00:12
hi @jleger, thank you for your reply.
 
Do yo have plans to improve support compilation SPIR-V from HLSL's source's shaders? I think in the future the most product will use HLSL for instead of GLSL because it will improve cross compatibilities and  lot of platforms/Graphics API supports HLSL (Vulkan, Direct3D12, XBox One, Play Station 4/5)
 
I will buy a new smartphon with new Adreno GPU 7XX series, I hope Qualcomm company will improve Vulkan's  shader compiler for support SPIR-V from HLSL's sources
  • Up0
  • Down0
jleger
Join Date: 23 Aug 16
Posts: 15
Posted: Mon, 2021-11-22 10:52

Yes, we are working on a fix now to address this issue, and our future drivers will include the improvement.   That said, the initial drivers for SoCs with A7xx are already locked down and shipped to OEMs, so if you buy one of the earliest Phones with A7xx GPU, you may want to buy from an OEM that give you a path for driver updates.   You can reach out later if you need help updating your driver on A7xx GPU.

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.