Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2018-06-26 19:14:19 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-06-26 19:14:19 +0300
commit6b0670951f513e57b64da155f8c7e21a568a0ad2 (patch)
tree2980e8eb0f5315853dda4d086198f89a9159dbad /source/blender/draw/engines/workbench/shaders
parentb4c01aca30faa16900084c081faff6fbaf130872 (diff)
Workbench: TAA quick fix for AMD cards
Seems to be that mix(a, b, 1.0) will not give you b. on nvidia this is not a problem as a was initialized with 0.0, but on AMD it can be any floating point number, resulting that mix(inf, b, 1.0) was still more to inf than to b.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl
index d962ffedf1f..cbd55322777 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl
@@ -9,7 +9,13 @@ void main()
{
ivec2 texel = ivec2(gl_FragCoord.xy);
- vec4 history_buffer = texelFetch(historyBuffer, texel, 0);
vec4 color_buffer = texelFetch(colorBuffer, texel, 0);
- colorOutput = mix(history_buffer, color_buffer, mixFactor);
+ if (mixFactor == 1.0)
+ {
+ colorOutput = color_buffer;
+ }
+ else {
+ vec4 history_buffer = texelFetch(historyBuffer, texel, 0);
+ colorOutput = mix(history_buffer, color_buffer, mixFactor);
+ }
} \ No newline at end of file