From a48909b7ea198b08be3ee85db6bd945b1a121fdf Mon Sep 17 00:00:00 2001 From: nervous-inhuman <8982584+nervous-inhuman@users.noreply.github.com> Date: Sat, 26 Jul 2025 03:33:16 +0200 Subject: [PATCH] fix(shader/metal): correct noise coords and frame input in fragmentShader - Replace undefined `screenSpace.xy * noise_scale` with `in.position.xy * frameUniforms.noiseScale` - Replace undefined `noise_frame` with `float(frameUniforms.frameCount)` - This resolves build failures (undeclared identifiers, nil vertexFunction) when driving over sand Fixes: shader compilation errors and Metal pipeline validation assertion --- assets/shaders/metal/default.shader.metal | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/shaders/metal/default.shader.metal b/assets/shaders/metal/default.shader.metal index 9a59fb87e..846a68e5f 100644 --- a/assets/shaders/metal/default.shader.metal +++ b/assets/shaders/metal/default.shader.metal @@ -273,8 +273,8 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn @end @if(o_alpha && o_noise) - float2 coords = screenSpace.xy * noise_scale; - texel.w *= round(saturate(random(float3(floor(coords), noise_frame)) + texel.w - 0.5)); + float2 coords = in.position.xy * frameUniforms.noiseScale; + texel.w *= round(saturate(random(float3(floor(coords), float(frameUniforms.frameCount))) + texel.w - 0.5)); @end @if(o_alpha) @@ -288,4 +288,4 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn @else return float4(texel, 1.0); @end -} \ No newline at end of file +}