8 .local_group_size(16, 16)
9 .push_constant(Type::BOOL,
"is_initial_reduction")
10 .sampler(0, ImageType::FLOAT_2D,
"input_tx")
11 .compute_source(
"compositor_parallel_reduction.glsl");
18 .additional_info(
"compositor_parallel_reduction_shared")
19 .define(
"REDUCE(lhs, rhs)",
"lhs + rhs");
22 .additional_info(
"compositor_sum_shared")
23 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
24 .define(
"TYPE",
"float")
25 .define(
"IDENTITY",
"0.0")
26 .define(
"LOAD(value)",
"value.x");
29 .additional_info(
"compositor_sum_float_shared")
30 .define(
"INITIALIZE(value)",
"value.r")
31 .do_static_compilation(
true);
34 .additional_info(
"compositor_sum_float_shared")
35 .define(
"INITIALIZE(value)",
"value.g")
36 .do_static_compilation(
true);
39 .additional_info(
"compositor_sum_float_shared")
40 .define(
"INITIALIZE(value)",
"value.b")
41 .do_static_compilation(
true);
44 .additional_info(
"compositor_sum_float_shared")
45 .push_constant(Type::VEC3,
"luminance_coefficients")
46 .define(
"INITIALIZE(value)",
"dot(value.rgb, luminance_coefficients)")
47 .do_static_compilation(
true);
50 .additional_info(
"compositor_sum_float_shared")
51 .push_constant(Type::VEC3,
"luminance_coefficients")
52 .define(
"INITIALIZE(value)",
"log(max(dot(value.rgb, luminance_coefficients), 1e-5))")
53 .do_static_compilation(
true);
56 .additional_info(
"compositor_sum_shared")
57 .image(0,
GPU_RGBA32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
58 .define(
"TYPE",
"vec4")
59 .define(
"IDENTITY",
"vec4(0.0)")
60 .define(
"INITIALIZE(value)",
"value")
61 .define(
"LOAD(value)",
"value")
62 .do_static_compilation(
true);
69 .additional_info(
"compositor_parallel_reduction_shared")
70 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
71 .push_constant(Type::FLOAT,
"subtrahend")
72 .define(
"TYPE",
"float")
73 .define(
"IDENTITY",
"0.0")
74 .define(
"LOAD(value)",
"value.x")
75 .define(
"REDUCE(lhs, rhs)",
"lhs + rhs");
78 .additional_info(
"compositor_sum_squared_difference_float_shared")
79 .define(
"INITIALIZE(value)",
"pow(value.r - subtrahend, 2.0)")
80 .do_static_compilation(
true);
83 .additional_info(
"compositor_sum_squared_difference_float_shared")
84 .define(
"INITIALIZE(value)",
"pow(value.g - subtrahend, 2.0)")
85 .do_static_compilation(
true);
88 .additional_info(
"compositor_sum_squared_difference_float_shared")
89 .define(
"INITIALIZE(value)",
"pow(value.b - subtrahend, 2.0)")
90 .do_static_compilation(
true);
93 .additional_info(
"compositor_sum_squared_difference_float_shared")
94 .push_constant(Type::VEC3,
"luminance_coefficients")
95 .define(
"INITIALIZE(value)",
"pow(dot(value.rgb, luminance_coefficients) - subtrahend, 2.0)")
96 .do_static_compilation(
true);
103 .additional_info(
"compositor_parallel_reduction_shared")
104 .typedef_source(
"common_math_lib.glsl")
105 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
106 .push_constant(Type::VEC3,
"luminance_coefficients")
107 .define(
"TYPE",
"float")
108 .define(
"IDENTITY",
"FLT_MIN")
109 .define(
"INITIALIZE(value)",
"dot(value.rgb, luminance_coefficients)")
110 .define(
"LOAD(value)",
"value.x")
111 .define(
"REDUCE(lhs, rhs)",
"max(lhs, rhs)")
112 .do_static_compilation(
true);
115 .additional_info(
"compositor_parallel_reduction_shared")
116 .typedef_source(
"common_math_lib.glsl")
117 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
118 .define(
"TYPE",
"float")
119 .define(
"IDENTITY",
"FLT_MIN")
120 .define(
"INITIALIZE(value)",
"value.x")
121 .define(
"LOAD(value)",
"value.x")
122 .define(
"REDUCE(lhs, rhs)",
"max(rhs, lhs)")
123 .do_static_compilation(
true);
126 .additional_info(
"compositor_parallel_reduction_shared")
127 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
128 .push_constant(Type::FLOAT,
"lower_bound")
129 .push_constant(Type::FLOAT,
"upper_bound")
130 .define(
"TYPE",
"float")
131 .define(
"IDENTITY",
"lower_bound")
132 .define(
"INITIALIZE(v)",
"((v.x <= upper_bound) && (v.x >= lower_bound)) ? v.x : lower_bound")
133 .define(
"LOAD(value)",
"value.x")
134 .define(
"REDUCE(lhs, rhs)",
"((rhs > lhs) && (rhs <= upper_bound)) ? rhs : lhs")
135 .do_static_compilation(
true);
142 .additional_info(
"compositor_parallel_reduction_shared")
143 .typedef_source(
"common_math_lib.glsl")
144 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
145 .push_constant(Type::VEC3,
"luminance_coefficients")
146 .define(
"TYPE",
"float")
147 .define(
"IDENTITY",
"FLT_MAX")
148 .define(
"INITIALIZE(value)",
"dot(value.rgb, luminance_coefficients)")
149 .define(
"LOAD(value)",
"value.x")
150 .define(
"REDUCE(lhs, rhs)",
"min(lhs, rhs)")
151 .do_static_compilation(
true);
154 .additional_info(
"compositor_parallel_reduction_shared")
155 .typedef_source(
"common_math_lib.glsl")
156 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
157 .define(
"TYPE",
"float")
158 .define(
"IDENTITY",
"FLT_MAX")
159 .define(
"INITIALIZE(value)",
"value.x")
160 .define(
"LOAD(value)",
"value.x")
161 .define(
"REDUCE(lhs, rhs)",
"min(rhs, lhs)")
162 .do_static_compilation(
true);
165 .additional_info(
"compositor_parallel_reduction_shared")
166 .image(0,
GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
167 .push_constant(Type::FLOAT,
"lower_bound")
168 .push_constant(Type::FLOAT,
"upper_bound")
169 .define(
"TYPE",
"float")
170 .define(
"IDENTITY",
"upper_bound")
171 .define(
"INITIALIZE(v)",
"((v.x <= upper_bound) && (v.x >= lower_bound)) ? v.x : upper_bound")
172 .define(
"LOAD(value)",
"value.x")
173 .define(
"REDUCE(lhs, rhs)",
"((rhs < lhs) && (rhs >= lower_bound)) ? rhs : lhs")
174 .do_static_compilation(
true);
181 .local_group_size(32, 32)
182 .push_constant(Type::BOOL,
"is_initial_reduction")
183 .sampler(0, ImageType::FLOAT_2D,
"input_tx")
184 .image(0,
GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D,
"output_img")
185 .define(
"TYPE",
"vec4")
186 .define(
"IDENTITY",
"vec4(0.0)")
187 .define(
"INITIALIZE(value)",
"value")
188 .define(
"LOAD(value)",
"value")
189 .define(
"REDUCE(lhs, rhs)",
190 "vec4(dot(lhs.xy, lhs.xy) > dot(rhs.xy, rhs.xy) ? lhs.xy : rhs.xy,"
191 " dot(lhs.zw, lhs.zw) > dot(rhs.zw, rhs.zw) ? lhs.zw : rhs.zw)")
192 .compute_source(
"compositor_parallel_reduction.glsl")
193 .do_static_compilation(
true);
additional_info("compositor_sum_float_shared") .push_constant(Type additional_info("compositor_sum_float_shared") .push_constant(Type GPU_RGBA32F
#define GPU_SHADER_CREATE_INFO(_info)