This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Mali G57 vkCreateGraphicsPipelines crashes with Tessellation shaders

Hi!

I use Tessellation shaders for creating VkPipeline. But during calling vkCreateGraphicsPipelines I got crash

Vulkan driver info: Conformance Version: 1.2.2.0 ID: VK_DRIVER_ID_ARM_PROPRIETARY Name: Mali-G57 MC2 Info: v1.r26p0-01eac0.db14d76a92163ae64c7b9e4d58c437a5

I attached Debug APK

I attached shaders original + spirv (old)

I attached Android Studio project with source and shaders

See VkPipelineAndroid_template\app\src\main\shaderSources

Small test apk

I can provide additional information.

Parents
  • Hi,

    Mali Best Practice is not to have Tessellation shaders (they give bad performance), but in this case there's also likely a bug you're hitting, in the HLSL->DXC->SPIR-V process.  DXC-compiled tessellation shaders don't work on Mali (since R26), they create a problematic pattern.

    A proposed workaround exists: 

    -> round-trip the SPIR-V through GLSL (using SPIRV-Cross) and back to SPIR-V again. 

    There are DXC patterns that SPIRV-Cross can't cope with either, so depends whether you hit those (it didn't work for another developer who hit this issue). In that case it might just need the SPIR-V to be patched.

Reply
  • Hi,

    Mali Best Practice is not to have Tessellation shaders (they give bad performance), but in this case there's also likely a bug you're hitting, in the HLSL->DXC->SPIR-V process.  DXC-compiled tessellation shaders don't work on Mali (since R26), they create a problematic pattern.

    A proposed workaround exists: 

    -> round-trip the SPIR-V through GLSL (using SPIRV-Cross) and back to SPIR-V again. 

    There are DXC patterns that SPIRV-Cross can't cope with either, so depends whether you hit those (it didn't work for another developer who hit this issue). In that case it might just need the SPIR-V to be patched.

Children