From d2dce41681fcf8b0503edaa763cd3c0c30ceb0fc Mon Sep 17 00:00:00 2001 From: clayjohn Date: Sun, 27 Apr 2025 10:11:19 -0700 Subject: [PATCH] Fix float/int comparison in acos_approx in sky template shader Strict GLSL implementations will not automatically convert `0` to a float --- drivers/gles3/shaders/sky.glsl | 2 +- servers/rendering/renderer_rd/shaders/environment/sky.glsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gles3/shaders/sky.glsl b/drivers/gles3/shaders/sky.glsl index 727eaa6575d..f2292dee680 100644 --- a/drivers/gles3/shaders/sky.glsl +++ b/drivers/gles3/shaders/sky.glsl @@ -157,7 +157,7 @@ float acos_approx(float p_x) { float x = abs(p_x); float res = -0.156583f * x + (M_PI / 2.0); res *= sqrt(1.0f - x); - return (p_x >= 0) ? res : M_PI - res; + return (p_x >= 0.0) ? res : M_PI - res; } // Based on https://math.stackexchange.com/questions/1098487/atan2-faster-approximation diff --git a/servers/rendering/renderer_rd/shaders/environment/sky.glsl b/servers/rendering/renderer_rd/shaders/environment/sky.glsl index 4b57648eb34..5c42b199195 100644 --- a/servers/rendering/renderer_rd/shaders/environment/sky.glsl +++ b/servers/rendering/renderer_rd/shaders/environment/sky.glsl @@ -193,7 +193,7 @@ float acos_approx(float p_x) { float x = abs(p_x); float res = -0.156583f * x + (M_PI / 2.0); res *= sqrt(1.0f - x); - return (p_x >= 0) ? res : M_PI - res; + return (p_x >= 0.0) ? res : M_PI - res; } // Based on https://math.stackexchange.com/questions/1098487/atan2-faster-approximation