diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-06-26 19:14:19 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-06-26 19:14:19 +0300 |
commit | 6b0670951f513e57b64da155f8c7e21a568a0ad2 (patch) | |
tree | 2980e8eb0f5315853dda4d086198f89a9159dbad /source | |
parent | b4c01aca30faa16900084c081faff6fbaf130872 (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')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_effect_taa_frag.glsl | 10 |
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 |