From 6bfc8e03a833ad2b8bca68109cddc0ece398a658 Mon Sep 17 00:00:00 2001 From: Merlin1809 <88194861+Merlin1809@users.noreply.github.com> Date: Wed, 21 Jan 2026 14:12:48 +0100 Subject: [PATCH] fix crash on Intel GPUs --- shaders/dimensions/all_particles.fsh | 1 + shaders/dimensions/composite2.fsh | 1 + shaders/lib/diffuse_lighting.glsl | 10 +++++----- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index a72d9ed..c450464 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -114,6 +114,7 @@ uniform int heldItemId2; #endif #ifdef IS_LPV_ENABLED + #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_common.glsl" #include "/lib/lpv_render.glsl" #endif diff --git a/shaders/dimensions/composite2.fsh b/shaders/dimensions/composite2.fsh index fcf865d..ad0e7b3 100644 --- a/shaders/dimensions/composite2.fsh +++ b/shaders/dimensions/composite2.fsh @@ -141,6 +141,7 @@ uniform sampler2D colortex4; uniform sampler3D texLpv2; #include "/lib/hsv.glsl" + #include "/lib/lpv_blocks.glsl" #include "/lib/lpv_common.glsl" #include "/lib/lpv_render.glsl" diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index a9174e0..99239d5 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -7,7 +7,7 @@ if(hand) return 1.0; - vec3 WlightDir = normalize((gbufferModelViewInverse*vec4(lightDir, 1.0)).xyz); + vec3 WlightDir = normalize((gbufferModelViewInverse*vec4(lightDir, 1.0)) .xyz); float NdotL = dot(normals, WlightDir); NdotL = smoothstep(0.0, 0.2, abs(NdotL)); @@ -75,15 +75,15 @@ vec3 lightFinal = vec3(0.0); vec3 lightColor = vec3(0.0); - uvec2 blockData = texelFetch(texBlockData, itemId, 0).rg; - vec4 lightColorRange = unpackUnorm4x8(blockData.r); + uint blockData = imageLoad(imgBlockData, itemId).r; + vec4 lightColorRange = unpackUnorm4x8(blockData); lightColor = srgbToLinear(lightColorRange.rgb); lightRange = lightColorRange.a * 255.0; if (lightRange > 0.0) { float lightDist = length(playerPos+relativeEyePosition); // vec3 lightDir = playerPos / lightDist; - float NoL = 1.0;//max(dot(normal, lightDir), 0.0); + const float NoL = 1.0;//max(dot(normal, lightDir), 0.0); float falloff = pow(1.0 - lightDist / lightRange, 3.0); lightFinal = lightColor * NoL * max(falloff, 0.0); } @@ -118,7 +118,7 @@ vec3 doBlockLightLighting( // vec3 lpvBlockLight = GetLpvBlockLight(lpvSample); // create a smooth falloff at the edges of the voxel volume. - float fadeLength = 10.0; // in meters + const float fadeLength = 10.0; // in meters vec3 cubicRadius = clamp(min(((LpvSize3-1.0) - lpvPos)/fadeLength, lpvPos/fadeLength), 0.0, 1.0); float voxelRangeFalloff = cubicRadius.x*cubicRadius.y*cubicRadius.z; voxelRangeFalloff = 1.0 - pow(1.0-pow(voxelRangeFalloff,1.5),3.0);