We are compiling our shaders with explicit float16_t use via the VK_KHR_shader_float16_int8 extension. We don't find or enable VK_KHR_16bit_storage, and it seems odd that this extension is missing on the Android 11 device.
My Redmi Note 8 w/Adreno 610 doesn't provide either of these extensions. It's running Android 10. This runs #define half float
My Redmi Note 10 Pro w/Adreno 618 only provides VK_KHR_shader_float16_int8. It's running Android 11. This runs #define half float16_t
My Goggle Pixel 3a has similar issues w/Adreno615 and also only provides VK_KHR_shader_float16_int8. It's running Android 11. This runs #define half float16_t
https://vulkan.gpuinfo.org/displayreport.php?id=10427#properties_extensions
So I've run these shaders through Mali and Vulkan1.1 and validation and they are fine and generate half ops in the spv assembly finally. When we try to run the float16_t shaders on Adreno 618, then I get the following log messages:
As far as I can see the vertex shader this is failing on has no half usage. It may have some mediump which translates to "Relaxed Precision" being taggged on the variables. But we haven't started using half in this vertex shader. This seems like a bad driver bug, and others have reported this error online in compute and fragment shaders.
After searching the web for similar error messags, I think type 1 in this case is a fragment shader now. But that has very little other than half use and similar convert ops to those below.
Requesting the values on float controls, I'm not sure know how any spri-v is supposed to run on this device. These commands are generated and are valid for every other platforms. This seems to indicate that support for RTZ and RTE is not present.
fp16 - RTZ 0 RTE 0, fp32 - RTZ 0 RTE 0
In fact, on printing out all the values, they all seem to be false. Why is this extension even provided?
Also with the missing 16bit_storage extension, can we not assume use of float16_t in inputOutput16, uniforms, etc. This is a big difference from other Android GPUs.
Hello Alec,
i am adreno vulkan driver lead. Could you please send me reproducable steps (apk or shader) to me. Feel free to email [email protected].
Thanks,
Srihari