PowerVR GM 9446: vkCmdDrawIndexed crash

Hi andreyogld3d,

Regarding a possible shader compilation failure, it would lead to a graphics pipeline creation error, unless the shader compilation fails silently which is unlikely.

Just in case I extracted the vertex and fragment shaders used in the only two draw calls in the app you are testing, vkCmdDrawIndexed(24576, 1) and vkCmdDrawIndexed(6, 570). I tested all four with our offline shader compilers (which are now public by the way, you can get them from the Profiling Compilers download in Downloads - Imagination Developers ). I was able to compile the shaders with no problem. I used glslangValidator.exe from Vulkan 1.3.211.0 and target environment Vulkan 1.1

glslangValidator.exe --target-env vulkan1.1 -V vertex_shader_0.vert -o vertex_shader_0.spv

# BVNC GPU HW indentificator 24.50.208.504 is Series 9 XM GM9445, MT6779 Helio P90
ProfilingCompilerCLIWrapper.exe -a spv -b 24.50.208.504 -i vertex_shader_0.spv . -x -t v

Since I cannot seem to reproduce the issue even with a quite close driver version, I would say something else is involved. One case could be numerical precission affecting the conditions to exit the while loop.

I would recommend to follow an incremental approach. For the vkCmdDrawIndexed(24576, 1) draw call I would follow the steps below, trying to identify at what point the issue happens so it can be related to the latest code fragments added:

  • Start with a plain color fragment shader.
  • Use just one of the two textures combined in the shader.
  • Use the two textures.
  • Add the shadow mapping part.

Please let me know if after those steps you still do not get the issue identified.

Best regards,
Alejandro

1 Like