diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-10-19 18:55:18 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-10-19 18:55:51 +0300 |
commit | 053fc35b01593dbfa83858bf5a0debea39c5f1ef (patch) | |
tree | 5e1ff332ff9b60fdfae62dd658dc42f68a167621 | |
parent | 63aec82e8ae388c8ae0cf3717d18a1eb1e97395a (diff) |
EEVEE: Depth Of Field: Replace ambiguous select with manual check
This is an attempt to remove a driver bug.
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl b/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl index 51a351babd3..5f04cdcebfa 100644 --- a/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl @@ -95,7 +95,11 @@ void main() weights = dof_layer_weight(cocs) * dof_sample_weight(cocs); /* Filter NaNs. */ - weights = select(weights, vec4(0.0), equal(cocs, vec4(0.0))); + for (int i = 0; i < 4; i++) { + if (isnan(weights[i]) || isinf(weights[i])) { + weights[i] = 0.0; + } + } color1 = colors[0] * weights[0]; color2 = colors[1] * weights[1]; |