diff --git a/backends/vulkan/runtime/gen_vulkan_spv.py b/backends/vulkan/runtime/gen_vulkan_spv.py index dab33fb3097..192bfa3f900 100644 --- a/backends/vulkan/runtime/gen_vulkan_spv.py +++ b/backends/vulkan/runtime/gen_vulkan_spv.py @@ -857,6 +857,13 @@ def create_shader_params( for key, value in variant_params.items(): shader_params[key] = value + # Downgrade PRECISION to mediump for half-precision variants. + if ( + shader_params.get("DTYPE") == "half" + and shader_params.get("PRECISION") == "highp" + ): + shader_params["PRECISION"] = "mediump" + return shader_params def constructOutputMap(self) -> None: