When I call vkCreateGraphicsPipelines it returns VK_INCOMPLETE, which is simply not a spec compliant return value for vkCreateGraphicsPipelines afaik. This has happened before with subpass inputs if I remember correctly. Now it happens if I use the line "outColor = vec4(gl_FragCoord.xy,0,0);" in a fragment shader.
I'm using a Pixel XL (Adreno 530). It would be nice to have a somewhat spec compliant Vulkan driver at some point, it's been a while...
On a related note, can anyone confirm that MSAA subpassInputs actually work? I'm seeing some pretty odd stuff here.
I'm having this exact issue. Snapdragon 835/Adreno 540. Android API level 24, NDK r13b, Galaxy S8 Android version 7.0
The validation layers have no complaints, but I'm seeing an error message in the log output:
I Adreno : Shader compilation failed for shaderType: 0
This occurs immediately after the call to vkCreateGraphicsPipelines is made and before the error code is returned.
The vertex/fragment spirv binaries run on a desktop machine without issue and no validation layer complaints.
Is there a list of known bugs/unsupported shader operations?
I'm having this exact issue. Snapdragon 835/Adreno 540. Android API level 24, NDK r13b, Galaxy S8 Android version 7.0
The validation layers have no complaints, but I'm seeing an error message in the log output:
I Adreno : Shader compilation failed for shaderType: 0
This occurs immediately after the call to vkCreateGraphicsPipelines is made and before the error code is returned.
The vertex/fragment spirv binaries run on a desktop machine without issue and no validation layer complaints.
Is there a list of known bugs/unsupported shader operations?
Unfortunately I could only up-vote your response once...
It looks like the Adreno Vulkan driver is allergic to LunarG's spirv-opt.
When skipping the optimization step the shaders successfully load and run, but the render frame rate is atrocious.
It's possible that it is a particular optimization that is causing the problem - spirv-opt has a separate flag for each type of optimization it does and I have a bunch of them turned on, so I'll try to narrow it down.
The project I'm working on is multi-platform. The Win64 build (on an NVidia card) has no issue with spirv-opt output and produces no warnings of any kind, so this appears to be an issue specific to Adreno.
Using either of these spirv-opt flags causes the failed byte code->native compilation issue:
These appear to be safe:
additional note: the slow speed was due to running a debug build.
Debug builds on Snapdragon 801 / Adreno 330 the same code base on OpenGL es 3.0 was rendering at 30fps, so the 17fps on the 835 for a debug build was surprising.
Has anyone learned anything new about this problem?
I'm seeing this same issue on a Pixel 3 (Snapdragon 845).
I have tested the same code on a Galaxy S8 (Mali-G71 MP20) and the Vulkan driver returns VK_SUCCESS instead of VK_INCOMPLETE for the same exact code / shader module. This leads me to believe this is a Qualcomm driver bug.
florian3
Could you share a simple test project ?
bennherrera
I have similar mesage from Adreno:
I/Adreno: Shader compilation failed for shaderType: 5