From 7e93d91bfa841cb4b35cba92eb58aef8f9bc7fb6 Mon Sep 17 00:00:00 2001 From: Olivier Prat Date: Thu, 8 Nov 2018 09:29:02 +0100 Subject: [PATCH] Fixed android shader compilation --- libraries/render-utils/src/ssao.slh | 18 +++++------------- .../render-utils/src/ssao_bilateralBlur.slf | 6 +++--- .../render-utils/src/ssao_makeOcclusion.slf | 2 +- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/libraries/render-utils/src/ssao.slh b/libraries/render-utils/src/ssao.slh index 4fd5e1fd5f..bd2e29d04d 100644 --- a/libraries/render-utils/src/ssao.slh +++ b/libraries/render-utils/src/ssao.slh @@ -277,11 +277,7 @@ vec2 getStereoSideSizeRoundUp(int resolutionLevel) { return vec2((fullRes + resolutionDivisor - 1) / resolutionDivisor); } -float getZEyeAtPixel(ivec2 pixel, int level) { - return -texelFetch(depthPyramidTex, pixel, level).x; -} - -float getZEyeAtUV(vec2 texCoord, int level) { +float getZEyeAtUV(vec2 texCoord, float level) { return -textureLod(depthPyramidTex, texCoord, level).x; } @@ -289,7 +285,7 @@ float getZEyeAtUV(vec2 texCoord, int level) { -textureLodOffset(depthPyramidTex, <$texCoord$>, <$level$>, <$texelOffset$>).x; <@endfunc@> -float getZEyeAtUV(ivec4 side, vec2 texCoord, int level) { +float getZEyeAtUV(ivec4 side, vec2 texCoord, float level) { texCoord.x = mix(texCoord.x, (texCoord.x + getStereoSide(side)) * 0.5, isStereo()); return getZEyeAtUV(texCoord, level); } @@ -303,19 +299,15 @@ vec3 unpackNormal(vec3 packedNormal) { return normalize(packedNormal*2.0 - 1.0); } -vec3 getNormalEyeAtUV(vec2 texCoord, int level) { +vec3 getNormalEyeAtUV(vec2 texCoord, float level) { return unpackNormal(textureLod(normalTex, texCoord, level).xyz); } -vec3 getNormalEyeAtUV(ivec4 side, vec2 texCoord, int level) { +vec3 getNormalEyeAtUV(ivec4 side, vec2 texCoord, float level) { texCoord.x = mix(texCoord.x, (texCoord.x + getStereoSide(side)) * 0.5, isStereo()); return getNormalEyeAtUV(texCoord, level); } -vec3 getNormalEyeAtPixel(ivec2 pixel, int level) { - return unpackNormal(texelFetch(normalTex, pixel, level).xyz); -} - vec2 snapToTexel(vec2 uv, vec2 pixelSize) { return (floor(uv * pixelSize - 0.5) + 0.5) / pixelSize; } @@ -339,7 +331,7 @@ vec2 fetchTap(ivec4 side, vec2 tapUV, float tapRadius) { } vec3 buildPosition(ivec4 side, vec2 fragUVPos) { - float Zeye = getZEyeAtUV(side, fragUVPos, 0); + float Zeye = getZEyeAtUV(side, fragUVPos, 0.0); return evalEyePositionFromZeye(side.x, Zeye, fragUVPos); } diff --git a/libraries/render-utils/src/ssao_bilateralBlur.slf b/libraries/render-utils/src/ssao_bilateralBlur.slf index a68c22b5ef..cf13065555 100644 --- a/libraries/render-utils/src/ssao_bilateralBlur.slf +++ b/libraries/render-utils/src/ssao_bilateralBlur.slf @@ -44,7 +44,7 @@ int getBlurRadius() { vec4 fetchOcclusionPacked(ivec4 side, vec2 texCoord) { texCoord.x = mix(texCoord.x, (texCoord.x + getStereoSide(side) * getBlurOcclusionUVLimit().x) * 0.5, isStereo()); - return textureLod(occlusionMap, texCoord, 0); + return textureLod(occlusionMap, texCoord, 0.0); } float evalBlurCoefficient(vec3 blurScales, float radialDistance, float zDistance, float normalDistance) { @@ -81,10 +81,10 @@ vec4 getBlurredOcclusion(ivec2 destPixelCoord, vec2 occlusionTexCoord, vec2 dept // Stereo side info ivec4 side = getStereoSideInfo(destPixelCoord.x, 0); - float fragDepth = getZEyeAtUV(depthTexCoord, 0); + float fragDepth = getZEyeAtUV(depthTexCoord, 0.0); float fragDepthKey = CSZToDepthKey(fragDepth); #if SSAO_BILATERAL_BLUR_USE_NORMAL - vec3 fragNormal = getNormalEyeAtUV(depthTexCoord, 0); + vec3 fragNormal = getNormalEyeAtUV(depthTexCoord, 0.0); #else vec3 fragNormal = vec3(0, 0, 1); #endif diff --git a/libraries/render-utils/src/ssao_makeOcclusion.slf b/libraries/render-utils/src/ssao_makeOcclusion.slf index 8b44fd8301..cc161d7323 100644 --- a/libraries/render-utils/src/ssao_makeOcclusion.slf +++ b/libraries/render-utils/src/ssao_makeOcclusion.slf @@ -32,7 +32,7 @@ void main(void) { vec2 fragUVPos = varTexCoord0; #if SSAO_USE_QUAD_SPLIT - vec3 fragNormalES = getNormalEyeAtUV(fragUVPos, 0); + vec3 fragNormalES = getNormalEyeAtUV(fragUVPos, 0.0); #endif // Stereo side info based on the real viewport size of this pass