[Bf-blender-cvs] [a71a3a62677] temp-viewport-compositor-compiler: Viewport Compositor: Clamp textures to edges at zero

Omar Emara noreply at git.blender.org
Thu Mar 31 16:22:13 CEST 2022


Commit: a71a3a62677f0b4e11313b231990575566eb9750
Author: Omar Emara
Date:   Thu Mar 31 16:19:50 2022 +0200
Branches: temp-viewport-compositor-compiler
https://developer.blender.org/rBa71a3a62677f0b4e11313b231990575566eb9750

Viewport Compositor: Clamp textures to edges at zero

===================================================================

M	source/blender/gpu/shaders/compositor/compositor_convert.glsl
M	source/blender/gpu/shaders/compositor/compositor_split_viewer.glsl
M	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_load_input.glsl
M	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_texture_utils.glsl

===================================================================

diff --git a/source/blender/gpu/shaders/compositor/compositor_convert.glsl b/source/blender/gpu/shaders/compositor/compositor_convert.glsl
index e2156ffac86..2196d87eb62 100644
--- a/source/blender/gpu/shaders/compositor/compositor_convert.glsl
+++ b/source/blender/gpu/shaders/compositor/compositor_convert.glsl
@@ -3,6 +3,6 @@
 void main()
 {
   ivec2 xy = ivec2(gl_GlobalInvocationID.xy);
-  vec4 texel = load_texture(input_sampler, xy);
+  vec4 texel = texture_load(input_sampler, xy);
   imageStore(output_image, xy, CONVERT_EXPRESSION);
 }
diff --git a/source/blender/gpu/shaders/compositor/compositor_split_viewer.glsl b/source/blender/gpu/shaders/compositor/compositor_split_viewer.glsl
index 1b78e094e9f..08988ad4609 100644
--- a/source/blender/gpu/shaders/compositor/compositor_split_viewer.glsl
+++ b/source/blender/gpu/shaders/compositor/compositor_split_viewer.glsl
@@ -8,6 +8,6 @@ void main()
 #elif defined(SPLIT_VERTICAL)
   bool condition = (view_size.y * split_ratio) < xy.y;
 #endif
-  vec4 color = condition ? load_texture(first_image, xy) : load_texture(second_image, xy);
+  vec4 color = condition ? texture_load(first_image, xy) : texture_load(second_image, xy);
   imageStore(output_image, xy, color);
 }
diff --git a/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_load_input.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_load_input.glsl
index e3fa93c492b..50c4d3ede90 100644
--- a/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_load_input.glsl
+++ b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_load_input.glsl
@@ -1,17 +1,17 @@
 void load_input_float(sampler2D input_sampler, out float value)
 {
   ivec2 xy = ivec2(gl_GlobalInvocationID.xy);
-  value = load_texture(input_sampler, xy).x;
+  value = texture_load(input_sampler, xy).x;
 }
 
 void load_input_vector(sampler2D input_sampler, out vec3 vector)
 {
   ivec2 xy = ivec2(gl_GlobalInvocationID.xy);
-  vector = load_texture(input_sampler, xy).xyz;
+  vector = texture_load(input_sampler, xy).xyz;
 }
 
 void load_input_color(sampler2D input_sampler, out vec4 color)
 {
   ivec2 xy = ivec2(gl_GlobalInvocationID.xy);
-  color = load_texture(input_sampler, xy);
+  color = texture_load(input_sampler, xy);
 }
diff --git a/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_texture_utils.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_texture_utils.glsl
index 3c7ef53618d..49ccc223d44 100644
--- a/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_texture_utils.glsl
+++ b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_texture_utils.glsl
@@ -5,8 +5,8 @@ ivec2 texture_size(sampler2D sampler)
 }
 
 /* A shorthand for texelFetch with zero LOD and bounded access clamped to border. */
-vec4 load_texture(sampler2D sampler, ivec2 xy)
+vec4 texture_load(sampler2D sampler, ivec2 xy)
 {
   ivec2 texture_bounds = texture_size(sampler) - ivec2(1);
-  return texelFetch(sampler, min(xy, texture_bounds), 0);
+  return texelFetch(sampler, clamp(xy, ivec2(0), texture_bounds), 0);
 }



More information about the Bf-blender-cvs mailing list