diff --git a/etc/shaders/lovr.glsl b/etc/shaders/lovr.glsl index a14aa4cf..7f030ebb 100644 --- a/etc/shaders/lovr.glsl +++ b/etc/shaders/lovr.glsl @@ -155,7 +155,8 @@ layout(location = 14) in vec3 Tangent; vec4 getPixel(texture2D t, vec2 uv) { return texture(sampler2D(t, Sampler), uv); } vec4 getPixel(texture3D t, vec3 uvw) { return texture(sampler3D(t, Sampler), uvw); } vec4 getPixel(textureCube t, vec3 dir) { return texture(samplerCube(t, Sampler), dir); } -vec4 getPixel(texture2DArray t, vec3 uvw) { return texture(sampler2DArray(t, Sampler), uvw); } +vec4 getPixel(texture2DArray t, vec2 uv, uint layer) { return texture(sampler2DArray(t, Sampler), vec3(uv, layer)); } +vec4 getPixel(texture2DArray t, vec2 uv, float layer) { return texture(sampler2DArray(t, Sampler), vec3(uv, layer)); } #endif #ifdef GL_FRAGMENT_SHADER diff --git a/etc/shaders/stereoblit.frag b/etc/shaders/stereoblit.frag index 95de5d7d..2f0ef3ae 100644 --- a/etc/shaders/stereoblit.frag +++ b/etc/shaders/stereoblit.frag @@ -8,6 +8,5 @@ layout(set = 1, binding = 1) uniform texture2DArray ArrayTexture; vec4 lovrmain() { vec2 uv = vec2(2 * UV.x, UV.y); - vec3 uvw = vec3(uv, round(UV.x)); - return Color * getPixel(ArrayTexture, uvw); + return Color * getPixel(ArrayTexture, uv, round(UV.x)); }