[Bf-blender-cvs] [a7c338c3800] blender-v2.82-release: Fix crash when compiling renderpass shader on some AMD drivers
Nathan Letwory
noreply at git.blender.org
Mon Mar 9 20:56:36 CET 2020
Commit: a7c338c38005a6b08b304b7dcf6574bef71f3762
Author: Nathan Letwory
Date: Mon Mar 9 20:25:35 2020 +0200
Branches: blender-v2.82-release
https://developer.blender.org/rBa7c338c38005a6b08b304b7dcf6574bef71f3762
Fix crash when compiling renderpass shader on some AMD drivers
Differential Revision: https://developer.blender.org/D6959
# Conflicts:
# source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
===================================================================
M source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
===================================================================
diff --git a/source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl b/source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
index 35bfb411cb9..3475fee901a 100644
--- a/source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
@@ -15,6 +15,7 @@ out vec4 fragColor;
void main()
{
+ vec3 color;
ivec2 texel = ivec2(gl_FragCoord.xy);
if (renderpassType == SCE_PASS_Z) {
@@ -25,7 +26,7 @@ void main()
else {
depth = -get_view_z_from_depth(depth);
}
- fragColor.r = depth;
+ color = vec3(depth);
}
else if (renderpassType == SCE_PASS_AO) {
@@ -41,24 +42,26 @@ void main()
if (depth != 1.0 && any(notEqual(encoded_normal, vec2(0.0)))) {
vec3 decoded_normal = normal_decode(texelFetch(inputBuffer, texel, 0).rg, vec3(0.0));
vec3 world_normal = mat3(ViewMatrixInverse) * decoded_normal;
- fragColor = vec4(world_normal, 1.0);
+ color = world_normal;
}
else {
- fragColor = vec4(0.0, 0.0, 0.0, 1.0);
+ color = vec3(0.0);
}
}
else if ((renderpassType & ACCUMULATED_VALUE_PASSES) != 0) {
float accumulated_value = texelFetch(inputBuffer, texel, 0).r;
- fragColor = vec4(vec3(accumulated_value / currentSample), 1.0);
+ color = vec3(accumulated_value / currentSample);
}
else if ((renderpassType & ACCUMULATED_COLOR_PASSES) != 0) {
vec3 accumulated_color = texelFetch(inputBuffer, texel, 0).rgb;
- fragColor = vec4(accumulated_color / currentSample, 1.0);
+ color = (accumulated_color / currentSample);
}
else {
- fragColor = vec4(1.0, 0.0, 1.0, 1.0);
+ color = vec4(1.0, 0.0, 1.0, 1.0);
}
+
+ fragColor = vec4(color, 1.0);
}
More information about the Bf-blender-cvs
mailing list