Fixed android shader compilation

This commit is contained in:
Olivier Prat 2018-11-08 09:29:02 +01:00
parent 9d5dcec0a0
commit 7e93d91bfa
3 changed files with 9 additions and 17 deletions

View file

@ -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);
}

View file

@ -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

View file

@ -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