GPU: Change Type enum to use lower case values

This is to help for future resource declaration
using macros.

Rel #137261

Pull Request: https://projects.blender.org/blender/blender/pulls/137367
This commit is contained in:
Clément Foucault
2025-04-11 22:39:01 +02:00
committed by Clément Foucault
parent aab2b6004b
commit 9990273d04
158 changed files with 2040 additions and 2068 deletions

View File

@@ -199,7 +199,7 @@ static bool createGPUShader(OCIO_GPUShader &shader,
source, "if ( gamma != vec3(1., 1., 1.) )", "if (! all(equal(gamma, vec3(1., 1., 1.))) )");
StageInterfaceInfo iface("OCIO_Interface", "");
iface.smooth(Type::VEC2, "texCoord_interp");
iface.smooth(Type::float2_t, "texCoord_interp");
ShaderCreateInfo info("OCIO_Display");
/* Work around OpenColorIO not supporting latest GLSL yet. */
@@ -214,11 +214,11 @@ static bool createGPUShader(OCIO_GPUShader &shader,
info.sampler(TEXTURE_SLOT_IMAGE, ImageType::FLOAT_2D, "image_texture");
info.sampler(TEXTURE_SLOT_OVERLAY, ImageType::FLOAT_2D, "overlay_texture");
info.uniform_buf(UNIFORMBUF_SLOT_DISPLAY, "OCIO_GPUParameters", "parameters");
info.push_constant(Type::MAT4, "ModelViewProjectionMatrix");
info.vertex_in(0, Type::VEC2, "pos");
info.vertex_in(1, Type::VEC2, "texCoord");
info.push_constant(Type::float4x4_t, "ModelViewProjectionMatrix");
info.vertex_in(0, Type::float2_t, "pos");
info.vertex_in(1, Type::float2_t, "texCoord");
info.vertex_out(iface);
info.fragment_out(0, Type::VEC4, "fragColor");
info.fragment_out(0, Type::float4_t, "fragColor");
info.vertex_source("gpu_shader_display_transform_vert.glsl");
info.fragment_source("gpu_shader_display_transform_frag.glsl");
info.fragment_source_generated = source;

View File

@@ -360,16 +360,16 @@ static GPUShader *compile_eval_stencil_shader(BufferDescriptor const &srcDesc,
SHADER_SRC_VERTEX_BUFFER_BUF_SLOT, Qualifier::READ, "float", "srcVertexBuffer[]");
info.storage_buf(
SHADER_DST_VERTEX_BUFFER_BUF_SLOT, Qualifier::WRITE, "float", "dstVertexBuffer[]");
info.push_constant(Type::INT, "srcOffset");
info.push_constant(Type::INT, "dstOffset");
info.push_constant(Type::int_t, "srcOffset");
info.push_constant(Type::int_t, "dstOffset");
bool deriv1 = (duDesc.length > 0 || dvDesc.length > 0);
if (deriv1) {
info.define("OPENSUBDIV_GLSL_COMPUTE_USE_1ST_DERIVATIVES");
info.storage_buf(SHADER_DU_BUFFER_BUF_SLOT, Qualifier::READ_WRITE, "float", "duBuffer[]");
info.storage_buf(SHADER_DV_BUFFER_BUF_SLOT, Qualifier::READ_WRITE, "float", "dvBuffer[]");
info.push_constant(Type::IVEC3, "duDesc");
info.push_constant(Type::IVEC3, "dvDesc");
info.push_constant(Type::int3_t, "duDesc");
info.push_constant(Type::int3_t, "dvDesc");
}
info.storage_buf(SHADER_SIZES_BUF_SLOT, Qualifier::READ, "int", "sizes_buf[]");
@@ -382,8 +382,8 @@ static GPUShader *compile_eval_stencil_shader(BufferDescriptor const &srcDesc,
info.storage_buf(
SHADER_DV_WEIGHTS_BUF_SLOT, Qualifier::READ_WRITE, "float", "dv_weights_buf[]");
}
info.push_constant(Type::INT, "batchStart");
info.push_constant(Type::INT, "batchEnd");
info.push_constant(Type::int_t, "batchStart");
info.push_constant(Type::int_t, "batchEnd");
info.compute_source("osd_eval_stencils_comp.glsl");
GPUShader *shader = GPU_shader_create_from_info(
@@ -462,16 +462,16 @@ static GPUShader *compile_eval_patches_shader(BufferDescriptor const &srcDesc,
SHADER_SRC_VERTEX_BUFFER_BUF_SLOT, Qualifier::READ, "float", "srcVertexBuffer[]");
info.storage_buf(
SHADER_DST_VERTEX_BUFFER_BUF_SLOT, Qualifier::WRITE, "float", "dstVertexBuffer[]");
info.push_constant(Type::INT, "srcOffset");
info.push_constant(Type::INT, "dstOffset");
info.push_constant(Type::int_t, "srcOffset");
info.push_constant(Type::int_t, "dstOffset");
bool deriv1 = (duDesc.length > 0 || dvDesc.length > 0);
if (deriv1) {
info.define("OPENSUBDIV_GLSL_COMPUTE_USE_1ST_DERIVATIVES");
info.storage_buf(SHADER_DU_BUFFER_BUF_SLOT, Qualifier::READ_WRITE, "float", "duBuffer[]");
info.storage_buf(SHADER_DV_BUFFER_BUF_SLOT, Qualifier::READ_WRITE, "float", "dvBuffer[]");
info.push_constant(Type::IVEC3, "duDesc");
info.push_constant(Type::IVEC3, "dvDesc");
info.push_constant(Type::int3_t, "duDesc");
info.push_constant(Type::int3_t, "dvDesc");
}
info.storage_buf(

View File

@@ -121,7 +121,7 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
/* Don't use the name argument directly since ShaderCreateInfo only stores references to
* resource names, instead, use the name that is stored in resource_names_. */
std::string &resource_name = *resource_names_[resource_names_.size() - 1];
shader_create_info_.push_constant(Type::FLOAT, resource_name);
shader_create_info_.push_constant(Type::float_t, resource_name);
float_uniforms_.add(resource_name, get_double);
@@ -140,7 +140,7 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
/* Don't use the name argument directly since ShaderCreateInfo only stores references to
* resource names, instead, use the name that is stored in resource_names_. */
const std::string &resource_name = *resource_names_[resource_names_.size() - 1];
shader_create_info_.push_constant(Type::BOOL, resource_name);
shader_create_info_.push_constant(Type::bool_t, resource_name);
boolean_uniforms_.add(name, get_bool);
@@ -159,7 +159,7 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
/* Don't use the name argument directly since ShaderCreateInfo only stores references to
* resource names, instead, use the name that is stored in resource_names_. */
std::string &resource_name = *resource_names_[resource_names_.size() - 1];
shader_create_info_.push_constant(Type::VEC3, resource_name);
shader_create_info_.push_constant(Type::float3_t, resource_name);
vector_uniforms_.add(resource_name, get_float3);

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_alpha_crop)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(IVEC2, upper_bound)
PUSH_CONSTANT(int2, lower_bound)
PUSH_CONSTANT(int2, upper_bound)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_alpha_crop.glsl")

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_bilateral_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, radius)
PUSH_CONSTANT(FLOAT, threshold)
PUSH_CONSTANT(int, radius)
PUSH_CONSTANT(float, threshold)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, determinator_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_bokeh_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, radius)
PUSH_CONSTANT(BOOL, extend_bounds)
PUSH_CONSTANT(int, radius)
PUSH_CONSTANT(bool, extend_bounds)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
SAMPLER(2, FLOAT_2D, mask_tx)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_bokeh_blur_variable_size)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, base_size)
PUSH_CONSTANT(INT, search_radius)
PUSH_CONSTANT(float, base_size)
PUSH_CONSTANT(int, search_radius)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
SAMPLER(2, FLOAT_2D, size_tx)

View File

@@ -6,11 +6,11 @@
GPU_SHADER_CREATE_INFO(compositor_bokeh_image)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, exterior_angle)
PUSH_CONSTANT(FLOAT, rotation)
PUSH_CONSTANT(FLOAT, roundness)
PUSH_CONSTANT(FLOAT, catadioptric)
PUSH_CONSTANT(FLOAT, lens_shift)
PUSH_CONSTANT(float, exterior_angle)
PUSH_CONSTANT(float, rotation)
PUSH_CONSTANT(float, roundness)
PUSH_CONSTANT(float, catadioptric)
PUSH_CONSTANT(float, lens_shift)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_bokeh_image.glsl")
DO_STATIC_COMPILATION()

View File

@@ -6,11 +6,11 @@
GPU_SHADER_CREATE_INFO(compositor_box_mask_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, domain_size)
PUSH_CONSTANT(VEC2, location)
PUSH_CONSTANT(VEC2, size)
PUSH_CONSTANT(FLOAT, cos_angle)
PUSH_CONSTANT(FLOAT, sin_angle)
PUSH_CONSTANT(int2, domain_size)
PUSH_CONSTANT(float2, location)
PUSH_CONSTANT(float2, size)
PUSH_CONSTANT(float, cos_angle)
PUSH_CONSTANT(float, sin_angle)
SAMPLER(0, FLOAT_2D, base_mask_tx)
SAMPLER(1, FLOAT_2D, mask_value_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_mask_img)

View File

@@ -291,7 +291,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_convert_color_to_float)
ADDITIONAL_INFO(compositor_convert_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients_u)
PUSH_CONSTANT(float3, luminance_coefficients_u)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
DEFINE_VALUE("CONVERT_EXPRESSION(value)",
"vec4(color_to_float(value, luminance_coefficients_u), vec3(0.0f))")
@@ -300,7 +300,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_convert_color_to_int)
ADDITIONAL_INFO(compositor_convert_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients_u)
PUSH_CONSTANT(float3, luminance_coefficients_u)
IMAGE(0, GPU_R16I, WRITE, INT_2D, output_img)
DEFINE_VALUE("CONVERT_EXPRESSION(value)",
"ivec4(color_to_int(value, luminance_coefficients_u), ivec3(0))")
@@ -337,7 +337,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_convert_color_to_bool)
ADDITIONAL_INFO(compositor_convert_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients_u)
PUSH_CONSTANT(float3, luminance_coefficients_u)
IMAGE(0, GPU_R8I, WRITE, INT_2D, output_img)
DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(color_to_bool(value, luminance_coefficients_u))")
DO_STATIC_COMPILATION()

View File

@@ -8,7 +8,7 @@ using namespace blender::gpu::shader;
GPU_SHADER_CREATE_INFO(compositor_cryptomatte_pick)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(int2, lower_bound)
SAMPLER(0, FLOAT_2D, first_layer_tx)
IMAGE(0, GPU_RGBA32F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_cryptomatte_pick.glsl")
@@ -17,9 +17,9 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_cryptomatte_matte)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(INT, identifiers_count)
PUSH_CONSTANT_ARRAY(FLOAT, identifiers, 32)
PUSH_CONSTANT(int2, lower_bound)
PUSH_CONSTANT(int, identifiers_count)
PUSH_CONSTANT_ARRAY(float, identifiers, 32)
SAMPLER(0, FLOAT_2D, layer_tx)
IMAGE(0, GPU_R16F, READ_WRITE, FLOAT_2D, matte_img)
COMPUTE_SOURCE("compositor_cryptomatte_matte.glsl")

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_defocus_radius_from_scale)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, scale)
PUSH_CONSTANT(FLOAT, max_radius)
PUSH_CONSTANT(float, scale)
PUSH_CONSTANT(float, max_radius)
SAMPLER(0, FLOAT_2D, radius_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, radius_img)
COMPUTE_SOURCE("compositor_defocus_radius_from_scale.glsl")
@@ -16,11 +16,11 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_defocus_radius_from_depth)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, f_stop)
PUSH_CONSTANT(FLOAT, max_radius)
PUSH_CONSTANT(FLOAT, focal_length)
PUSH_CONSTANT(FLOAT, pixels_per_meter)
PUSH_CONSTANT(FLOAT, distance_to_image_of_focus)
PUSH_CONSTANT(float, f_stop)
PUSH_CONSTANT(float, max_radius)
PUSH_CONSTANT(float, focal_length)
PUSH_CONSTANT(float, pixels_per_meter)
PUSH_CONSTANT(float, distance_to_image_of_focus)
SAMPLER(0, FLOAT_2D, depth_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, radius_img)
COMPUTE_SOURCE("compositor_defocus_radius_from_depth.glsl")
@@ -29,7 +29,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_defocus_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, search_radius)
PUSH_CONSTANT(int, search_radius)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
SAMPLER(2, FLOAT_2D, radius_tx)

View File

@@ -6,11 +6,11 @@
GPU_SHADER_CREATE_INFO(compositor_deriche_gaussian_blur)
LOCAL_GROUP_SIZE(128, 2)
PUSH_CONSTANT(VEC4, causal_feedforward_coefficients)
PUSH_CONSTANT(VEC4, non_causal_feedforward_coefficients)
PUSH_CONSTANT(VEC4, feedback_coefficients)
PUSH_CONSTANT(FLOAT, causal_boundary_coefficient)
PUSH_CONSTANT(FLOAT, non_causal_boundary_coefficient)
PUSH_CONSTANT(float4, causal_feedforward_coefficients)
PUSH_CONSTANT(float4, non_causal_feedforward_coefficients)
PUSH_CONSTANT(float4, feedback_coefficients)
PUSH_CONSTANT(float, causal_boundary_coefficient)
PUSH_CONSTANT(float, non_causal_boundary_coefficient)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, causal_output_img)
IMAGE(1, GPU_RGBA16F, WRITE, FLOAT_2D, non_causal_output_img)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_despeckle)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, color_threshold)
PUSH_CONSTANT(FLOAT, neighbor_threshold)
PUSH_CONSTANT(float, color_threshold)
PUSH_CONSTANT(float, neighbor_threshold)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, factor_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,12 +6,12 @@
GPU_SHADER_CREATE_INFO(compositor_directional_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, iterations)
PUSH_CONSTANT(VEC2, origin)
PUSH_CONSTANT(VEC2, translation)
PUSH_CONSTANT(FLOAT, rotation_sin)
PUSH_CONSTANT(FLOAT, rotation_cos)
PUSH_CONSTANT(FLOAT, scale)
PUSH_CONSTANT(int, iterations)
PUSH_CONSTANT(float2, origin)
PUSH_CONSTANT(float2, translation)
PUSH_CONSTANT(float, rotation_sin)
PUSH_CONSTANT(float, rotation_cos)
PUSH_CONSTANT(float, scale)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_directional_blur.glsl")

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_double_edge_mask_compute_boundary)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, include_all_inner_edges)
PUSH_CONSTANT(BOOL, include_edges_of_image)
PUSH_CONSTANT(bool, include_all_inner_edges)
PUSH_CONSTANT(bool, include_edges_of_image)
SAMPLER(0, FLOAT_2D, inner_mask_tx)
SAMPLER(1, FLOAT_2D, outer_mask_tx)
IMAGE(0, GPU_RG16I, WRITE, INT_2D, inner_boundary_img)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_edge_filter)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(MAT4, ukernel)
PUSH_CONSTANT(float4x4, ukernel)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, factor_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,11 +6,11 @@
GPU_SHADER_CREATE_INFO(compositor_ellipse_mask_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, domain_size)
PUSH_CONSTANT(VEC2, location)
PUSH_CONSTANT(VEC2, radius)
PUSH_CONSTANT(FLOAT, cos_angle)
PUSH_CONSTANT(FLOAT, sin_angle)
PUSH_CONSTANT(int2, domain_size)
PUSH_CONSTANT(float2, location)
PUSH_CONSTANT(float2, radius)
PUSH_CONSTANT(float, cos_angle)
PUSH_CONSTANT(float, sin_angle)
SAMPLER(0, FLOAT_2D, base_mask_tx)
SAMPLER(1, FLOAT_2D, mask_value_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_mask_img)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_filter)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(MAT4, ukernel)
PUSH_CONSTANT(float4x4, ukernel)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, factor_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_flip)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, flip_x)
PUSH_CONSTANT(BOOL, flip_y)
PUSH_CONSTANT(bool, flip_x)
PUSH_CONSTANT(bool, flip_y)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_flip.glsl")

View File

@@ -10,9 +10,9 @@
GPU_SHADER_CREATE_INFO(compositor_glare_highlights)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, threshold)
PUSH_CONSTANT(FLOAT, highlights_smoothness)
PUSH_CONSTANT(FLOAT, max_brightness)
PUSH_CONSTANT(float, threshold)
PUSH_CONSTANT(float, highlights_smoothness)
PUSH_CONSTANT(float, max_brightness)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_glare_highlights.glsl")
@@ -21,8 +21,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_mix)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, saturation)
PUSH_CONSTANT(VEC3, tint)
PUSH_CONSTANT(float, saturation)
PUSH_CONSTANT(float3, tint)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, glare_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
@@ -32,8 +32,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_write_glare_output)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, saturation)
PUSH_CONSTANT(VEC3, tint)
PUSH_CONSTANT(float, saturation)
PUSH_CONSTANT(float3, tint)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_glare_write_glare_output.glsl")
@@ -63,8 +63,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_ghost_accumulate)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(VEC4, scales)
PUSH_CONSTANT_ARRAY(VEC4, color_modulators, 4)
PUSH_CONSTANT(float4, scales)
PUSH_CONSTANT_ARRAY(float4, color_modulators, 4)
SAMPLER(0, FLOAT_2D, input_ghost_tx)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, accumulated_ghost_img)
COMPUTE_SOURCE("compositor_glare_ghost_accumulate.glsl")
@@ -77,8 +77,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_horizontal_pass)
LOCAL_GROUP_SIZE(16)
PUSH_CONSTANT(INT, iterations)
PUSH_CONSTANT(FLOAT, fade_factor)
PUSH_CONSTANT(int, iterations)
PUSH_CONSTANT(float, fade_factor)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, horizontal_img)
COMPUTE_SOURCE("compositor_glare_simple_star_horizontal_pass.glsl")
DO_STATIC_COMPILATION()
@@ -86,8 +86,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_vertical_pass)
LOCAL_GROUP_SIZE(16)
PUSH_CONSTANT(INT, iterations)
PUSH_CONSTANT(FLOAT, fade_factor)
PUSH_CONSTANT(int, iterations)
PUSH_CONSTANT(float, fade_factor)
SAMPLER(0, FLOAT_2D, horizontal_tx)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, vertical_img)
COMPUTE_SOURCE("compositor_glare_simple_star_vertical_pass.glsl")
@@ -96,8 +96,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_diagonal_pass)
LOCAL_GROUP_SIZE(16)
PUSH_CONSTANT(INT, iterations)
PUSH_CONSTANT(FLOAT, fade_factor)
PUSH_CONSTANT(int, iterations)
PUSH_CONSTANT(float, fade_factor)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, diagonal_img)
COMPUTE_SOURCE("compositor_glare_simple_star_diagonal_pass.glsl")
DO_STATIC_COMPILATION()
@@ -105,8 +105,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_anti_diagonal_pass)
LOCAL_GROUP_SIZE(16)
PUSH_CONSTANT(INT, iterations)
PUSH_CONSTANT(FLOAT, fade_factor)
PUSH_CONSTANT(int, iterations)
PUSH_CONSTANT(float, fade_factor)
SAMPLER(0, FLOAT_2D, diagonal_tx)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, anti_diagonal_img)
COMPUTE_SOURCE("compositor_glare_simple_star_anti_diagonal_pass.glsl")
@@ -119,9 +119,9 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_streaks_filter)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, color_modulator)
PUSH_CONSTANT(VEC3, fade_factors)
PUSH_CONSTANT(VEC2, streak_vector)
PUSH_CONSTANT(float, color_modulator)
PUSH_CONSTANT(float3, fade_factors)
PUSH_CONSTANT(float2, streak_vector)
SAMPLER(0, FLOAT_2D, input_streak_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_streak_img)
COMPUTE_SOURCE("compositor_glare_streaks_filter.glsl")
@@ -130,7 +130,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_glare_streaks_accumulate)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, attenuation_factor)
PUSH_CONSTANT(float, attenuation_factor)
SAMPLER(0, FLOAT_2D, streak_tx)
IMAGE(0, GPU_RGBA16F, READ_WRITE, FLOAT_2D, accumulated_streaks_img)
COMPUTE_SOURCE("compositor_glare_streaks_accumulate.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_id_mask)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, index)
PUSH_CONSTANT(int, index)
SAMPLER(0, FLOAT_2D, input_mask_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_mask_img)
COMPUTE_SOURCE("compositor_id_mask.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_image_crop)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(int2, lower_bound)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_image_crop.glsl")

View File

@@ -14,7 +14,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_inpaint_fill_region)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, max_distance)
PUSH_CONSTANT(int, max_distance)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, INT_2D, flooded_boundary_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, filled_region_img)
@@ -26,7 +26,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_inpaint_compute_region)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, max_distance)
PUSH_CONSTANT(int, max_distance)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, inpainted_region_tx)
SAMPLER(2, FLOAT_2D, distance_to_boundary_tx)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_jump_flooding)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, step_size)
PUSH_CONSTANT(int, step_size)
SAMPLER(0, INT_2D, input_tx)
IMAGE(0, GPU_RG16I, WRITE, INT_2D, output_img)
COMPUTE_SOURCE("compositor_jump_flooding.glsl")

View File

@@ -23,7 +23,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_keying_compute_matte)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, key_balance)
PUSH_CONSTANT(float, key_balance)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, key_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
@@ -33,12 +33,12 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_keying_tweak_matte_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, apply_core_matte)
PUSH_CONSTANT(BOOL, apply_garbage_matte)
PUSH_CONSTANT(INT, edge_search_radius)
PUSH_CONSTANT(FLOAT, edge_tolerance)
PUSH_CONSTANT(FLOAT, black_level)
PUSH_CONSTANT(FLOAT, white_level)
PUSH_CONSTANT(bool, apply_core_matte)
PUSH_CONSTANT(bool, apply_garbage_matte)
PUSH_CONSTANT(int, edge_search_radius)
PUSH_CONSTANT(float, edge_tolerance)
PUSH_CONSTANT(float, black_level)
PUSH_CONSTANT(float, white_level)
SAMPLER(0, FLOAT_2D, input_matte_tx)
SAMPLER(1, FLOAT_2D, garbage_matte_tx)
SAMPLER(2, FLOAT_2D, core_matte_tx)
@@ -60,8 +60,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_keying_compute_image)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, despill_factor)
PUSH_CONSTANT(FLOAT, despill_balance)
PUSH_CONSTANT(float, despill_factor)
PUSH_CONSTANT(float, despill_balance)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, matte_tx)
SAMPLER(2, FLOAT_2D, key_tx)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_keying_screen)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, smoothness)
PUSH_CONSTANT(INT, number_of_markers)
PUSH_CONSTANT(float, smoothness)
PUSH_CONSTANT(int, number_of_markers)
STORAGE_BUF(0, READ, vec2, marker_positions[])
STORAGE_BUF(1, READ, vec4, marker_colors[])
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -17,7 +17,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_kuwahara_classic_convolution_constant_size)
ADDITIONAL_INFO(compositor_kuwahara_classic_convolution_shared)
PUSH_CONSTANT(INT, size)
PUSH_CONSTANT(int, size)
DEFINE("CONSTANT_SIZE")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -38,7 +38,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_kuwahara_classic_summed_area_table_constant_size)
ADDITIONAL_INFO(compositor_kuwahara_classic_summed_area_table_shared)
PUSH_CONSTANT(INT, size)
PUSH_CONSTANT(int, size)
DEFINE("CONSTANT_SIZE")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -60,8 +60,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_kuwahara_anisotropic_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, eccentricity)
PUSH_CONSTANT(FLOAT, sharpness)
PUSH_CONSTANT(float, eccentricity)
PUSH_CONSTANT(float, sharpness)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, structure_tensor_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
@@ -71,7 +71,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_kuwahara_anisotropic_constant_size)
ADDITIONAL_INFO(compositor_kuwahara_anisotropic_shared)
DEFINE("CONSTANT_SIZE")
PUSH_CONSTANT(FLOAT, size)
PUSH_CONSTANT(float, size)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -13,7 +13,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_map_uv_anisotropic)
ADDITIONAL_INFO(compositor_map_uv_shared)
PUSH_CONSTANT(FLOAT, gradient_attenuation_factor)
PUSH_CONSTANT(float, gradient_attenuation_factor)
COMPUTE_SOURCE("compositor_map_uv_anisotropic.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_morphological_distance_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, radius)
PUSH_CONSTANT(int, radius)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_morphological_distance.glsl")

View File

@@ -6,9 +6,9 @@
GPU_SHADER_CREATE_INFO(compositor_morphological_distance_threshold)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, radius)
PUSH_CONSTANT(INT, distance)
PUSH_CONSTANT(FLOAT, inset)
PUSH_CONSTANT(int, radius)
PUSH_CONSTANT(int, distance)
PUSH_CONSTANT(float, inset)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_morphological_distance_threshold.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_morphological_step_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, radius)
PUSH_CONSTANT(int, radius)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_morphological_step.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_motion_blur_max_velocity_dilate)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, shutter_speed)
PUSH_CONSTANT(float, shutter_speed)
SAMPLER(0, FLOAT_2D, input_tx)
STORAGE_BUF(0, READ_WRITE, uint, tile_indirection_buf[])
COMPUTE_SOURCE("compositor_motion_blur_max_velocity_dilate.glsl")
@@ -15,8 +15,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_motion_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, samples_count)
PUSH_CONSTANT(FLOAT, shutter_speed)
PUSH_CONSTANT(int, samples_count)
PUSH_CONSTANT(float, shutter_speed)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, depth_tx)
SAMPLER(2, FLOAT_2D, velocity_tx)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_normalize)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, minimum)
PUSH_CONSTANT(FLOAT, scale)
PUSH_CONSTANT(float, minimum)
PUSH_CONSTANT(float, scale)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_normalize.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_parallel_reduction_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, is_initial_reduction)
PUSH_CONSTANT(bool, is_initial_reduction)
SAMPLER(0, FLOAT_2D, input_tx)
COMPUTE_SOURCE("compositor_parallel_reduction.glsl")
GPU_SHADER_CREATE_END()
@@ -48,14 +48,14 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_sum_luminance)
ADDITIONAL_INFO(compositor_sum_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float3, luminance_coefficients)
DEFINE_VALUE("INITIALIZE(value)", "dot(value.rgb, luminance_coefficients)")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_sum_log_luminance)
ADDITIONAL_INFO(compositor_sum_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float3, luminance_coefficients)
DEFINE_VALUE("INITIALIZE(value)", "log(max(dot(value.rgb, luminance_coefficients), 1e-5f))")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -77,7 +77,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_sum_squared_difference_float_shared)
ADDITIONAL_INFO(compositor_parallel_reduction_shared)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
PUSH_CONSTANT(FLOAT, subtrahend)
PUSH_CONSTANT(float, subtrahend)
DEFINE_VALUE("TYPE", "float")
DEFINE_VALUE("IDENTITY", "0.0f")
DEFINE_VALUE("LOAD(value)", "value.x")
@@ -104,7 +104,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_sum_luminance_squared_difference)
ADDITIONAL_INFO(compositor_sum_squared_difference_float_shared)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float3, luminance_coefficients)
DEFINE_VALUE("INITIALIZE(value)", "pow(dot(value.rgb, luminance_coefficients) - subtrahend, 2.0f)")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -116,7 +116,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_maximum_luminance)
ADDITIONAL_INFO(compositor_parallel_reduction_shared)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float3, luminance_coefficients)
DEFINE_VALUE("TYPE", "float")
DEFINE_VALUE("IDENTITY", "FLT_MIN")
DEFINE_VALUE("INITIALIZE(value)", "dot(value.rgb, luminance_coefficients)")
@@ -150,8 +150,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_maximum_float_in_range)
ADDITIONAL_INFO(compositor_parallel_reduction_shared)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
PUSH_CONSTANT(FLOAT, lower_bound)
PUSH_CONSTANT(FLOAT, upper_bound)
PUSH_CONSTANT(float, lower_bound)
PUSH_CONSTANT(float, upper_bound)
DEFINE_VALUE("TYPE", "float")
DEFINE_VALUE("IDENTITY", "lower_bound")
DEFINE_VALUE("INITIALIZE(v)", "((v.x <= upper_bound) && (v.x >= lower_bound)) ? v.x : lower_bound")
@@ -167,7 +167,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_minimum_luminance)
ADDITIONAL_INFO(compositor_parallel_reduction_shared)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float3, luminance_coefficients)
DEFINE_VALUE("TYPE", "float")
DEFINE_VALUE("IDENTITY", "FLT_MAX")
DEFINE_VALUE("INITIALIZE(value)", "dot(value.rgb, luminance_coefficients)")
@@ -190,8 +190,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_minimum_float_in_range)
ADDITIONAL_INFO(compositor_parallel_reduction_shared)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
PUSH_CONSTANT(FLOAT, lower_bound)
PUSH_CONSTANT(FLOAT, upper_bound)
PUSH_CONSTANT(float, lower_bound)
PUSH_CONSTANT(float, upper_bound)
DEFINE_VALUE("TYPE", "float")
DEFINE_VALUE("IDENTITY", "upper_bound")
DEFINE_VALUE("INITIALIZE(v)", "((v.x <= upper_bound) && (v.x >= lower_bound)) ? v.x : upper_bound")
@@ -206,7 +206,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_max_velocity)
LOCAL_GROUP_SIZE(32, 32)
PUSH_CONSTANT(BOOL, is_initial_reduction)
PUSH_CONSTANT(bool, is_initial_reduction)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
DEFINE_VALUE("TYPE", "vec4")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_pixelate)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, pixel_size)
PUSH_CONSTANT(int, pixel_size)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_pixelate.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_plane_deform_mask)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(MAT4, homography_matrix)
PUSH_CONSTANT(float4x4, homography_matrix)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, mask_img)
COMPUTE_SOURCE("compositor_plane_deform_mask.glsl")
DO_STATIC_COMPILATION()
@@ -14,7 +14,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_plane_deform_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(MAT4, homography_matrix)
PUSH_CONSTANT(float4x4, homography_matrix)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, mask_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
@@ -42,7 +42,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_plane_deform_motion_blur_mask)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, number_of_motion_blur_samples)
PUSH_CONSTANT(int, number_of_motion_blur_samples)
UNIFORM_BUF(0, mat4, homography_matrices[64])
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, mask_img)
COMPUTE_SOURCE("compositor_plane_deform_motion_blur_mask.glsl")
@@ -51,7 +51,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_plane_deform_motion_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(INT, number_of_motion_blur_samples)
PUSH_CONSTANT(int, number_of_motion_blur_samples)
UNIFORM_BUF(0, mat4, homography_matrices[64])
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, mask_tx)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_projector_lens_distortion)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, dispersion)
PUSH_CONSTANT(float, dispersion)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_projector_lens_distortion.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_read_input_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(int2, lower_bound)
SAMPLER(0, FLOAT_2D, input_tx)
COMPUTE_SOURCE("compositor_read_input.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_realize_on_domain_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(MAT4, inverse_transformation)
PUSH_CONSTANT(float4x4, inverse_transformation)
SAMPLER(0, FLOAT_2D, input_tx)
COMPUTE_SOURCE("compositor_realize_on_domain.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_screen_lens_distortion_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(VEC3, chromatic_distortion)
PUSH_CONSTANT(FLOAT, scale)
PUSH_CONSTANT(float3, chromatic_distortion)
PUSH_CONSTANT(float, scale)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_screen_lens_distortion.glsl")

View File

@@ -12,9 +12,9 @@ DEFINE_VALUE("SMAA_RT_METRICS",
DEFINE_VALUE("SMAA_LUMA_WEIGHT", "vec4(luminance_coefficients, 0.0f)")
DEFINE_VALUE("SMAA_THRESHOLD", "smaa_threshold")
DEFINE_VALUE("SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR", "smaa_local_contrast_adaptation_factor")
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(FLOAT, smaa_threshold)
PUSH_CONSTANT(FLOAT, smaa_local_contrast_adaptation_factor)
PUSH_CONSTANT(float3, luminance_coefficients)
PUSH_CONSTANT(float, smaa_threshold)
PUSH_CONSTANT(float, smaa_local_contrast_adaptation_factor)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, edges_img)
COMPUTE_SOURCE("compositor_smaa_edge_detection.glsl")
@@ -27,7 +27,7 @@ DEFINE("SMAA_GLSL_3")
DEFINE_VALUE("SMAA_RT_METRICS",
"vec4(1.0f / vec2(textureSize(edges_tx, 0)), vec2(textureSize(edges_tx, 0)))")
DEFINE_VALUE("SMAA_CORNER_ROUNDING", "smaa_corner_rounding")
PUSH_CONSTANT(INT, smaa_corner_rounding)
PUSH_CONSTANT(int, smaa_corner_rounding)
SAMPLER(0, FLOAT_2D, edges_tx)
SAMPLER(1, FLOAT_2D, area_tx)
SAMPLER(2, FLOAT_2D, search_tx)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_split_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, split_ratio)
PUSH_CONSTANT(float, split_ratio)
SAMPLER(0, FLOAT_2D, first_image_tx)
SAMPLER(1, FLOAT_2D, second_image_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_sun_beams)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(VEC2, source)
PUSH_CONSTANT(INT, max_steps)
PUSH_CONSTANT(float2, source)
PUSH_CONSTANT(int, max_steps)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_sun_beams.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_symmetric_blur)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, extend_bounds)
PUSH_CONSTANT(bool, extend_bounds)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_symmetric_blur_variable_size)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, extend_bounds)
PUSH_CONSTANT(bool, extend_bounds)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
SAMPLER(2, FLOAT_2D, size_tx)

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_symmetric_separable_blur_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, extend_bounds)
PUSH_CONSTANT(bool, extend_bounds)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
COMPUTE_SOURCE("compositor_symmetric_separable_blur.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_symmetric_separable_blur_variable_size)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, is_vertical_pass)
PUSH_CONSTANT(bool, is_vertical_pass)
SAMPLER(0, FLOAT_2D, input_tx)
SAMPLER(1, FLOAT_2D, weights_tx)
SAMPLER(2, FLOAT_2D, radius_tx)

View File

@@ -6,12 +6,12 @@
GPU_SHADER_CREATE_INFO(compositor_tone_map_photoreceptor)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(VEC4, global_adaptation_level)
PUSH_CONSTANT(FLOAT, contrast)
PUSH_CONSTANT(FLOAT, intensity)
PUSH_CONSTANT(FLOAT, chromatic_adaptation)
PUSH_CONSTANT(FLOAT, light_adaptation)
PUSH_CONSTANT(VEC3, luminance_coefficients)
PUSH_CONSTANT(float4, global_adaptation_level)
PUSH_CONSTANT(float, contrast)
PUSH_CONSTANT(float, intensity)
PUSH_CONSTANT(float, chromatic_adaptation)
PUSH_CONSTANT(float, light_adaptation)
PUSH_CONSTANT(float3, luminance_coefficients)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_tone_map_photoreceptor.glsl")

View File

@@ -6,9 +6,9 @@
GPU_SHADER_CREATE_INFO(compositor_tone_map_simple)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(FLOAT, luminance_scale)
PUSH_CONSTANT(FLOAT, luminance_scale_blend_factor)
PUSH_CONSTANT(FLOAT, inverse_gamma)
PUSH_CONSTANT(float, luminance_scale)
PUSH_CONSTANT(float, luminance_scale_blend_factor)
PUSH_CONSTANT(float, inverse_gamma)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_tone_map_simple.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_translate_wrapped_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(VEC2, translation)
PUSH_CONSTANT(float2, translation)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_translate_wrapped.glsl")

View File

@@ -6,16 +6,16 @@
GPU_SHADER_CREATE_INFO(compositor_van_vliet_gaussian_blur)
LOCAL_GROUP_SIZE(64, 4)
PUSH_CONSTANT(VEC2, first_feedback_coefficients)
PUSH_CONSTANT(VEC2, first_causal_feedforward_coefficients)
PUSH_CONSTANT(VEC2, first_non_causal_feedforward_coefficients)
PUSH_CONSTANT(VEC2, second_feedback_coefficients)
PUSH_CONSTANT(VEC2, second_causal_feedforward_coefficients)
PUSH_CONSTANT(VEC2, second_non_causal_feedforward_coefficients)
PUSH_CONSTANT(FLOAT, first_causal_boundary_coefficient)
PUSH_CONSTANT(FLOAT, first_non_causal_boundary_coefficient)
PUSH_CONSTANT(FLOAT, second_causal_boundary_coefficient)
PUSH_CONSTANT(FLOAT, second_non_causal_boundary_coefficient)
PUSH_CONSTANT(float2, first_feedback_coefficients)
PUSH_CONSTANT(float2, first_causal_feedforward_coefficients)
PUSH_CONSTANT(float2, first_non_causal_feedforward_coefficients)
PUSH_CONSTANT(float2, second_feedback_coefficients)
PUSH_CONSTANT(float2, second_causal_feedforward_coefficients)
PUSH_CONSTANT(float2, second_non_causal_feedforward_coefficients)
PUSH_CONSTANT(float, first_causal_boundary_coefficient)
PUSH_CONSTANT(float, first_non_causal_boundary_coefficient)
PUSH_CONSTANT(float, second_causal_boundary_coefficient)
PUSH_CONSTANT(float, second_non_causal_boundary_coefficient)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, first_causal_output_img)
IMAGE(1, GPU_RGBA16F, WRITE, FLOAT_2D, first_non_causal_output_img)

View File

@@ -6,8 +6,8 @@
GPU_SHADER_CREATE_INFO(compositor_write_output_shared)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(IVEC2, lower_bound)
PUSH_CONSTANT(IVEC2, upper_bound)
PUSH_CONSTANT(int2, lower_bound)
PUSH_CONSTANT(int2, upper_bound)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("compositor_write_output.glsl")

View File

@@ -6,7 +6,7 @@
GPU_SHADER_CREATE_INFO(compositor_z_combine_simple_image)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, use_alpha)
PUSH_CONSTANT(bool, use_alpha)
SAMPLER(0, FLOAT_2D, first_tx)
SAMPLER(1, FLOAT_2D, first_z_tx)
SAMPLER(2, FLOAT_2D, second_tx)
@@ -36,7 +36,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(compositor_z_combine_from_mask_image)
LOCAL_GROUP_SIZE(16, 16)
PUSH_CONSTANT(BOOL, use_alpha)
PUSH_CONSTANT(bool, use_alpha)
SAMPLER(0, FLOAT_2D, first_tx)
SAMPLER(2, FLOAT_2D, second_tx)
SAMPLER(4, FLOAT_2D, mask_tx)

View File

@@ -20,11 +20,11 @@ DEFINE("HORIZON_OCCLUSION")
COMPUTE_SOURCE("eevee_ambient_occlusion_pass_comp.glsl")
LOCAL_GROUP_SIZE(AMBIENT_OCCLUSION_PASS_TILE_SIZE, AMBIENT_OCCLUSION_PASS_TILE_SIZE)
IMAGE(0, GPU_RGBA16F, READ, FLOAT_2D_ARRAY, in_normal_img)
PUSH_CONSTANT(INT, in_normal_img_layer_index)
PUSH_CONSTANT(int, in_normal_img_layer_index)
IMAGE(1, GPU_R16F, WRITE, FLOAT_2D_ARRAY, out_ao_img)
PUSH_CONSTANT(INT, out_ao_img_layer_index)
SPECIALIZATION_CONSTANT(INT, ao_slice_count, 2)
SPECIALIZATION_CONSTANT(INT, ao_step_count, 8)
PUSH_CONSTANT(int, out_ao_img_layer_index)
SPECIALIZATION_CONSTANT(int, ao_slice_count, 2)
SPECIALIZATION_CONSTANT(int, ao_step_count, 8)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_hiz_data)

View File

@@ -64,7 +64,7 @@ SAMPLER(RBUFS_UTILITY_TEX_SLOT, FLOAT_2D_ARRAY, utility_tx)
GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_clip_plane_iface, clip_interp)
SMOOTH(FLOAT, clip_distance)
SMOOTH(float, clip_distance)
GPU_SHADER_NAMED_INTERFACE_END(clip_interp)
GPU_SHADER_CREATE_INFO(eevee_clip_plane)

View File

@@ -50,9 +50,9 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_tile_classify)
FRAGMENT_SOURCE("eevee_deferred_tile_classify_frag.glsl")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_fullscreen)
SUBPASS_IN(1, UINT, UINT_2D_ARRAY, in_gbuffer_header, DEFERRED_GBUFFER_ROG_ID)
SUBPASS_IN(1, uint, UINT_2D_ARRAY, in_gbuffer_header, DEFERRED_GBUFFER_ROG_ID)
TYPEDEF_SOURCE("draw_shader_shared.hh")
PUSH_CONSTANT(INT, current_bit)
PUSH_CONSTANT(int, current_bit)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -60,7 +60,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_light)
FRAGMENT_SOURCE("eevee_deferred_light_frag.glsl")
/* Early fragment test is needed to avoid processing background fragments. */
EARLY_FRAGMENT_TEST(true)
FRAGMENT_OUT(0, VEC4, out_combined)
FRAGMENT_OUT(0, float4, out_combined)
/* Chaining to next pass. */
IMAGE_FREQ(2, DEFERRED_RADIANCE_FORMAT, WRITE, UINT_2D, direct_radiance_1_img, PASS)
IMAGE_FREQ(3, DEFERRED_RADIANCE_FORMAT, WRITE, UINT_2D, direct_radiance_2_img, PASS)
@@ -69,13 +69,13 @@ IMAGE_FREQ(4, DEFERRED_RADIANCE_FORMAT, WRITE, UINT_2D, direct_radiance_3_img, P
IMAGE_FREQ(5, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, indirect_radiance_1_img, PASS)
IMAGE_FREQ(6, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, indirect_radiance_2_img, PASS)
IMAGE_FREQ(7, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, indirect_radiance_3_img, PASS)
SPECIALIZATION_CONSTANT(BOOL, use_split_indirect, false)
SPECIALIZATION_CONSTANT(BOOL, use_lightprobe_eval, false)
SPECIALIZATION_CONSTANT(BOOL, use_transmission, false)
SPECIALIZATION_CONSTANT(INT, render_pass_shadow_id, -1)
SPECIALIZATION_CONSTANT(bool, use_split_indirect, false)
SPECIALIZATION_CONSTANT(bool, use_lightprobe_eval, false)
SPECIALIZATION_CONSTANT(bool, use_transmission, false)
SPECIALIZATION_CONSTANT(int, render_pass_shadow_id, -1)
DEFINE("SPECIALIZED_SHADOW_PARAMS")
SPECIALIZATION_CONSTANT(INT, shadow_ray_count, 1)
SPECIALIZATION_CONSTANT(INT, shadow_ray_step_count, 6)
SPECIALIZATION_CONSTANT(int, shadow_ray_count, 1)
SPECIALIZATION_CONSTANT(int, shadow_ray_step_count, 6)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_gbuffer_data)
ADDITIONAL_INFO(eevee_utility_texture)
@@ -119,7 +119,7 @@ SAMPLER(5, FLOAT_2D, indirect_radiance_1_tx)
SAMPLER(6, FLOAT_2D, indirect_radiance_2_tx)
SAMPLER(7, FLOAT_2D, indirect_radiance_3_tx)
IMAGE(5, GPU_RGBA16F, READ_WRITE, FLOAT_2D, radiance_feedback_img)
FRAGMENT_OUT(0, VEC4, out_combined)
FRAGMENT_OUT(0, float4, out_combined)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_gbuffer_data)
ADDITIONAL_INFO(eevee_render_pass_out)
@@ -127,11 +127,11 @@ ADDITIONAL_INFO(draw_fullscreen)
FRAGMENT_SOURCE("eevee_deferred_combine_frag.glsl")
/* NOTE: Both light IDs have a valid specialized assignment of '-1' so only when default is
* present will we instead dynamically look-up ID from the uniform buffer. */
SPECIALIZATION_CONSTANT(BOOL, render_pass_diffuse_light_enabled, true)
SPECIALIZATION_CONSTANT(BOOL, render_pass_specular_light_enabled, true)
SPECIALIZATION_CONSTANT(BOOL, render_pass_normal_enabled, true)
SPECIALIZATION_CONSTANT(BOOL, use_radiance_feedback, false)
SPECIALIZATION_CONSTANT(BOOL, use_split_radiance, false)
SPECIALIZATION_CONSTANT(bool, render_pass_diffuse_light_enabled, true)
SPECIALIZATION_CONSTANT(bool, render_pass_specular_light_enabled, true)
SPECIALIZATION_CONSTANT(bool, render_pass_normal_enabled, true)
SPECIALIZATION_CONSTANT(bool, use_radiance_feedback, false)
SPECIALIZATION_CONSTANT(bool, use_split_radiance, false)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -139,7 +139,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_capture_eval)
/* Early fragment test is needed to avoid processing fragments without correct GBuffer data. */
EARLY_FRAGMENT_TEST(true)
/* Inputs. */
FRAGMENT_OUT(0, VEC4, out_radiance)
FRAGMENT_OUT(0, float4, out_radiance)
DEFINE_VALUE("LIGHT_CLOSURE_EVAL_COUNT", "1")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_gbuffer_data)
@@ -160,7 +160,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_planar_eval)
/* Early fragment test is needed to avoid processing fragments without correct GBuffer data. */
EARLY_FRAGMENT_TEST(true)
/* Inputs. */
FRAGMENT_OUT(0, VEC4, out_radiance)
FRAGMENT_OUT(0, float4, out_radiance)
DEFINE("SPHERE_PROBE")
DEFINE_VALUE("LIGHT_CLOSURE_EVAL_COUNT", "1")
ADDITIONAL_INFO(eevee_shared)
@@ -188,9 +188,9 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_debug_gbuffer)
DO_STATIC_COMPILATION()
FRAGMENT_OUT_DUAL(0, VEC4, out_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_color_mul, SRC_1)
PUSH_CONSTANT(INT, debug_mode)
FRAGMENT_OUT_DUAL(0, float4, out_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_color_mul, SRC_1)
PUSH_CONSTANT(int, debug_mode)
FRAGMENT_SOURCE("eevee_debug_gbuffer_frag.glsl")
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_fullscreen)

View File

@@ -66,7 +66,7 @@ SAMPLER(1, FLOAT_2D, color_tx)
SAMPLER(2, FLOAT_2D, velocity_tx)
SAMPLER(3, FLOAT_2D, in_history_tx)
SAMPLER(4, DEPTH_2D, depth_tx)
PUSH_CONSTANT(BOOL, u_use_history)
PUSH_CONSTANT(bool, u_use_history)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, out_color_img)
IMAGE(1, GPU_R16F, WRITE, FLOAT_2D, out_coc_img)
IMAGE(2, GPU_RGBA16F, WRITE, FLOAT_2D, out_history_img)
@@ -130,8 +130,8 @@ ADDITIONAL_INFO(eevee_depth_of_field_tiles_common)
LOCAL_GROUP_SIZE(DOF_TILES_DILATE_GROUP_SIZE, DOF_TILES_DILATE_GROUP_SIZE)
IMAGE(2, GPU_R11F_G11F_B10F, WRITE, FLOAT_2D, out_tiles_fg_img)
IMAGE(3, GPU_R11F_G11F_B10F, WRITE, FLOAT_2D, out_tiles_bg_img)
PUSH_CONSTANT(INT, ring_count)
PUSH_CONSTANT(INT, ring_width_multiplier)
PUSH_CONSTANT(int, ring_count)
PUSH_CONSTANT(int, ring_width_multiplier)
COMPUTE_SOURCE("eevee_depth_of_field_tiles_dilate_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -236,20 +236,20 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_depth_of_field_scatter_flat_iface, interp_flat)
/** Colors, weights, and Circle of confusion radii for the 4 pixels to scatter. */
FLAT(VEC4, color_and_coc1)
FLAT(VEC4, color_and_coc2)
FLAT(VEC4, color_and_coc3)
FLAT(VEC4, color_and_coc4)
FLAT(float4, color_and_coc1)
FLAT(float4, color_and_coc2)
FLAT(float4, color_and_coc3)
FLAT(float4, color_and_coc4)
/** Scaling factor for the bokeh distance. */
FLAT(FLOAT, distance_scale)
FLAT(float, distance_scale)
GPU_SHADER_NAMED_INTERFACE_END(interp_flat)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_depth_of_field_scatter_noperspective_iface,
interp_noperspective)
/** Sprite pixel position with origin at sprite center. In pixels. */
NO_PERSPECTIVE(VEC2, rect_uv1)
NO_PERSPECTIVE(VEC2, rect_uv2)
NO_PERSPECTIVE(VEC2, rect_uv3)
NO_PERSPECTIVE(VEC2, rect_uv4)
NO_PERSPECTIVE(float2, rect_uv1)
NO_PERSPECTIVE(float2, rect_uv2)
NO_PERSPECTIVE(float2, rect_uv3)
NO_PERSPECTIVE(float2, rect_uv4)
GPU_SHADER_NAMED_INTERFACE_END(interp_noperspective)
GPU_SHADER_CREATE_INFO(eevee_depth_of_field_scatter)
@@ -260,8 +260,8 @@ SAMPLER(0, FLOAT_2D, occlusion_tx)
SAMPLER(1, FLOAT_2D, bokeh_lut_tx)
UNIFORM_BUF(6, DepthOfFieldData, dof_buf)
STORAGE_BUF(0, READ, ScatterRect, scatter_list_buf[])
FRAGMENT_OUT(0, VEC4, out_color)
PUSH_CONSTANT(BOOL, use_bokeh_lut)
FRAGMENT_OUT(0, float4, out_color)
PUSH_CONSTANT(bool, use_bokeh_lut)
VERTEX_OUT(eevee_depth_of_field_scatter_flat_iface)
VERTEX_OUT(eevee_depth_of_field_scatter_noperspective_iface)
VERTEX_SOURCE("eevee_depth_of_field_scatter_vert.glsl")
@@ -277,7 +277,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_depth_of_field_resolve)
DEFINE_VALUE("DOF_RESOLVE_PASS", "true")
LOCAL_GROUP_SIZE(DOF_RESOLVE_GROUP_SIZE, DOF_RESOLVE_GROUP_SIZE)
SPECIALIZATION_CONSTANT(BOOL, do_debug_color, false)
SPECIALIZATION_CONSTANT(bool, do_debug_color, false)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(eevee_depth_of_field_tiles_common)

View File

@@ -27,13 +27,13 @@ SAMPLER(5, FLOAT_2D, in_combined_tx)
SAMPLER(6, FLOAT_2D, cryptomatte_tx)
IMAGE(0, GPU_R32F, READ, FLOAT_2D_ARRAY, in_weight_img)
IMAGE(1, GPU_R32F, WRITE, FLOAT_2D_ARRAY, out_weight_img)
SPECIALIZATION_CONSTANT(UINT, enabled_categories, 0)
SPECIALIZATION_CONSTANT(INT, samples_len, 0)
SPECIALIZATION_CONSTANT(BOOL, use_reprojection, false)
SPECIALIZATION_CONSTANT(INT, scaling_factor, 1)
SPECIALIZATION_CONSTANT(INT, combined_id, 0)
SPECIALIZATION_CONSTANT(INT, display_id, -1)
SPECIALIZATION_CONSTANT(INT, normal_id, -1)
SPECIALIZATION_CONSTANT(uint, enabled_categories, 0)
SPECIALIZATION_CONSTANT(int, samples_len, 0)
SPECIALIZATION_CONSTANT(bool, use_reprojection, false)
SPECIALIZATION_CONSTANT(int, scaling_factor, 1)
SPECIALIZATION_CONSTANT(int, combined_id, 0)
SPECIALIZATION_CONSTANT(int, display_id, -1)
SPECIALIZATION_CONSTANT(int, normal_id, -1)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_global_ubo)
ADDITIONAL_INFO(eevee_velocity_camera)
@@ -53,7 +53,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_film_frag)
DO_STATIC_COMPILATION()
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_SOURCE("eevee_film_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(eevee_film)
@@ -70,8 +70,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_film_cryptomatte_post)
DO_STATIC_COMPILATION()
IMAGE(0, GPU_RGBA32F, READ_WRITE, FLOAT_2D_ARRAY, cryptomatte_img)
PUSH_CONSTANT(INT, cryptomatte_layer_len)
PUSH_CONSTANT(INT, cryptomatte_samples_per_layer)
PUSH_CONSTANT(int, cryptomatte_layer_len)
PUSH_CONSTANT(int, cryptomatte_samples_per_layer)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
COMPUTE_SOURCE("eevee_film_cryptomatte_post_comp.glsl")
ADDITIONAL_INFO(eevee_global_ubo)
@@ -86,7 +86,7 @@ IMAGE(5, GPU_RGBA16F, READ, FLOAT_2D_ARRAY, color_accum_img)
IMAGE(6, GPU_R16F, READ, FLOAT_2D_ARRAY, value_accum_img)
IMAGE(7, GPU_RGBA32F, READ, FLOAT_2D_ARRAY, cryptomatte_img)
DEPTH_WRITE(DepthWrite::ANY)
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_SOURCE("eevee_film_copy_frag.glsl")
DEFINE("FILM_COPY")
ADDITIONAL_INFO(draw_fullscreen)
@@ -96,7 +96,7 @@ GPU_SHADER_CREATE_END()
/* The combined pass is stored into its own 2D texture with a format of GPU_RGBA16F. */
GPU_SHADER_CREATE_INFO(eevee_film_pass_convert_combined)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(int2, offset)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("eevee_film_pass_convert_comp.glsl")
@@ -106,7 +106,7 @@ GPU_SHADER_CREATE_END()
/* The depth pass is stored into its own 2D texture with a format of GPU_R32F. */
GPU_SHADER_CREATE_INFO(eevee_film_pass_convert_depth)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(int2, offset)
SAMPLER(0, FLOAT_2D, input_tx)
IMAGE(0, GPU_R32F, WRITE, FLOAT_2D, output_img)
COMPUTE_SOURCE("eevee_film_pass_convert_comp.glsl")
@@ -116,7 +116,7 @@ GPU_SHADER_CREATE_END()
/* Value passes are stored in a slice of a 2D texture array with a format of GPU_R16F. */
GPU_SHADER_CREATE_INFO(eevee_film_pass_convert_value)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(int2, offset)
DEFINE("IS_ARRAY_INPUT")
SAMPLER(0, FLOAT_2D_ARRAY, input_tx)
IMAGE(0, GPU_R16F, WRITE, FLOAT_2D, output_img)
@@ -127,7 +127,7 @@ GPU_SHADER_CREATE_END()
/* Color passes are stored in a slice of a 2D texture array with a format of GPU_RGBA16F. */
GPU_SHADER_CREATE_INFO(eevee_film_pass_convert_color)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(int2, offset)
DEFINE("IS_ARRAY_INPUT")
SAMPLER(0, FLOAT_2D_ARRAY, input_tx)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, output_img)
@@ -138,7 +138,7 @@ GPU_SHADER_CREATE_END()
/* Cryptomatte passes are stored in a slice of a 2D texture array with a format of GPU_RGBA32F. */
GPU_SHADER_CREATE_INFO(eevee_film_pass_convert_cryptomatte)
LOCAL_GROUP_SIZE(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(int2, offset)
DEFINE("IS_ARRAY_INPUT")
SAMPLER(0, FLOAT_2D_ARRAY, input_tx)
IMAGE(0, GPU_RGBA32F, WRITE, FLOAT_2D, output_img)

View File

@@ -24,7 +24,7 @@ IMAGE(3, GPU_R32F, WRITE, FLOAT_2D, out_mip_3)
IMAGE(4, GPU_R32F, WRITE, FLOAT_2D, out_mip_4)
IMAGE(5, GPU_R32F, READ_WRITE, FLOAT_2D, out_mip_5)
IMAGE(6, GPU_R32F, WRITE, FLOAT_2D, out_mip_6)
SPECIALIZATION_CONSTANT(BOOL, update_mip_0, true)
SPECIALIZATION_CONSTANT(bool, update_mip_0, true)
COMPUTE_SOURCE("eevee_hiz_update_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -38,14 +38,14 @@ GPU_SHADER_CREATE_INFO(eevee_hiz_update_layer)
DO_STATIC_COMPILATION()
DEFINE("HIZ_LAYER")
SAMPLER(1, DEPTH_2D_ARRAY, depth_layered_tx)
PUSH_CONSTANT(INT, layer_id)
PUSH_CONSTANT(int, layer_id)
ADDITIONAL_INFO(eevee_hiz_update_base)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_hiz_debug)
DO_STATIC_COMPILATION()
FRAGMENT_OUT_DUAL(0, VEC4, out_debug_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_debug_color_mul, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, out_debug_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_debug_color_mul, SRC_1)
FRAGMENT_SOURCE("eevee_hiz_debug_frag.glsl")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_hiz_data)

View File

@@ -94,8 +94,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_light_culling_debug)
DO_STATIC_COMPILATION()
FRAGMENT_OUT_DUAL(0, VEC4, out_debug_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_debug_color_mul, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, out_debug_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_debug_color_mul, SRC_1)
FRAGMENT_SOURCE("eevee_light_culling_debug_frag.glsl")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)

View File

@@ -21,11 +21,11 @@
/* Sample cubemap and remap into an octahedral texture. */
GPU_SHADER_CREATE_INFO(eevee_lightprobe_sphere_remap)
LOCAL_GROUP_SIZE(SPHERE_PROBE_REMAP_GROUP_SIZE, SPHERE_PROBE_REMAP_GROUP_SIZE)
SPECIALIZATION_CONSTANT(BOOL, extract_sh, true)
SPECIALIZATION_CONSTANT(BOOL, extract_sun, true)
PUSH_CONSTANT(IVEC4, probe_coord_packed)
PUSH_CONSTANT(IVEC4, write_coord_packed)
PUSH_CONSTANT(IVEC4, world_coord_packed)
SPECIALIZATION_CONSTANT(bool, extract_sh, true)
SPECIALIZATION_CONSTANT(bool, extract_sun, true)
PUSH_CONSTANT(int4, probe_coord_packed)
PUSH_CONSTANT(int4, write_coord_packed)
PUSH_CONSTANT(int4, world_coord_packed)
SAMPLER(0, FLOAT_CUBE, cubemap_tx)
SAMPLER(1, FLOAT_2D_ARRAY, atlas_tx)
STORAGE_BUF(0, WRITE, SphereProbeHarmonic, out_sh[])
@@ -39,7 +39,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_lightprobe_sphere_irradiance)
LOCAL_GROUP_SIZE(SPHERE_PROBE_SH_GROUP_SIZE)
PUSH_CONSTANT(IVEC3, probe_remap_dispatch_size)
PUSH_CONSTANT(int3, probe_remap_dispatch_size)
STORAGE_BUF(0, READ, SphereProbeHarmonic, in_sh[])
STORAGE_BUF(1, WRITE, SphereProbeHarmonic, out_sh)
ADDITIONAL_INFO(eevee_shared)
@@ -49,7 +49,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_lightprobe_sphere_sunlight)
LOCAL_GROUP_SIZE(SPHERE_PROBE_SH_GROUP_SIZE)
PUSH_CONSTANT(IVEC3, probe_remap_dispatch_size)
PUSH_CONSTANT(int3, probe_remap_dispatch_size)
STORAGE_BUF(0, READ, SphereProbeSunLight, in_sun[])
STORAGE_BUF(1, WRITE, LightData, sunlight_buf)
ADDITIONAL_INFO(eevee_shared)
@@ -60,7 +60,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_lightprobe_sphere_select)
LOCAL_GROUP_SIZE(SPHERE_PROBE_SELECT_GROUP_SIZE)
STORAGE_BUF(0, READ_WRITE, SphereProbeData, lightprobe_sphere_buf[SPHERE_PROBE_MAX])
PUSH_CONSTANT(INT, lightprobe_sphere_count)
PUSH_CONSTANT(int, lightprobe_sphere_count)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_sampling_data)
ADDITIONAL_INFO(eevee_global_ubo)
@@ -72,10 +72,10 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_lightprobe_sphere_convolve)
LOCAL_GROUP_SIZE(SPHERE_PROBE_GROUP_SIZE, SPHERE_PROBE_GROUP_SIZE)
ADDITIONAL_INFO(eevee_shared)
PUSH_CONSTANT(IVEC4, probe_coord_packed)
PUSH_CONSTANT(IVEC4, write_coord_packed)
PUSH_CONSTANT(IVEC4, read_coord_packed)
PUSH_CONSTANT(INT, read_lod)
PUSH_CONSTANT(int4, probe_coord_packed)
PUSH_CONSTANT(int4, write_coord_packed)
PUSH_CONSTANT(int4, read_coord_packed)
PUSH_CONSTANT(int, read_lod)
SAMPLER(0, FLOAT_CUBE, cubemap_tx)
SAMPLER(1, FLOAT_2D_ARRAY, in_atlas_mip_tx)
IMAGE(1, GPU_RGBA16F, WRITE, FLOAT_2D_ARRAY, out_atlas_mip_img)
@@ -84,9 +84,9 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(eevee_display_lightprobe_sphere_iface)
SMOOTH(VEC3, P)
SMOOTH(VEC2, lP)
FLAT(INT, probe_index)
SMOOTH(float3, P)
SMOOTH(float2, lP)
FLAT(int, probe_index)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_display_lightprobe_sphere)
@@ -97,17 +97,17 @@ STORAGE_BUF(0, READ, SphereProbeDisplayData, display_data_buf[])
VERTEX_SOURCE("eevee_display_lightprobe_sphere_vert.glsl")
VERTEX_OUT(eevee_display_lightprobe_sphere_iface)
FRAGMENT_SOURCE("eevee_display_lightprobe_sphere_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(eevee_display_lightprobe_planar_iface)
FLAT(VEC3, probe_normal)
FLAT(INT, probe_index)
FLAT(float3, probe_normal)
FLAT(int, probe_index)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_display_lightprobe_planar)
PUSH_CONSTANT(IVEC4, world_coord_packed)
PUSH_CONSTANT(int4, world_coord_packed)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(eevee_lightprobe_planar_data)
@@ -116,7 +116,7 @@ STORAGE_BUF(0, READ, PlanarProbeDisplayData, display_data_buf[])
VERTEX_SOURCE("eevee_display_lightprobe_planar_vert.glsl")
VERTEX_OUT(eevee_display_lightprobe_planar_iface)
FRAGMENT_SOURCE("eevee_display_lightprobe_planar_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -22,8 +22,8 @@
* \{ */
GPU_SHADER_INTERFACE_INFO(eevee_debug_surfel_iface)
SMOOTH(VEC3, P)
FLAT(INT, surfel_index)
SMOOTH(float3, P)
FLAT(int, surfel_index)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_debug_surfels)
@@ -32,34 +32,34 @@ ADDITIONAL_INFO(draw_view)
VERTEX_SOURCE("eevee_debug_surfels_vert.glsl")
VERTEX_OUT(eevee_debug_surfel_iface)
FRAGMENT_SOURCE("eevee_debug_surfels_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
STORAGE_BUF(0, READ, Surfel, surfels_buf[])
PUSH_CONSTANT(FLOAT, debug_surfel_radius)
PUSH_CONSTANT(INT, debug_mode)
PUSH_CONSTANT(float, debug_surfel_radius)
PUSH_CONSTANT(int, debug_mode)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(eevee_debug_irradiance_grid_iface)
SMOOTH(VEC4, interp_color)
SMOOTH(float4, interp_color)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_debug_irradiance_grid)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
VERTEX_OUT(eevee_debug_irradiance_grid_iface)
SAMPLER(0, FLOAT_3D, debug_data_tx)
PUSH_CONSTANT(MAT4, grid_mat)
PUSH_CONSTANT(INT, debug_mode)
PUSH_CONSTANT(FLOAT, debug_value)
PUSH_CONSTANT(float4x4, grid_mat)
PUSH_CONSTANT(int, debug_mode)
PUSH_CONSTANT(float, debug_value)
VERTEX_SOURCE("eevee_debug_irradiance_grid_vert.glsl")
FRAGMENT_SOURCE("eevee_debug_irradiance_grid_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(eevee_display_lightprobe_volume_iface)
SMOOTH(VEC2, lP)
FLAT(IVEC3, cell)
SMOOTH(float2, lP)
FLAT(int3, cell)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_display_lightprobe_volume)
@@ -68,12 +68,12 @@ ADDITIONAL_INFO(draw_view)
VERTEX_SOURCE("eevee_display_lightprobe_volume_vert.glsl")
VERTEX_OUT(eevee_display_lightprobe_volume_iface)
FRAGMENT_SOURCE("eevee_display_lightprobe_volume_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
PUSH_CONSTANT(FLOAT, sphere_radius)
PUSH_CONSTANT(IVEC3, grid_resolution)
PUSH_CONSTANT(MAT4, grid_to_world)
PUSH_CONSTANT(MAT4, world_to_grid)
PUSH_CONSTANT(BOOL, display_validity)
FRAGMENT_OUT(0, float4, out_color)
PUSH_CONSTANT(float, sphere_radius)
PUSH_CONSTANT(int3, grid_resolution)
PUSH_CONSTANT(float4x4, grid_to_world)
PUSH_CONSTANT(float4x4, world_to_grid)
PUSH_CONSTANT(bool, display_validity)
SAMPLER(0, FLOAT_3D, irradiance_a_tx)
SAMPLER(1, FLOAT_3D, irradiance_b_tx)
SAMPLER(2, FLOAT_3D, irradiance_c_tx)
@@ -143,8 +143,8 @@ ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_surfel_common)
ADDITIONAL_INFO(eevee_lightprobe_sphere_data)
ADDITIONAL_INFO(draw_view)
PUSH_CONSTANT(INT, radiance_src)
PUSH_CONSTANT(INT, radiance_dst)
PUSH_CONSTANT(int, radiance_src)
PUSH_CONSTANT(int, radiance_dst)
COMPUTE_SOURCE("eevee_surfel_ray_comp.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -154,7 +154,7 @@ DO_STATIC_COMPILATION()
LOCAL_GROUP_SIZE(IRRADIANCE_BOUNDS_GROUP_SIZE)
STORAGE_BUF(0, READ_WRITE, CaptureInfoData, capture_info_buf)
STORAGE_BUF(1, READ, ObjectBounds, bounds_buf[])
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(int, resource_len)
TYPEDEF_SOURCE("draw_shader_shared.hh")
ADDITIONAL_INFO(eevee_shared)
COMPUTE_SOURCE("eevee_lightprobe_volume_bounds_comp.glsl")
@@ -168,7 +168,7 @@ ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_surfel_common)
ADDITIONAL_INFO(eevee_lightprobe_sphere_data)
ADDITIONAL_INFO(draw_view)
PUSH_CONSTANT(INT, radiance_src)
PUSH_CONSTANT(int, radiance_src)
STORAGE_BUF(0, READ, int, list_start_buf[])
STORAGE_BUF(6, READ, SurfelListInfoData, list_info_buf)
IMAGE(0, GPU_RGBA32F, READ_WRITE, FLOAT_3D, irradiance_L0_img)
@@ -209,7 +209,7 @@ LOCAL_GROUP_SIZE(IRRADIANCE_GRID_BRICK_SIZE,
DEFINE("IRRADIANCE_GRID_UPLOAD")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_global_ubo)
PUSH_CONSTANT(INT, grid_index)
PUSH_CONSTANT(int, grid_index)
STORAGE_BUF(0, READ, uint, bricks_infos_buf[])
STORAGE_BUF(1, READ, SphereProbeHarmonic, harmonic_buf)
UNIFORM_BUF(0, VolumeProbeData, grids_infos_buf[IRRADIANCE_GRID_MAX])
@@ -225,13 +225,13 @@ LOCAL_GROUP_SIZE(IRRADIANCE_GRID_BRICK_SIZE,
DEFINE("IRRADIANCE_GRID_UPLOAD")
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(eevee_global_ubo)
PUSH_CONSTANT(MAT4, grid_local_to_world)
PUSH_CONSTANT(INT, grid_index)
PUSH_CONSTANT(INT, grid_start_index)
PUSH_CONSTANT(FLOAT, validity_threshold)
PUSH_CONSTANT(FLOAT, dilation_threshold)
PUSH_CONSTANT(FLOAT, dilation_radius)
PUSH_CONSTANT(FLOAT, grid_intensity_factor)
PUSH_CONSTANT(float4x4, grid_local_to_world)
PUSH_CONSTANT(int, grid_index)
PUSH_CONSTANT(int, grid_start_index)
PUSH_CONSTANT(float, validity_threshold)
PUSH_CONSTANT(float, dilation_threshold)
PUSH_CONSTANT(float, dilation_radius)
PUSH_CONSTANT(float, grid_intensity_factor)
UNIFORM_BUF(0, VolumeProbeData, grids_infos_buf[IRRADIANCE_GRID_MAX])
STORAGE_BUF(0, READ, uint, bricks_infos_buf[])
SAMPLER(0, FLOAT_3D, irradiance_a_tx)

View File

@@ -15,19 +15,19 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(eevee_lookdev_display_iface)
SMOOTH(VEC2, uv_coord)
FLAT(UINT, sphere_id)
SMOOTH(float2, uv_coord)
FLAT(uint, sphere_id)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(eevee_lookdev_display)
VERTEX_SOURCE("eevee_lookdev_display_vert.glsl")
VERTEX_OUT(eevee_lookdev_display_iface)
PUSH_CONSTANT(VEC2, viewportSize)
PUSH_CONSTANT(VEC2, invertedViewportSize)
PUSH_CONSTANT(IVEC2, anchor)
PUSH_CONSTANT(float2, viewportSize)
PUSH_CONSTANT(float2, invertedViewportSize)
PUSH_CONSTANT(int2, anchor)
SAMPLER(0, FLOAT_2D, metallic_tx)
SAMPLER(1, FLOAT_2D, diffuse_tx)
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_SOURCE("eevee_lookdev_display_frag.glsl")
DEPTH_WRITE(DepthWrite::ANY)
DO_STATIC_COMPILATION()

View File

@@ -14,8 +14,8 @@
GPU_SHADER_CREATE_INFO(eevee_lut)
LOCAL_GROUP_SIZE(LUT_WORKGROUP_SIZE, LUT_WORKGROUP_SIZE, 1)
PUSH_CONSTANT(INT, table_type)
PUSH_CONSTANT(IVEC3, table_extent)
PUSH_CONSTANT(int, table_type)
PUSH_CONSTANT(int3, table_extent)
IMAGE(0, GPU_RGBA32F, READ_WRITE, FLOAT_3D, table_img)
ADDITIONAL_INFO(eevee_shared)
COMPUTE_SOURCE("eevee_lut_comp.glsl")

View File

@@ -37,16 +37,16 @@
/* Common interface */
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_iface, interp)
/* World Position. */
SMOOTH(VEC3, P)
SMOOTH(float3, P)
/* World Normal. */
SMOOTH(VEC3, N)
SMOOTH(float3, N)
GPU_SHADER_NAMED_INTERFACE_END(interp)
GPU_SHADER_CREATE_INFO(eevee_geom_mesh)
ADDITIONAL_INFO(eevee_shared)
DEFINE("MAT_GEOM_MESH")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
VERTEX_SOURCE("eevee_geom_mesh_vert.glsl")
VERTEX_OUT(eevee_surf_iface)
ADDITIONAL_INFO(draw_modelmat)
@@ -56,11 +56,11 @@ ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_pointcloud_iface, pointcloud_interp)
SMOOTH(FLOAT, radius)
SMOOTH(VEC3, position)
SMOOTH(float, radius)
SMOOTH(float3, position)
GPU_SHADER_NAMED_INTERFACE_END(pointcloud_interp)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_pointcloud_flat_iface, pointcloud_interp_flat)
FLAT(INT, id)
FLAT(int, id)
GPU_SHADER_NAMED_INTERFACE_END(pointcloud_interp_flat)
GPU_SHADER_CREATE_INFO(eevee_geom_pointcloud)
@@ -80,7 +80,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_geom_volume)
ADDITIONAL_INFO(eevee_shared)
DEFINE("MAT_GEOM_VOLUME")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(eevee_surf_iface)
VERTEX_SOURCE("eevee_geom_volume_vert.glsl")
ADDITIONAL_INFO(draw_modelmat)
@@ -103,15 +103,15 @@ ADDITIONAL_INFO(draw_resource_id)
GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_curve_iface, curve_interp)
SMOOTH(VEC2, barycentric_coords)
SMOOTH(VEC3, tangent)
SMOOTH(VEC3, binormal)
SMOOTH(FLOAT, time)
SMOOTH(FLOAT, time_width)
SMOOTH(FLOAT, thickness)
SMOOTH(float2, barycentric_coords)
SMOOTH(float3, tangent)
SMOOTH(float3, binormal)
SMOOTH(float, time)
SMOOTH(float, time_width)
SMOOTH(float, thickness)
GPU_SHADER_NAMED_INTERFACE_END(curve_interp)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_curve_flat_iface, curve_interp_flat)
FLAT(INT, strand_id)
FLAT(int, strand_id)
GPU_SHADER_NAMED_INTERFACE_END(curve_interp_flat)
GPU_SHADER_CREATE_INFO(eevee_geom_curves)
@@ -158,11 +158,11 @@ DEFINE("GBUFFER_WRITE")
/* NOTE: This removes the possibility of using gl_FragDepth. */
EARLY_FRAGMENT_TEST(true)
/* Direct output. (Emissive, Holdout) */
FRAGMENT_OUT(0, VEC4, out_radiance)
FRAGMENT_OUT_ROG(1, UINT, out_gbuf_header, DEFERRED_GBUFFER_ROG_ID)
FRAGMENT_OUT(2, VEC2, out_gbuf_normal)
FRAGMENT_OUT(3, VEC4, out_gbuf_closure1)
FRAGMENT_OUT(4, VEC4, out_gbuf_closure2)
FRAGMENT_OUT(0, float4, out_radiance)
FRAGMENT_OUT_ROG(1, uint, out_gbuf_header, DEFERRED_GBUFFER_ROG_ID)
FRAGMENT_OUT(2, float2, out_gbuf_normal)
FRAGMENT_OUT(3, float4, out_gbuf_closure1)
FRAGMENT_OUT(4, float4, out_gbuf_closure2)
/* Everything is stored inside a two layered target, one for each format. This is to fit the
* limitation of the number of images we can bind on a single shader. */
IMAGE_FREQ(GBUF_CLOSURE_SLOT, GPU_RGB10_A2, WRITE, FLOAT_2D_ARRAY, out_gbuf_closure_img, PASS)
@@ -196,8 +196,8 @@ DEFINE("MAT_FORWARD")
/* Early fragment test is needed for render passes support for forward surfaces. */
/* NOTE: This removes the possibility of using gl_FragDepth. */
EARLY_FRAGMENT_TEST(true)
FRAGMENT_OUT_DUAL(0, VEC4, out_radiance, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_transmittance, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, out_radiance, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_transmittance, SRC_1)
FRAGMENT_SOURCE("eevee_surf_forward_frag.glsl")
/* Optionally added depending on the material. */
// ADDITIONAL_INFO(eevee_render_pass_out)
@@ -216,7 +216,7 @@ GPU_SHADER_CREATE_INFO(eevee_surf_capture)
DEFINE("MAT_CAPTURE")
STORAGE_BUF(SURFEL_BUF_SLOT, WRITE, Surfel, surfel_buf[])
STORAGE_BUF(CAPTURE_BUF_SLOT, READ_WRITE, CaptureInfoData, capture_info_buf)
PUSH_CONSTANT(BOOL, is_double_sided)
PUSH_CONSTANT(bool, is_double_sided)
FRAGMENT_SOURCE("eevee_surf_capture_frag.glsl")
ADDITIONAL_INFO(eevee_global_ubo)
ADDITIONAL_INFO(eevee_utility_texture)
@@ -231,11 +231,11 @@ ADDITIONAL_INFO(eevee_utility_texture)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_surf_world)
PUSH_CONSTANT(FLOAT, world_opacity_fade)
PUSH_CONSTANT(FLOAT, world_background_blur)
PUSH_CONSTANT(IVEC4, world_coord_packed)
PUSH_CONSTANT(float, world_opacity_fade)
PUSH_CONSTANT(float, world_background_blur)
PUSH_CONSTANT(int4, world_coord_packed)
EARLY_FRAGMENT_TEST(true)
FRAGMENT_OUT(0, VEC4, out_background)
FRAGMENT_OUT(0, float4, out_background)
FRAGMENT_SOURCE("eevee_surf_world_frag.glsl")
ADDITIONAL_INFO(eevee_global_ubo)
ADDITIONAL_INFO(eevee_lightprobe_sphere_data)
@@ -248,7 +248,7 @@ ADDITIONAL_INFO(eevee_utility_texture)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_renderpass_clear)
FRAGMENT_OUT(0, VEC4, out_background)
FRAGMENT_OUT(0, float4, out_background)
FRAGMENT_SOURCE("eevee_renderpass_clear_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(eevee_global_ubo)
@@ -259,12 +259,12 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_shadow_atomic_iface, shadow_iface)
FLAT(INT, shadow_view_id)
FLAT(int, shadow_view_id)
GPU_SHADER_NAMED_INTERFACE_END(shadow_iface)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_surf_shadow_clipping_iface, shadow_clip)
SMOOTH(VEC3, position)
SMOOTH(VEC3, vector)
SMOOTH(float3, position)
SMOOTH(float3, vector)
GPU_SHADER_NAMED_INTERFACE_END(shadow_clip)
GPU_SHADER_CREATE_INFO(eevee_surf_shadow)
@@ -296,7 +296,7 @@ BUILTINS(BuiltinBits::LAYER)
* ordering after slope bias. */
DEPTH_WRITE(DepthWrite::GREATER)
/* F32 color attachment for on-tile depth accumulation without atomics. */
FRAGMENT_OUT_ROG(0, FLOAT, out_depth, SHADOW_ROG_ID)
FRAGMENT_OUT_ROG(0, float, out_depth, SHADOW_ROG_ID)
GPU_SHADER_CREATE_END()
#undef image_out
@@ -334,7 +334,7 @@ DEFINE("MAT_OCCUPANCY")
/* All fragments need to be invoked even if we write to the depth buffer. */
EARLY_FRAGMENT_TEST(false)
BUILTINS(BuiltinBits::TEXTURE_ATOMIC)
PUSH_CONSTANT(BOOL, use_fast_method)
PUSH_CONSTANT(bool, use_fast_method)
IMAGE(VOLUME_HIT_DEPTH_SLOT, GPU_R32F, WRITE, FLOAT_3D, hit_depth_img)
IMAGE(VOLUME_HIT_COUNT_SLOT, GPU_R32UI, READ_WRITE, UINT_2D_ATOMIC, hit_count_img)
IMAGE(VOLUME_OCCUPANCY_SLOT, GPU_R32UI, READ_WRITE, UINT_3D_ATOMIC, occupancy_img)

View File

@@ -28,7 +28,7 @@ GPU_SHADER_CREATE_INFO(eevee_shadow_clipmap_clear)
DO_STATIC_COMPILATION()
LOCAL_GROUP_SIZE(SHADOW_CLIPMAP_GROUP_SIZE)
STORAGE_BUF(0, WRITE, ShadowTileMapClip, tilemaps_clip_buf[])
PUSH_CONSTANT(INT, tilemaps_clip_buf_len)
PUSH_CONSTANT(int, tilemaps_clip_buf_len)
ADDITIONAL_INFO(eevee_shared)
COMPUTE_SOURCE("eevee_shadow_clipmap_clear_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -42,7 +42,7 @@ STORAGE_BUF(4, READ, uint, casters_id_buf[])
STORAGE_BUF(5, READ_WRITE, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(6, READ, ObjectBounds, bounds_buf[])
STORAGE_BUF(7, READ_WRITE, ShadowTileMapClip, tilemaps_clip_buf[])
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(int, resource_len)
TYPEDEF_SOURCE("draw_shader_shared.hh")
ADDITIONAL_INFO(eevee_shared)
COMPUTE_SOURCE("eevee_shadow_tilemap_bounds_comp.glsl")
@@ -77,7 +77,7 @@ DO_STATIC_COMPILATION()
LOCAL_GROUP_SIZE(SHADOW_DEPTH_SCAN_GROUP_SIZE, SHADOW_DEPTH_SCAN_GROUP_SIZE)
STORAGE_BUF(5, READ_WRITE, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(6, READ_WRITE, uint, tiles_buf[])
PUSH_CONSTANT(IVEC2, input_depth_extent)
PUSH_CONSTANT(int2, input_depth_extent)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_view_culling)
@@ -91,7 +91,7 @@ DO_STATIC_COMPILATION()
LOCAL_GROUP_SIZE(SURFEL_GROUP_SIZE)
STORAGE_BUF(6, READ_WRITE, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(7, READ_WRITE, uint, tiles_buf[])
PUSH_CONSTANT(INT, directional_level)
PUSH_CONSTANT(int, directional_level)
ADDITIONAL_INFO(eevee_shared)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_view_culling)
@@ -102,22 +102,22 @@ COMPUTE_SOURCE("eevee_shadow_tag_usage_surfels_comp.glsl")
GPU_SHADER_CREATE_END()
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_shadow_tag_transparent_iface, interp)
SMOOTH(VEC3, P)
SMOOTH(VEC3, vP)
SMOOTH(float3, P)
SMOOTH(float3, vP)
GPU_SHADER_NAMED_INTERFACE_END(interp)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_shadow_tag_transparent_flat_iface, interp_flat)
FLAT(VEC3, ls_aabb_min)
FLAT(VEC3, ls_aabb_max)
FLAT(float3, ls_aabb_min)
FLAT(float3, ls_aabb_max)
GPU_SHADER_NAMED_INTERFACE_END(interp_flat)
GPU_SHADER_CREATE_INFO(eevee_shadow_tag_usage_transparent)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
STORAGE_BUF(4, READ, ObjectBounds, bounds_buf[])
STORAGE_BUF(5, READ_WRITE, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(6, READ_WRITE, uint, tiles_buf[])
PUSH_CONSTANT(IVEC2, fb_resolution)
PUSH_CONSTANT(INT, fb_lod)
PUSH_CONSTANT(int2, fb_resolution)
PUSH_CONSTANT(int, fb_lod)
VERTEX_OUT(eevee_shadow_tag_transparent_iface)
VERTEX_OUT(eevee_shadow_tag_transparent_flat_iface)
ADDITIONAL_INFO(eevee_shared)
@@ -149,7 +149,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(eevee_shadow_page_mask)
DO_STATIC_COMPILATION()
LOCAL_GROUP_SIZE(SHADOW_TILEMAP_RES, SHADOW_TILEMAP_RES)
PUSH_CONSTANT(INT, max_view_per_tilemap)
PUSH_CONSTANT(int, max_view_per_tilemap)
STORAGE_BUF(0, READ_WRITE, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(1, READ_WRITE, uint, tiles_buf[])
ADDITIONAL_INFO(eevee_shared)
@@ -262,27 +262,23 @@ BUILTINS(BuiltinBits::VIEWPORT_INDEX | BuiltinBits::LAYER)
STORAGE_BUF(8, READ, uint, src_coord_buf[SHADOW_RENDER_MAP_SIZE])
VERTEX_SOURCE("eevee_shadow_page_tile_vert.glsl")
FRAGMENT_SOURCE("eevee_shadow_page_tile_frag.glsl")
FRAGMENT_OUT_ROG(0, FLOAT, out_tile_depth, SHADOW_ROG_ID)
FRAGMENT_OUT_ROG(0, float, out_tile_depth, SHADOW_ROG_ID)
GPU_SHADER_CREATE_END()
#ifdef APPLE
/* Metal supports USHORT which saves a bit of performance here. */
# define PAGE_Z_TYPE USHORT
#else
# define PAGE_Z_TYPE UINT
#endif
/* Interface for passing precalculated values in accumulation vertex to frag. */
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_shadow_page_tile_store_noperspective_iface,
interp_noperspective)
NO_PERSPECTIVE(VEC2, out_texel_xy)
NO_PERSPECTIVE(float2, out_texel_xy)
GPU_SHADER_NAMED_INTERFACE_END(interp_noperspective)
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_shadow_page_tile_store_flat_iface, interp_flat)
FLAT(PAGE_Z_TYPE, out_page_z)
#ifdef APPLE
/* Metal supports ushort which saves a bit of performance here. */
FLAT(ushort, out_page_z)
#else
FLAT(uint, out_page_z)
#endif
GPU_SHADER_NAMED_INTERFACE_END(interp_flat)
#undef PAGE_Z_TYPE
/* 2nd tile pass to store shadow depths in atlas. */
GPU_SHADER_CREATE_INFO(eevee_shadow_page_tile_store)
DO_STATIC_COMPILATION()
@@ -291,7 +287,7 @@ ADDITIONAL_INFO(eevee_shared)
BUILTINS(BuiltinBits::VIEWPORT_INDEX | BuiltinBits::LAYER)
STORAGE_BUF(7, READ, uint, dst_coord_buf[SHADOW_RENDER_MAP_SIZE])
STORAGE_BUF(8, READ, uint, src_coord_buf[SHADOW_RENDER_MAP_SIZE])
SUBPASS_IN(0, FLOAT, FLOAT_2D_ARRAY, in_tile_depth, SHADOW_ROG_ID)
SUBPASS_IN(0, float, FLOAT_2D_ARRAY, in_tile_depth, SHADOW_ROG_ID)
IMAGE(SHADOW_ATLAS_IMG_SLOT, GPU_R32UI, READ_WRITE, UINT_2D_ARRAY, shadow_atlas_img)
VERTEX_OUT(eevee_shadow_page_tile_store_noperspective_iface)
VERTEX_OUT(eevee_shadow_page_tile_store_flat_iface)
@@ -309,9 +305,9 @@ DEFINE_VALUE("DRW_VIEW_LEN", STRINGIFY(DRW_VIEW_MAX))
STORAGE_BUF(0, READ, ObjectBounds, bounds_buf[])
STORAGE_BUF(1, READ_WRITE, uint, visibility_buf[])
STORAGE_BUF(2, READ, ShadowRenderView, render_view_buf[SHADOW_VIEW_MAX])
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(INT, view_len)
PUSH_CONSTANT(INT, visibility_word_per_draw)
PUSH_CONSTANT(int, resource_len)
PUSH_CONSTANT(int, view_len)
PUSH_CONSTANT(int, visibility_word_per_draw)
COMPUTE_SOURCE("eevee_shadow_visibility_comp.glsl")
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_view_culling)
@@ -329,10 +325,10 @@ DO_STATIC_COMPILATION()
ADDITIONAL_INFO(eevee_shared)
STORAGE_BUF(5, READ, ShadowTileMapData, tilemaps_buf[])
STORAGE_BUF(6, READ, uint, tiles_buf[])
FRAGMENT_OUT_DUAL(0, VEC4, out_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_color_mul, SRC_1)
PUSH_CONSTANT(INT, debug_mode)
PUSH_CONSTANT(INT, debug_tilemap_index)
FRAGMENT_OUT_DUAL(0, float4, out_color_add, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_color_mul, SRC_1)
PUSH_CONSTANT(int, debug_mode)
PUSH_CONSTANT(int, debug_tilemap_index)
DEPTH_WRITE(DepthWrite::ANY)
FRAGMENT_SOURCE("eevee_shadow_debug_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)

View File

@@ -51,8 +51,8 @@ STORAGE_BUF(0, READ_WRITE, DispatchCommand, raytrace_tracing_dispatch_buf)
STORAGE_BUF(1, READ_WRITE, DispatchCommand, raytrace_denoise_dispatch_buf)
STORAGE_BUF(4, WRITE, uint, raytrace_tracing_tiles_buf[])
STORAGE_BUF(5, WRITE, uint, raytrace_denoise_tiles_buf[])
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(INT, resolution_scale, 2)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
SPECIALIZATION_CONSTANT(int, resolution_scale, 2)
COMPUTE_SOURCE("eevee_ray_tile_compact_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -67,7 +67,7 @@ ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(eevee_utility_texture)
IMAGE(0, GPU_RGBA16F, WRITE, FLOAT_2D, out_ray_data_img)
STORAGE_BUF(4, READ, uint, tiles_coord_buf[])
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_generate_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -85,7 +85,7 @@ IMAGE(1, RAYTRACE_RAYTIME_FORMAT, WRITE, FLOAT_2D, ray_time_img)
IMAGE(2, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, ray_radiance_img)
SAMPLER(1, DEPTH_2D, depth_tx)
STORAGE_BUF(5, READ, uint, tiles_coord_buf[])
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_trace_fallback_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -105,7 +105,7 @@ IMAGE(1, RAYTRACE_RAYTIME_FORMAT, WRITE, FLOAT_2D, ray_time_img)
IMAGE(2, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, ray_radiance_img)
SAMPLER(2, DEPTH_2D, depth_tx)
STORAGE_BUF(5, READ, uint, tiles_coord_buf[])
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_trace_planar_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -131,8 +131,8 @@ STORAGE_BUF(5, READ, uint, tiles_coord_buf[])
COMPUTE_SOURCE("eevee_ray_trace_screen_comp.glsl")
/* Metal: Provide compiler with hint to tune per-thread resource allocation. */
MTL_MAX_TOTAL_THREADS_PER_THREADGROUP(400)
SPECIALIZATION_CONSTANT(BOOL, trace_refraction, true)
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(bool, trace_refraction, true)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_trace_screen_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -156,9 +156,9 @@ IMAGE(6, RAYTRACE_TILEMASK_FORMAT, READ, UINT_2D_ARRAY, tile_mask_img)
STORAGE_BUF(4, READ, uint, tiles_coord_buf[])
/* Metal: Provide compiler with hint to tune per-thread resource allocation. */
MTL_MAX_TOTAL_THREADS_PER_THREADGROUP(316)
SPECIALIZATION_CONSTANT(INT, raytrace_resolution_scale, 2)
SPECIALIZATION_CONSTANT(BOOL, skip_denoise, false)
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, raytrace_resolution_scale, 2)
SPECIALIZATION_CONSTANT(bool, skip_denoise, false)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_denoise_spatial_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -181,7 +181,7 @@ STORAGE_BUF(4, READ, uint, tiles_coord_buf[])
COMPUTE_SOURCE("eevee_ray_denoise_temporal_comp.glsl")
/* Metal: Provide compiler with hint to tune per-thread resource allocation. */
MTL_MAX_TOTAL_THREADS_PER_THREADGROUP(512)
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_denoise_temporal_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -199,7 +199,7 @@ IMAGE(2, RAYTRACE_RADIANCE_FORMAT, WRITE, FLOAT_2D, out_radiance_img)
IMAGE(3, RAYTRACE_VARIANCE_FORMAT, READ, FLOAT_2D, in_variance_img)
IMAGE(6, RAYTRACE_TILEMASK_FORMAT, READ, UINT_2D_ARRAY, tile_mask_img)
STORAGE_BUF(4, READ, uint, tiles_coord_buf[])
SPECIALIZATION_CONSTANT(INT, closure_index, 0)
SPECIALIZATION_CONSTANT(int, closure_index, 0)
COMPUTE_SOURCE("eevee_ray_denoise_bilateral_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -227,9 +227,9 @@ ADDITIONAL_INFO(eevee_sampling_data)
ADDITIONAL_INFO(eevee_utility_texture)
ADDITIONAL_INFO(eevee_hiz_data)
ADDITIONAL_INFO(draw_view)
SPECIALIZATION_CONSTANT(INT, fast_gi_slice_count, 2)
SPECIALIZATION_CONSTANT(INT, fast_gi_step_count, 8)
SPECIALIZATION_CONSTANT(BOOL, fast_gi_ao_only, false)
SPECIALIZATION_CONSTANT(int, fast_gi_slice_count, 2)
SPECIALIZATION_CONSTANT(int, fast_gi_step_count, 8)
SPECIALIZATION_CONSTANT(bool, fast_gi_ao_only, false)
SAMPLER(0, FLOAT_2D, screen_radiance_tx)
SAMPLER(1, FLOAT_2D, screen_normal_tx)
IMAGE(2, GPU_RGBA16F, WRITE, FLOAT_2D, horizon_radiance_0_img)

View File

@@ -27,8 +27,8 @@
* This is to make sure that the resulting motion vectors are valid even with displacement.
* WARNING: The next value is invalid when rendering the viewport. */
GPU_SHADER_NAMED_INTERFACE_INFO(eevee_velocity_surface_iface, motion)
SMOOTH(VEC3, prev)
SMOOTH(VEC3, next)
SMOOTH(float3, prev)
SMOOTH(float3, next)
GPU_SHADER_NAMED_INTERFACE_END(motion)
GPU_SHADER_CREATE_INFO(eevee_velocity_camera)
@@ -46,7 +46,7 @@ STORAGE_BUF(VELOCITY_GEO_PREV_BUF_SLOT, READ, vec4, velocity_geo_prev_buf[])
STORAGE_BUF(VELOCITY_GEO_NEXT_BUF_SLOT, READ, vec4, velocity_geo_next_buf[])
STORAGE_BUF(VELOCITY_INDIRECTION_BUF_SLOT, READ, VelocityIndex, velocity_indirection_buf[])
VERTEX_OUT(eevee_velocity_surface_iface)
FRAGMENT_OUT(0, VEC4, out_velocity)
FRAGMENT_OUT(0, float4, out_velocity)
ADDITIONAL_INFO(eevee_velocity_camera)
GPU_SHADER_CREATE_END()
@@ -55,9 +55,9 @@ COMPUTE_SOURCE("eevee_vertex_copy_comp.glsl")
LOCAL_GROUP_SIZE(VERTEX_COPY_GROUP_SIZE)
STORAGE_BUF(0, READ, float, in_buf[])
STORAGE_BUF(1, WRITE, vec4, out_buf[])
PUSH_CONSTANT(INT, start_offset)
PUSH_CONSTANT(INT, vertex_stride)
PUSH_CONSTANT(INT, vertex_count)
PUSH_CONSTANT(int, start_offset)
PUSH_CONSTANT(int, vertex_stride)
PUSH_CONSTANT(int, vertex_count)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -92,8 +92,8 @@ ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(eevee_render_pass_out)
ADDITIONAL_INFO(eevee_hiz_data)
FRAGMENT_SOURCE("eevee_volume_resolve_frag.glsl")
FRAGMENT_OUT_DUAL(0, VEC4, out_radiance, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_transmittance, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, out_radiance, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_transmittance, SRC_1)
/** TODO(Miguel Pozo): Volume RenderPasses. */
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -32,20 +32,20 @@
* \{ */
GPU_SHADER_NAMED_INTERFACE_INFO(gpencil_geometry_iface, gp_interp)
SMOOTH(VEC4, color_mul)
SMOOTH(VEC4, color_add)
SMOOTH(VEC3, pos)
SMOOTH(VEC2, uv)
SMOOTH(float4, color_mul)
SMOOTH(float4, color_add)
SMOOTH(float3, pos)
SMOOTH(float2, uv)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp)
GPU_SHADER_NAMED_INTERFACE_INFO(gpencil_geometry_flat_iface, gp_interp_flat)
FLAT(VEC2, aspect)
FLAT(VEC4, sspos)
FLAT(UINT, mat_flag)
FLAT(FLOAT, depth)
FLAT(float2, aspect)
FLAT(float4, sspos)
FLAT(uint, mat_flag)
FLAT(float, depth)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_flat)
GPU_SHADER_NAMED_INTERFACE_INFO(gpencil_geometry_noperspective_iface, gp_interp_noperspective)
NO_PERSPECTIVE(VEC2, thickness)
NO_PERSPECTIVE(FLOAT, hardness)
NO_PERSPECTIVE(float2, thickness)
NO_PERSPECTIVE(float, hardness)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_noperspective)
GPU_SHADER_CREATE_INFO(gpencil_geometry)
@@ -58,18 +58,18 @@ SAMPLER(4, DEPTH_2D, gpSceneDepthTexture)
SAMPLER(5, FLOAT_2D, gpMaskTexture)
UNIFORM_BUF_FREQ(4, gpMaterial, gp_materials[GPENCIL_MATERIAL_BUFFER_LEN], BATCH)
UNIFORM_BUF_FREQ(3, gpLight, gp_lights[GPENCIL_LIGHT_BUFFER_LEN], BATCH)
PUSH_CONSTANT(VEC2, viewportSize)
PUSH_CONSTANT(float2, viewportSize)
/* Per Object */
PUSH_CONSTANT(VEC3, gpNormal)
PUSH_CONSTANT(BOOL, gpStrokeOrder3d)
PUSH_CONSTANT(INT, gpMaterialOffset)
PUSH_CONSTANT(float3, gpNormal)
PUSH_CONSTANT(bool, gpStrokeOrder3d)
PUSH_CONSTANT(int, gpMaterialOffset)
/* Per Layer */
PUSH_CONSTANT(FLOAT, gpVertexColorOpacity)
PUSH_CONSTANT(VEC4, gpLayerTint)
PUSH_CONSTANT(FLOAT, gpLayerOpacity)
PUSH_CONSTANT(FLOAT, gpStrokeIndexOffset)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, revealColor)
PUSH_CONSTANT(float, gpVertexColorOpacity)
PUSH_CONSTANT(float4, gpLayerTint)
PUSH_CONSTANT(float, gpLayerOpacity)
PUSH_CONSTANT(float, gpStrokeIndexOffset)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, revealColor)
VERTEX_OUT(gpencil_geometry_iface)
VERTEX_OUT(gpencil_geometry_flat_iface)
VERTEX_OUT(gpencil_geometry_noperspective_iface)
@@ -92,28 +92,28 @@ DO_STATIC_COMPILATION()
SAMPLER(0, FLOAT_2D, colorBuf)
SAMPLER(1, FLOAT_2D, revealBuf)
SAMPLER(2, FLOAT_2D, maskBuf)
PUSH_CONSTANT(INT, blendMode)
PUSH_CONSTANT(FLOAT, blendOpacity)
PUSH_CONSTANT(int, blendMode)
PUSH_CONSTANT(float, blendOpacity)
/* Reminder: This is considered SRC color in blend equations.
* Same operation on all buffers. */
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, fragRevealage)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, fragRevealage)
FRAGMENT_SOURCE("gpencil_layer_blend_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_mask_invert)
DO_STATIC_COMPILATION()
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, fragRevealage)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, fragRevealage)
FRAGMENT_SOURCE("gpencil_mask_invert_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_depth_merge)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(MAT4, gpModelMatrix)
PUSH_CONSTANT(BOOL, strokeOrder3d)
PUSH_CONSTANT(float4x4, gpModelMatrix)
PUSH_CONSTANT(bool, strokeOrder3d)
SAMPLER(0, DEPTH_2D, depthBuf)
VERTEX_SOURCE("gpencil_depth_merge_vert.glsl")
FRAGMENT_SOURCE("gpencil_depth_merge_frag.glsl")
@@ -128,9 +128,9 @@ GPU_SHADER_CREATE_END()
* \{ */
GPU_SHADER_INTERFACE_INFO(gpencil_antialiasing_iface)
SMOOTH(VEC2, uvs)
SMOOTH(VEC2, pixcoord)
SMOOTH(VEC4, offset[3])
SMOOTH(float2, uvs)
SMOOTH(float2, pixcoord)
SMOOTH(float4, offset[3])
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpencil_antialiasing)
@@ -140,8 +140,8 @@ DEFINE("SMAA_PRESET_HIGH")
DEFINE_VALUE("SMAA_LUMA_WEIGHT", "float4(lumaWeight, lumaWeight, lumaWeight, 0.0f)")
DEFINE("SMAA_NO_DISCARD")
VERTEX_OUT(gpencil_antialiasing_iface)
PUSH_CONSTANT(VEC4, viewportMetrics)
PUSH_CONSTANT(FLOAT, lumaWeight)
PUSH_CONSTANT(float4, viewportMetrics)
PUSH_CONSTANT(float, lumaWeight)
VERTEX_SOURCE("gpencil_antialiasing_vert.glsl")
FRAGMENT_SOURCE("gpencil_antialiasing_frag.glsl")
GPU_SHADER_CREATE_END()
@@ -150,7 +150,7 @@ GPU_SHADER_CREATE_INFO(gpencil_antialiasing_stage_0)
DEFINE_VALUE("SMAA_STAGE", "0")
SAMPLER(0, FLOAT_2D, colorTex)
SAMPLER(1, FLOAT_2D, revealTex)
FRAGMENT_OUT(0, VEC2, out_edges)
FRAGMENT_OUT(0, float2, out_edges)
ADDITIONAL_INFO(gpencil_antialiasing)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -160,7 +160,7 @@ DEFINE_VALUE("SMAA_STAGE", "1")
SAMPLER(0, FLOAT_2D, edgesTex)
SAMPLER(1, FLOAT_2D, areaTex)
SAMPLER(2, FLOAT_2D, searchTex)
FRAGMENT_OUT(0, VEC4, out_weights)
FRAGMENT_OUT(0, float4, out_weights)
ADDITIONAL_INFO(gpencil_antialiasing)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -170,13 +170,13 @@ DEFINE_VALUE("SMAA_STAGE", "2")
SAMPLER(0, FLOAT_2D, colorTex)
SAMPLER(1, FLOAT_2D, revealTex)
SAMPLER(2, FLOAT_2D, blendTex)
PUSH_CONSTANT(FLOAT, mixFactor)
PUSH_CONSTANT(FLOAT, taaAccumulatedWeight)
PUSH_CONSTANT(BOOL, doAntiAliasing)
PUSH_CONSTANT(BOOL, onlyAlpha)
PUSH_CONSTANT(float, mixFactor)
PUSH_CONSTANT(float, taaAccumulatedWeight)
PUSH_CONSTANT(bool, doAntiAliasing)
PUSH_CONSTANT(bool, onlyAlpha)
/* Reminder: Blending func is `fragRevealage * DST + fragColor`. */
FRAGMENT_OUT_DUAL(0, VEC4, out_color, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, out_reveal, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, out_color, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, out_reveal, SRC_1)
ADDITIONAL_INFO(gpencil_antialiasing)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -184,8 +184,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_antialiasing_accumulation)
IMAGE(0, GPENCIL_RENDER_FORMAT, READ, FLOAT_2D, src_img)
IMAGE(1, GPENCIL_ACCUM_FORMAT, READ_WRITE, FLOAT_2D, dst_img)
PUSH_CONSTANT(FLOAT, weight_src)
PUSH_CONSTANT(FLOAT, weight_dst)
PUSH_CONSTANT(float, weight_src)
PUSH_CONSTANT(float, weight_dst)
FRAGMENT_SOURCE("gpencil_antialiasing_accumulation_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
DO_STATIC_COMPILATION()

View File

@@ -22,15 +22,15 @@ SAMPLER(0, FLOAT_2D, colorBuf)
SAMPLER(1, FLOAT_2D, revealBuf)
/* Reminder: This is considered SRC color in blend equations.
* Same operation on all buffers. */
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, fragRevealage)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, fragRevealage)
FRAGMENT_SOURCE("gpencil_vfx_frag.glsl")
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_composite)
DO_STATIC_COMPILATION()
DEFINE("COMPOSITE")
PUSH_CONSTANT(BOOL, isFirstPass)
PUSH_CONSTANT(bool, isFirstPass)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -38,10 +38,10 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_colorize)
DO_STATIC_COMPILATION()
DEFINE("COLORIZE")
PUSH_CONSTANT(VEC3, lowColor)
PUSH_CONSTANT(VEC3, highColor)
PUSH_CONSTANT(FLOAT, factor)
PUSH_CONSTANT(INT, mode)
PUSH_CONSTANT(float3, lowColor)
PUSH_CONSTANT(float3, highColor)
PUSH_CONSTANT(float, factor)
PUSH_CONSTANT(int, mode)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -49,8 +49,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_blur)
DO_STATIC_COMPILATION()
DEFINE("BLUR")
PUSH_CONSTANT(VEC2, offset)
PUSH_CONSTANT(INT, sampCount)
PUSH_CONSTANT(float2, offset)
PUSH_CONSTANT(int, sampCount)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -58,13 +58,13 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_transform)
DO_STATIC_COMPILATION()
DEFINE("TRANSFORM")
PUSH_CONSTANT(VEC2, axisFlip)
PUSH_CONSTANT(VEC2, waveDir)
PUSH_CONSTANT(VEC2, waveOffset)
PUSH_CONSTANT(FLOAT, wavePhase)
PUSH_CONSTANT(VEC2, swirlCenter)
PUSH_CONSTANT(FLOAT, swirlAngle)
PUSH_CONSTANT(FLOAT, swirlRadius)
PUSH_CONSTANT(float2, axisFlip)
PUSH_CONSTANT(float2, waveDir)
PUSH_CONSTANT(float2, waveOffset)
PUSH_CONSTANT(float, wavePhase)
PUSH_CONSTANT(float2, swirlCenter)
PUSH_CONSTANT(float, swirlAngle)
PUSH_CONSTANT(float, swirlRadius)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -72,13 +72,13 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_glow)
DO_STATIC_COMPILATION()
DEFINE("GLOW")
PUSH_CONSTANT(VEC4, glowColor)
PUSH_CONSTANT(VEC2, offset)
PUSH_CONSTANT(INT, sampCount)
PUSH_CONSTANT(VEC4, threshold)
PUSH_CONSTANT(BOOL, firstPass)
PUSH_CONSTANT(BOOL, glowUnder)
PUSH_CONSTANT(INT, blendMode)
PUSH_CONSTANT(float4, glowColor)
PUSH_CONSTANT(float2, offset)
PUSH_CONSTANT(int, sampCount)
PUSH_CONSTANT(float4, threshold)
PUSH_CONSTANT(bool, firstPass)
PUSH_CONSTANT(bool, glowUnder)
PUSH_CONSTANT(int, blendMode)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -86,13 +86,13 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_rim)
DO_STATIC_COMPILATION()
DEFINE("RIM")
PUSH_CONSTANT(VEC2, blurDir)
PUSH_CONSTANT(VEC2, uvOffset)
PUSH_CONSTANT(VEC3, rimColor)
PUSH_CONSTANT(VEC3, maskColor)
PUSH_CONSTANT(INT, sampCount)
PUSH_CONSTANT(INT, blendMode)
PUSH_CONSTANT(BOOL, isFirstPass)
PUSH_CONSTANT(float2, blurDir)
PUSH_CONSTANT(float2, uvOffset)
PUSH_CONSTANT(float3, rimColor)
PUSH_CONSTANT(float3, maskColor)
PUSH_CONSTANT(int, sampCount)
PUSH_CONSTANT(int, blendMode)
PUSH_CONSTANT(bool, isFirstPass)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -100,16 +100,16 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_shadow)
DO_STATIC_COMPILATION()
DEFINE("SHADOW")
PUSH_CONSTANT(VEC4, shadowColor)
PUSH_CONSTANT(VEC2, uvRotX)
PUSH_CONSTANT(VEC2, uvRotY)
PUSH_CONSTANT(VEC2, uvOffset)
PUSH_CONSTANT(VEC2, blurDir)
PUSH_CONSTANT(VEC2, waveDir)
PUSH_CONSTANT(VEC2, waveOffset)
PUSH_CONSTANT(FLOAT, wavePhase)
PUSH_CONSTANT(INT, sampCount)
PUSH_CONSTANT(BOOL, isFirstPass)
PUSH_CONSTANT(float4, shadowColor)
PUSH_CONSTANT(float2, uvRotX)
PUSH_CONSTANT(float2, uvRotY)
PUSH_CONSTANT(float2, uvOffset)
PUSH_CONSTANT(float2, blurDir)
PUSH_CONSTANT(float2, waveDir)
PUSH_CONSTANT(float2, waveOffset)
PUSH_CONSTANT(float, wavePhase)
PUSH_CONSTANT(int, sampCount)
PUSH_CONSTANT(bool, isFirstPass)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -117,10 +117,10 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpencil_fx_pixelize)
DO_STATIC_COMPILATION()
DEFINE("PIXELIZE")
PUSH_CONSTANT(VEC2, targetPixelSize)
PUSH_CONSTANT(VEC2, targetPixelOffset)
PUSH_CONSTANT(VEC2, accumOffset)
PUSH_CONSTANT(INT, sampCount)
PUSH_CONSTANT(float2, targetPixelSize)
PUSH_CONSTANT(float2, targetPixelOffset)
PUSH_CONSTANT(float2, accumOffset)
PUSH_CONSTANT(int, sampCount)
ADDITIONAL_INFO(gpencil_fx_common)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()

View File

@@ -5,18 +5,18 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(image_engine_color_iface)
SMOOTH(VEC2, uv_screen)
SMOOTH(float2, uv_screen)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(image_engine_color_shader)
VERTEX_IN(0, IVEC2, pos)
VERTEX_IN(0, int2, pos)
VERTEX_OUT(image_engine_color_iface)
FRAGMENT_OUT(0, VEC4, out_color)
PUSH_CONSTANT(VEC4, shuffle)
PUSH_CONSTANT(VEC2, far_near_distances)
PUSH_CONSTANT(IVEC2, offset)
PUSH_CONSTANT(INT, draw_flags)
PUSH_CONSTANT(BOOL, is_image_premultiplied)
FRAGMENT_OUT(0, float4, out_color)
PUSH_CONSTANT(float4, shuffle)
PUSH_CONSTANT(float2, far_near_distances)
PUSH_CONSTANT(int2, offset)
PUSH_CONSTANT(int, draw_flags)
PUSH_CONSTANT(bool, is_image_premultiplied)
SAMPLER(0, FLOAT_2D, image_tx)
SAMPLER(1, DEPTH_2D, depth_tx)
VERTEX_SOURCE("image_engine_color_vert.glsl")
@@ -27,14 +27,14 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(image_engine_depth_iface)
SMOOTH(VEC2, uv_image)
SMOOTH(float2, uv_image)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(image_engine_depth_shader)
VERTEX_IN(0, IVEC2, pos)
VERTEX_IN(1, VEC2, uv)
VERTEX_IN(0, int2, pos)
VERTEX_IN(1, float2, uv)
VERTEX_OUT(image_engine_depth_iface)
PUSH_CONSTANT(VEC4, min_max_uv)
PUSH_CONSTANT(float4, min_max_uv)
VERTEX_SOURCE("image_engine_depth_vert.glsl")
FRAGMENT_SOURCE("image_engine_depth_frag.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -16,8 +16,8 @@ DO_STATIC_COMPILATION()
SAMPLER(0, DEPTH_2D, depthTex)
SAMPLER(1, FLOAT_2D, colorTex)
SAMPLER(2, FLOAT_2D, lineTex)
PUSH_CONSTANT(BOOL, doSmoothLines)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, doSmoothLines)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("overlay_antialiasing_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(draw_globals)
@@ -27,8 +27,8 @@ GPU_SHADER_CREATE_INFO(overlay_xray_fade)
DO_STATIC_COMPILATION()
SAMPLER(0, DEPTH_2D, depthTex)
SAMPLER(1, DEPTH_2D, xrayDepthTex)
PUSH_CONSTANT(FLOAT, opacity)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(float, opacity)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("overlay_xray_fade_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
SAMPLER(2, DEPTH_2D, xrayDepthTexInfront)

View File

@@ -19,18 +19,18 @@
#include "overlay_common_info.hh"
GPU_SHADER_CREATE_INFO(overlay_frag_output)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(overlay_armature_wire_iface)
FLAT(VEC4, finalColor)
FLAT(VEC2, edgeStart)
NO_PERSPECTIVE(VEC2, edgePos)
FLAT(float4, finalColor)
FLAT(float2, edgeStart)
NO_PERSPECTIVE(float2, edgePos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_common)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(float, alpha)
ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()
@@ -40,7 +40,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_sphere_outline)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(overlay_armature_wire_iface)
VERTEX_SOURCE("overlay_armature_sphere_outline_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
@@ -53,17 +53,17 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS(overlay_armature_sphere_outline)
GPU_SHADER_INTERFACE_INFO(overlay_armature_sphere_solid_iface)
FLAT(VEC3, finalStateColor)
FLAT(VEC3, finalBoneColor)
FLAT(MAT4, sphereMatrix)
SMOOTH(VEC3, viewPosition)
FLAT(float3, finalStateColor)
FLAT(float3, finalBoneColor)
FLAT(float4x4, sphereMatrix)
SMOOTH(float3, viewPosition)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_sphere_solid)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
/* Per instance. */
VERTEX_IN(1, VEC4, color)
VERTEX_IN(1, float4, color)
DEPTH_WRITE(DepthWrite::GREATER)
VERTEX_OUT(overlay_armature_sphere_solid_iface)
VERTEX_SOURCE("overlay_armature_sphere_solid_vert.glsl")
@@ -83,26 +83,26 @@ OVERLAY_INFO_VARIATIONS(overlay_armature_sphere_solid)
* \{ */
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_armature_shape_outline_iface, geom_in)
SMOOTH(VEC4, pPos)
SMOOTH(VEC3, vPos)
SMOOTH(VEC2, ssPos)
SMOOTH(VEC4, vColSize)
SMOOTH(float4, pPos)
SMOOTH(float3, vPos)
SMOOTH(float2, ssPos)
SMOOTH(float4, vColSize)
GPU_SHADER_NAMED_INTERFACE_END(geom_in)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_armature_shape_outline_flat_iface, geom_flat_in)
FLAT(INT, inverted)
FLAT(int, inverted)
GPU_SHADER_NAMED_INTERFACE_END(geom_flat_in)
GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_outline_no_geom_iface)
FLAT(VEC4, finalColor)
FLAT(VEC2, edgeStart)
NO_PERSPECTIVE(VEC2, edgePos)
FLAT(float4, finalColor)
FLAT(float2, edgeStart)
NO_PERSPECTIVE(float2, edgePos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_shape_outline)
DO_STATIC_COMPILATION()
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF(1, READ, mat4, data_buf[])
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_0)
VERTEX_OUT(overlay_armature_shape_outline_no_geom_iface)
VERTEX_SOURCE("overlay_armature_shape_outline_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
@@ -115,14 +115,14 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS(overlay_armature_shape_outline)
GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_solid_iface)
SMOOTH(VEC4, finalColor)
FLAT(INT, inverted)
SMOOTH(float4, finalColor)
FLAT(int, inverted)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_shape_solid)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
/* Per instance. */
DEPTH_WRITE(DepthWrite::GREATER)
VERTEX_OUT(overlay_armature_shape_solid_iface)
@@ -137,18 +137,18 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS(overlay_armature_shape_solid)
GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_wire_iface)
FLAT(VEC4, finalColor)
FLAT(FLOAT, wire_width)
NO_PERSPECTIVE(FLOAT, edgeCoord)
FLAT(float4, finalColor)
FLAT(float, wire_width)
NO_PERSPECTIVE(float, edgeCoord)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_shape_wire)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(BOOL, do_smooth_wire)
PUSH_CONSTANT(bool, do_smooth_wire)
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF(1, READ, mat4, data_buf[])
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(BOOL, use_arrow_drawing)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(bool, use_arrow_drawing)
VERTEX_OUT(overlay_armature_shape_wire_iface)
VERTEX_SOURCE("overlay_armature_shape_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_shape_wire_frag.glsl")
@@ -178,9 +178,9 @@ OVERLAY_INFO_VARIATIONS(overlay_armature_shape_wire_strip)
GPU_SHADER_CREATE_INFO(overlay_armature_envelope_outline)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC2, pos0)
VERTEX_IN(1, VEC2, pos1)
VERTEX_IN(2, VEC2, pos2)
VERTEX_IN(0, float2, pos0)
VERTEX_IN(1, float2, pos1)
VERTEX_IN(2, float2, pos2)
VERTEX_OUT(overlay_armature_wire_iface)
VERTEX_SOURCE("overlay_armature_envelope_outline_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
@@ -193,17 +193,17 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS(overlay_armature_envelope_outline)
GPU_SHADER_INTERFACE_INFO(overlay_armature_envelope_solid_iface)
FLAT(VEC3, finalStateColor)
FLAT(VEC3, finalBoneColor)
SMOOTH(VEC3, normalView)
FLAT(float3, finalStateColor)
FLAT(float3, finalBoneColor)
SMOOTH(float3, normalView)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_envelope_solid)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(overlay_armature_envelope_solid_iface)
PUSH_CONSTANT(BOOL, isDistance)
PUSH_CONSTANT(bool, isDistance)
VERTEX_SOURCE("overlay_armature_envelope_solid_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_envelope_solid_frag.glsl")
ADDITIONAL_INFO(overlay_frag_output)
@@ -221,16 +221,16 @@ OVERLAY_INFO_VARIATIONS(overlay_armature_envelope_solid)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_armature_stick_iface)
NO_PERSPECTIVE(FLOAT, colorFac)
FLAT(VEC4, finalWireColor)
FLAT(VEC4, finalInnerColor)
NO_PERSPECTIVE(float, colorFac)
FLAT(float4, finalWireColor)
FLAT(float4, finalInnerColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_armature_stick_base)
TYPEDEF_SOURCE("overlay_shader_shared.h")
/* Bone aligned screen space. */
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(1, INT, vclass)
VERTEX_IN(0, float2, pos)
VERTEX_IN(1, int, vclass)
VERTEX_OUT(overlay_armature_stick_iface)
VERTEX_SOURCE("overlay_armature_stick_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_stick_frag.glsl")
@@ -251,7 +251,7 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_armature_stick, overlay_armature_stick_
GPU_SHADER_CREATE_INFO(overlay_armature_dof)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(overlay_armature_wire_iface)
VERTEX_SOURCE("overlay_armature_dof_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_dof_solid_frag.glsl")
@@ -271,7 +271,7 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_armature_dof)
GPU_SHADER_CREATE_INFO(overlay_armature_wire_base)
TYPEDEF_SOURCE("overlay_shader_shared.h")
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(float, alpha)
VERTEX_OUT(overlay_armature_wire_iface)
VERTEX_SOURCE("overlay_armature_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")

View File

@@ -21,20 +21,20 @@ DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
SAMPLER(0, FLOAT_2D, colorBuffer)
SAMPLER(1, DEPTH_2D, depthBuffer)
PUSH_CONSTANT(INT, bgType)
PUSH_CONSTANT(VEC4, colorOverride)
PUSH_CONSTANT(int, bgType)
PUSH_CONSTANT(float4, colorOverride)
FRAGMENT_SOURCE("overlay_background_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(draw_globals)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_clipbound)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(VEC4, ucolor)
PUSH_CONSTANT_ARRAY(VEC3, boundbox, 8)
PUSH_CONSTANT(float4, ucolor)
PUSH_CONSTANT_ARRAY(float3, boundbox, 8)
VERTEX_SOURCE("overlay_clipbound_vert.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()

View File

@@ -22,7 +22,7 @@ UNIFORM_BUF_FREQ(OVERLAY_GLOBALS_SLOT, GlobalsUboStorage, globalsBlock, PASS)
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(select_id_patch_iface)
FLAT(UINT, select_id)
FLAT(uint, select_id)
GPU_SHADER_INTERFACE_END()
/* Used to patch overlay shaders. */

View File

@@ -24,13 +24,13 @@
#include "overlay_common_info.hh"
GPU_SHADER_INTERFACE_INFO(overlay_edit_flat_color_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(overlay_edit_smooth_color_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(overlay_edit_nopersp_color_iface)
NO_PERSPECTIVE(VEC4, finalColor)
NO_PERSPECTIVE(float4, finalColor)
GPU_SHADER_INTERFACE_END()
/* -------------------------------------------------------------------- */
@@ -41,25 +41,25 @@ GPU_SHADER_CREATE_INFO(overlay_edit_mesh_common)
DEFINE_VALUE("blender_srgb_to_framebuffer_space(a)", "a")
SAMPLER(0, DEPTH_2D, depthTex)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
/* Per view factor. */
PUSH_CONSTANT(FLOAT, ndc_offset_factor)
PUSH_CONSTANT(float, ndc_offset_factor)
/* Per pass factor. */
PUSH_CONSTANT(FLOAT, ndc_offset)
PUSH_CONSTANT(BOOL, wireShading)
PUSH_CONSTANT(BOOL, selectFace)
PUSH_CONSTANT(BOOL, selectEdge)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(FLOAT, retopologyOffset)
PUSH_CONSTANT(IVEC4, dataMask)
PUSH_CONSTANT(float, ndc_offset)
PUSH_CONSTANT(bool, wireShading)
PUSH_CONSTANT(bool, selectFace)
PUSH_CONSTANT(bool, selectEdge)
PUSH_CONSTANT(float, alpha)
PUSH_CONSTANT(float, retopologyOffset)
PUSH_CONSTANT(int4, dataMask)
ADDITIONAL_INFO(draw_globals)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_depth)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(FLOAT, retopologyOffset)
VERTEX_IN(0, float3, pos)
PUSH_CONSTANT(float, retopologyOffset)
VERTEX_SOURCE("overlay_edit_mesh_depth_vert.glsl")
FRAGMENT_SOURCE("overlay_depth_only_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -70,17 +70,17 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_depth)
GPU_SHADER_INTERFACE_INFO(overlay_edit_mesh_vert_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(FLOAT, vertexCrease)
SMOOTH(float4, finalColor)
SMOOTH(float, vertexCrease)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_vert)
DO_STATIC_COMPILATION()
BUILTINS(BuiltinBits::POINT_SIZE)
DEFINE("VERT")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UVEC4, data)
VERTEX_IN(2, VEC3, vnor)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint4, data)
VERTEX_IN(2, float3, vnor)
VERTEX_SOURCE("overlay_edit_mesh_vert.glsl")
VERTEX_OUT(overlay_edit_mesh_vert_iface)
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
@@ -93,14 +93,14 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_vert)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_edit_mesh_edge_geom_iface, geometry_out)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_NAMED_INTERFACE_END(geometry_out)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_edit_mesh_edge_geom_flat_iface, geometry_flat_out)
FLAT(VEC4, finalColorOuter)
FLAT(float4, finalColorOuter)
GPU_SHADER_NAMED_INTERFACE_END(geometry_flat_out)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_edit_mesh_edge_geom_noperspective_iface,
geometry_noperspective_out)
NO_PERSPECTIVE(FLOAT, edgeCoord)
NO_PERSPECTIVE(float, edgeCoord)
GPU_SHADER_NAMED_INTERFACE_END(geometry_noperspective_out)
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_edge)
@@ -109,11 +109,11 @@ DEFINE("EDGE")
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF_FREQ(1, READ, uint, vnor[], GEOMETRY)
STORAGE_BUF_FREQ(2, READ, uint, data[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(IVEC2, gpu_attr_2)
PUSH_CONSTANT(BOOL, do_smooth_wire)
PUSH_CONSTANT(BOOL, use_vertex_selection)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int2, gpu_attr_2)
PUSH_CONSTANT(bool, do_smooth_wire)
PUSH_CONSTANT(bool, use_vertex_selection)
VERTEX_OUT(overlay_edit_mesh_edge_geom_iface)
VERTEX_OUT(overlay_edit_mesh_edge_geom_flat_iface)
VERTEX_OUT(overlay_edit_mesh_edge_geom_noperspective_iface)
@@ -130,8 +130,8 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_edge)
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_face)
DO_STATIC_COMPILATION()
DEFINE("FACE")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UVEC4, data)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint4, data)
VERTEX_SOURCE("overlay_edit_mesh_vert.glsl")
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_SOURCE("overlay_varying_color.glsl")
@@ -146,9 +146,9 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_face)
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_facedot)
DO_STATIC_COMPILATION()
DEFINE("FACEDOT")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UVEC4, data)
VERTEX_IN(2, VEC4, norAndFlag)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint4, data)
VERTEX_IN(2, float4, norAndFlag)
VERTEX_SOURCE("overlay_edit_mesh_facedot_vert.glsl")
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
@@ -160,17 +160,17 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_facedot)
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_normal)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
SAMPLER(0, DEPTH_2D, depthTex)
PUSH_CONSTANT(FLOAT, normalSize)
PUSH_CONSTANT(FLOAT, normalScreenSize)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(BOOL, isConstantScreenSizeNormals)
PUSH_CONSTANT(float, normalSize)
PUSH_CONSTANT(float, normalScreenSize)
PUSH_CONSTANT(float, alpha)
PUSH_CONSTANT(bool, isConstantScreenSizeNormals)
VERTEX_OUT(overlay_edit_flat_color_iface)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_mesh_normal_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
GPU_SHADER_CREATE_END()
@@ -184,7 +184,7 @@ ADDITIONAL_INFO(draw_globals)
ADDITIONAL_INFO(gpu_index_buffer_load)
STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY)
DEFINE("FACE_NORMAL")
PUSH_CONSTANT(BOOL, hq_normals)
PUSH_CONSTANT(bool, hq_normals)
STORAGE_BUF_FREQ(0, READ, uint, norAndFlag[], GEOMETRY)
GPU_SHADER_CREATE_END()
@@ -214,7 +214,7 @@ ADDITIONAL_INFO(draw_globals)
ADDITIONAL_INFO(gpu_index_buffer_load)
STORAGE_BUF_FREQ(1, READ, float, pos[], GEOMETRY)
DEFINE("LOOP_NORMAL")
PUSH_CONSTANT(BOOL, hq_normals)
PUSH_CONSTANT(bool, hq_normals)
STORAGE_BUF_FREQ(0, READ, uint, lnor[], GEOMETRY)
GPU_SHADER_CREATE_END()
@@ -265,16 +265,16 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_mesh_vert_normal_subdiv)
GPU_SHADER_INTERFACE_INFO(overlay_edit_mesh_analysis_iface)
SMOOTH(VEC4, weightColor)
SMOOTH(float4, weightColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_analysis)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, FLOAT, weight)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float, weight)
SAMPLER(0, FLOAT_1D, weightTex)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_OUT(overlay_edit_mesh_analysis_iface)
VERTEX_SOURCE("overlay_edit_mesh_analysis_vert.glsl")
FRAGMENT_SOURCE("overlay_edit_mesh_analysis_frag.glsl")
@@ -288,7 +288,7 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_analysis)
GPU_SHADER_CREATE_INFO(overlay_edit_mesh_skin_root)
DO_STATIC_COMPILATION()
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_mesh_skin_root_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -308,25 +308,25 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_mesh_skin_root)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_edit_uv_iface)
SMOOTH(FLOAT, selectionFac)
FLAT(VEC2, stippleStart)
NO_PERSPECTIVE(FLOAT, edgeCoord)
NO_PERSPECTIVE(VEC2, stipplePos)
SMOOTH(float, selectionFac)
FLAT(float2, stippleStart)
NO_PERSPECTIVE(float, edgeCoord)
NO_PERSPECTIVE(float2, stipplePos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_edges)
DO_STATIC_COMPILATION()
STORAGE_BUF_FREQ(0, READ, float, au[], GEOMETRY)
STORAGE_BUF_FREQ(1, READ, uint, data[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(INT, lineStyle)
PUSH_CONSTANT(BOOL, doSmoothWire)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(FLOAT, dashLength)
SPECIALIZATION_CONSTANT(BOOL, use_edge_select, false)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int, lineStyle)
PUSH_CONSTANT(bool, doSmoothWire)
PUSH_CONSTANT(float, alpha)
PUSH_CONSTANT(float, dashLength)
SPECIALIZATION_CONSTANT(bool, use_edge_select, false)
VERTEX_OUT(overlay_edit_uv_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_edges_vert.glsl")
FRAGMENT_SOURCE("overlay_edit_uv_edges_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -339,11 +339,11 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_faces)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC2, au)
VERTEX_IN(1, UINT, flag)
PUSH_CONSTANT(FLOAT, uvOpacity)
VERTEX_IN(0, float2, au)
VERTEX_IN(1, uint, flag)
PUSH_CONSTANT(float, uvOpacity)
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_faces_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -355,11 +355,11 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_face_dots)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC2, au)
VERTEX_IN(1, UINT, flag)
PUSH_CONSTANT(FLOAT, pointSize)
VERTEX_IN(0, float2, au)
VERTEX_IN(1, uint, flag)
PUSH_CONSTANT(float, pointSize)
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_face_dots_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -368,20 +368,20 @@ ADDITIONAL_INFO(draw_globals)
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(overlay_edit_uv_vert_iface)
SMOOTH(VEC4, fillColor)
SMOOTH(VEC4, outlineColor)
SMOOTH(VEC4, radii)
SMOOTH(float4, fillColor)
SMOOTH(float4, outlineColor)
SMOOTH(float4, radii)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_verts)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC2, au)
VERTEX_IN(1, UINT, flag)
PUSH_CONSTANT(FLOAT, pointSize)
PUSH_CONSTANT(FLOAT, outlineWidth)
PUSH_CONSTANT(VEC4, color)
VERTEX_IN(0, float2, au)
VERTEX_IN(1, uint, flag)
PUSH_CONSTANT(float, pointSize)
PUSH_CONSTANT(float, outlineWidth)
PUSH_CONSTANT(float4, color)
VERTEX_OUT(overlay_edit_uv_vert_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_verts_vert.glsl")
FRAGMENT_SOURCE("overlay_edit_uv_verts_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -391,48 +391,48 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_tiled_image_borders)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(VEC4, ucolor)
FRAGMENT_OUT(0, VEC4, fragColor)
VERTEX_IN(0, float3, pos)
PUSH_CONSTANT(float4, ucolor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_tiled_image_borders_vert.glsl")
FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
PUSH_CONSTANT(VEC3, tile_pos)
PUSH_CONSTANT(float3, tile_pos)
DEFINE_VALUE("tile_scale", "vec3(1.0f)")
ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(edit_uv_image_iface)
SMOOTH(VEC2, uvs)
SMOOTH(float2, uvs)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_stencil_image)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(edit_uv_image_iface)
VERTEX_SOURCE("overlay_edit_uv_image_vert.glsl")
SAMPLER(0, FLOAT_2D, imgTexture)
PUSH_CONSTANT(BOOL, imgPremultiplied)
PUSH_CONSTANT(BOOL, imgAlphaBlend)
PUSH_CONSTANT(VEC4, ucolor)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, imgPremultiplied)
PUSH_CONSTANT(bool, imgAlphaBlend)
PUSH_CONSTANT(float4, ucolor)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("overlay_image_frag.glsl")
PUSH_CONSTANT(VEC2, brush_offset)
PUSH_CONSTANT(VEC2, brush_scale)
PUSH_CONSTANT(float2, brush_offset)
PUSH_CONSTANT(float2, brush_scale)
ADDITIONAL_INFO(draw_view);
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_mask_image)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(edit_uv_image_iface)
SAMPLER(0, FLOAT_2D, imgTexture)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(FLOAT, opacity)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float, opacity)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_image_vert.glsl")
FRAGMENT_SOURCE("overlay_edit_uv_image_mask_frag.glsl")
PUSH_CONSTANT(VEC2, brush_offset)
PUSH_CONSTANT(VEC2, brush_scale)
PUSH_CONSTANT(float2, brush_offset)
PUSH_CONSTANT(float2, brush_scale)
ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()
@@ -443,19 +443,19 @@ GPU_SHADER_CREATE_END()
* \{ */
GPU_SHADER_CREATE_INFO(overlay_edit_uv_stretching)
VERTEX_IN(0, VEC2, pos)
PUSH_CONSTANT(VEC2, aspect)
PUSH_CONSTANT(FLOAT, stretch_opacity)
VERTEX_IN(0, float2, pos)
PUSH_CONSTANT(float2, aspect)
PUSH_CONSTANT(float, stretch_opacity)
VERTEX_OUT(overlay_edit_nopersp_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_stretching_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_stretching_area)
DO_STATIC_COMPILATION()
VERTEX_IN(1, FLOAT, ratio)
PUSH_CONSTANT(FLOAT, totalAreaRatio)
VERTEX_IN(1, float, ratio)
PUSH_CONSTANT(float, totalAreaRatio)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
ADDITIONAL_INFO(draw_globals)
@@ -465,8 +465,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_edit_uv_stretching_angle)
DO_STATIC_COMPILATION()
DEFINE("STRETCH_ANGLE")
VERTEX_IN(1, VEC2, uv_angles)
VERTEX_IN(2, FLOAT, angle)
VERTEX_IN(1, float2, uv_angles)
VERTEX_IN(2, float, angle)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
ADDITIONAL_INFO(draw_globals)
@@ -484,15 +484,15 @@ DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF_FREQ(1, READ, uint, data[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
VERTEX_OUT(overlay_edit_smooth_color_iface)
PUSH_CONSTANT(BOOL, showCurveHandles)
PUSH_CONSTANT(INT, curveHandleDisplay)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(bool, showCurveHandles)
PUSH_CONSTANT(int, curveHandleDisplay)
PUSH_CONSTANT(float, alpha)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_curve_handle_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -506,12 +506,12 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_curve_handle)
GPU_SHADER_CREATE_INFO(overlay_edit_curve_point)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UINT, data)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint, data)
VERTEX_OUT(overlay_edit_flat_color_iface)
PUSH_CONSTANT(BOOL, showCurveHandles)
PUSH_CONSTANT(INT, curveHandleDisplay)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, showCurveHandles)
PUSH_CONSTANT(int, curveHandleDisplay)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_curve_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -523,13 +523,13 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_curve_point)
GPU_SHADER_CREATE_INFO(overlay_edit_curve_wire)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(2, VEC3, tangent)
VERTEX_IN(3, FLOAT, rad)
PUSH_CONSTANT(FLOAT, normalSize)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
VERTEX_IN(2, float3, tangent)
VERTEX_IN(3, float, rad)
PUSH_CONSTANT(float, normalSize)
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_curve_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -545,14 +545,14 @@ STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF_FREQ(1, READ, float, rad[], GEOMETRY)
STORAGE_BUF_FREQ(2, READ, uint, nor[], GEOMETRY)
STORAGE_BUF_FREQ(3, READ, uint, tangent[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(IVEC2, gpu_attr_2)
PUSH_CONSTANT(IVEC2, gpu_attr_3)
PUSH_CONSTANT(FLOAT, normalSize)
PUSH_CONSTANT(BOOL, use_hq_normals)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int2, gpu_attr_2)
PUSH_CONSTANT(int2, gpu_attr_3)
PUSH_CONSTANT(float, normalSize)
PUSH_CONSTANT(bool, use_hq_normals)
VERTEX_OUT(overlay_edit_flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_curve_normals_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -575,12 +575,12 @@ TYPEDEF_SOURCE("overlay_shader_shared.h")
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
STORAGE_BUF_FREQ(1, READ, uint, data[], GEOMETRY)
STORAGE_BUF_FREQ(2, READ, float, selection[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(IVEC2, gpu_attr_2)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int2, gpu_attr_2)
VERTEX_OUT(overlay_edit_smooth_color_iface)
PUSH_CONSTANT(INT, curveHandleDisplay)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(int, curveHandleDisplay)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_curves_handle_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -595,20 +595,20 @@ GPU_SHADER_CREATE_INFO(overlay_edit_curves_point)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
DEFINE("CURVES_POINT")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UINT, data)
VERTEX_IN(2, FLOAT, selection)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint, data)
VERTEX_IN(2, float, selection)
#if 1 /* TODO(fclem): Required for legacy gpencil overlay. To be moved to specialized shader. */
TYPEDEF_SOURCE("gpencil_shader_shared.h")
VERTEX_IN(3, UINT, vflag)
PUSH_CONSTANT(BOOL, doStrokeEndpoints)
VERTEX_IN(3, uint, vflag)
PUSH_CONSTANT(bool, doStrokeEndpoints)
#endif
VERTEX_OUT(overlay_edit_flat_color_iface)
SAMPLER(0, FLOAT_1D, weightTex)
PUSH_CONSTANT(BOOL, useWeight)
PUSH_CONSTANT(BOOL, useGreasePencil)
PUSH_CONSTANT(INT, curveHandleDisplay)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, useWeight)
PUSH_CONSTANT(bool, useGreasePencil)
PUSH_CONSTANT(int, curveHandleDisplay)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_particle_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -625,12 +625,12 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_curves_point)
* \{ */
GPU_SHADER_CREATE_INFO(overlay_edit_lattice_point_base)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, UINT, data)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, uint, data)
VERTEX_OUT(overlay_edit_flat_color_iface)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_lattice_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -640,13 +640,13 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_edit_lattice_point, overlay_edit_lattice_point_base)
GPU_SHADER_CREATE_INFO(overlay_edit_lattice_wire_base)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, FLOAT, weight)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float, weight)
SAMPLER(0, FLOAT_1D, weightTex)
VERTEX_OUT(overlay_edit_smooth_color_iface)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_lattice_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -663,13 +663,13 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_edit_lattice_wire, overlay_edit_lattice
GPU_SHADER_CREATE_INFO(overlay_edit_particle_strand)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, FLOAT, selection)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float, selection)
SAMPLER(0, FLOAT_1D, weightTex)
PUSH_CONSTANT(BOOL, useWeight)
PUSH_CONSTANT(BOOL, useGreasePencil)
PUSH_CONSTANT(bool, useWeight)
PUSH_CONSTANT(bool, useGreasePencil)
VERTEX_OUT(overlay_edit_smooth_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_particle_strand_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)
@@ -681,18 +681,18 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_particle_strand)
GPU_SHADER_CREATE_INFO(overlay_edit_particle_point)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, FLOAT, selection)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float, selection)
VERTEX_OUT(overlay_edit_flat_color_iface)
SAMPLER(0, FLOAT_1D, weightTex)
PUSH_CONSTANT(BOOL, useWeight)
PUSH_CONSTANT(BOOL, useGreasePencil)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, useWeight)
PUSH_CONSTANT(bool, useGreasePencil)
FRAGMENT_OUT(0, float4, fragColor)
#if 1 /* TODO(fclem): Required for legacy gpencil overlay. To be moved to specialized shader. */
TYPEDEF_SOURCE("gpencil_shader_shared.h")
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(3, UINT, vflag)
PUSH_CONSTANT(BOOL, doStrokeEndpoints)
VERTEX_IN(3, uint, vflag)
PUSH_CONSTANT(bool, doStrokeEndpoints)
#endif
VERTEX_SOURCE("overlay_edit_particle_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
@@ -710,11 +710,11 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_edit_particle_point)
* \{ */
GPU_SHADER_CREATE_INFO(overlay_edit_pointcloud_base)
VERTEX_IN(0, VEC4, pos_rad)
VERTEX_IN(0, float4, pos_rad)
VERTEX_OUT(overlay_edit_flat_color_iface)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_pointcloud_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -732,7 +732,7 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_edit_pointcloud, overlay_edit_pointclou
* \{ */
GPU_SHADER_CREATE_INFO(overlay_depth_mesh_base)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_SOURCE("overlay_depth_only_vert.glsl")
FRAGMENT_SOURCE("overlay_depth_only_frag.glsl")
ADDITIONAL_INFO(draw_globals)
@@ -743,7 +743,7 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_mesh, overlay_depth_mesh_base)
GPU_SHADER_CREATE_INFO(overlay_depth_mesh_conservative_base)
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_0)
VERTEX_SOURCE("overlay_depth_only_mesh_conservative_vert.glsl")
FRAGMENT_SOURCE("overlay_depth_only_frag.glsl")
ADDITIONAL_INFO(draw_globals)
@@ -755,13 +755,13 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_mesh_conservative,
overlay_depth_mesh_conservative_base)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_depth_only_gpencil_flat_iface, gp_interp_flat)
FLAT(VEC2, aspect)
FLAT(VEC4, sspos)
FLAT(float2, aspect)
FLAT(float4, sspos)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_flat)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_depth_only_gpencil_noperspective_iface,
gp_interp_noperspective)
NO_PERSPECTIVE(VEC2, thickness)
NO_PERSPECTIVE(FLOAT, hardness)
NO_PERSPECTIVE(float2, thickness)
NO_PERSPECTIVE(float, hardness)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_noperspective)
GPU_SHADER_CREATE_INFO(overlay_depth_gpencil_base)
@@ -771,8 +771,8 @@ VERTEX_OUT(overlay_depth_only_gpencil_noperspective_iface)
VERTEX_SOURCE("overlay_depth_only_gpencil_vert.glsl")
FRAGMENT_SOURCE("overlay_depth_only_gpencil_frag.glsl")
DEPTH_WRITE(DepthWrite::ANY)
PUSH_CONSTANT(BOOL, gpStrokeOrder3d) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(VEC4, gpDepthPlane) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(bool, gpStrokeOrder3d) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(float4, gpDepthPlane) /* TODO(fclem): Move to a GPencil object UBO. */
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_globals)
ADDITIONAL_INFO(draw_gpencil)
@@ -809,11 +809,11 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_depth_curves, overlay_depth_curves_base
GPU_SHADER_CREATE_INFO(overlay_uniform_color)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(VEC4, ucolor)
VERTEX_IN(0, float3, pos)
PUSH_CONSTANT(float4, ucolor)
DEFINE("LINE_OUTPUT")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_depth_only_vert.glsl")
FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -22,19 +22,19 @@
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_extra_iface)
NO_PERSPECTIVE(VEC2, edgePos)
FLAT(VEC2, edgeStart)
FLAT(VEC4, finalColor)
NO_PERSPECTIVE(float2, edgePos)
FLAT(float2, edgeStart)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_extra)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, INT, vclass)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, int, vclass)
VERTEX_OUT(overlay_extra_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_extra_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -59,15 +59,15 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_extra_spot_cone)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_extra_grid_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_extra_grid_base)
SAMPLER(0, DEPTH_2D, depthBuffer)
PUSH_CONSTANT(MAT4, gridModelMatrix)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(float4x4, gridModelMatrix)
PUSH_CONSTANT(bool, isTransform)
VERTEX_OUT(overlay_extra_grid_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_extra_lightprobe_grid_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -84,11 +84,11 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_extra_grid, overlay_extra_grid_base)
GPU_SHADER_CREATE_INFO(overlay_extra_groundline)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
/* Instance attributes. */
VERTEX_OUT(overlay_extra_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_extra_groundline_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -105,20 +105,20 @@ OVERLAY_INFO_VARIATIONS(overlay_extra_groundline)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_extra_wire_iface)
NO_PERSPECTIVE(VEC2, stipple_coord)
FLAT(VEC2, stipple_start)
FLAT(VEC4, finalColor)
NO_PERSPECTIVE(float2, stipple_coord)
FLAT(float2, stipple_start)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_extra_wire_base)
VERTEX_OUT(overlay_extra_wire_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_extra_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_wire_frag.glsl")
TYPEDEF_SOURCE("overlay_shader_shared.h")
STORAGE_BUF(0, READ, VertexData, data_buf[])
PUSH_CONSTANT(INT, colorid)
PUSH_CONSTANT(int, colorid)
DEFINE_VALUE("pos", "data_buf[gl_VertexID].pos_.xyz")
DEFINE_VALUE("color", "data_buf[gl_VertexID].color_")
ADDITIONAL_INFO(draw_view)
@@ -128,13 +128,13 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_extra_wire, overlay_extra_wire_base)
GPU_SHADER_CREATE_INFO(overlay_extra_wire_object_base)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, color)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, color)
/* If colorid is equal to 0 (i.e: Not specified) use color attribute and stippling. */
VERTEX_IN(2, INT, colorid)
VERTEX_IN(2, int, colorid)
VERTEX_OUT(overlay_extra_wire_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_extra_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_wire_frag.glsl")
DEFINE("OBJECT_WIRE")
@@ -151,16 +151,16 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_extra_wire_object, overlay_extra_wire_o
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_extra_point_iface)
FLAT(VEC4, radii)
FLAT(VEC4, fillColor)
FLAT(VEC4, outlineColor)
FLAT(float4, radii)
FLAT(float4, fillColor)
FLAT(float4, outlineColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_extra_point_base)
/* TODO(fclem): Move the vertex shader to Overlay engine and remove this bypass. */
DEFINE_VALUE("blender_srgb_to_framebuffer_space(a)", "a")
VERTEX_OUT(overlay_extra_point_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_extra_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_varying_outline_aa_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -172,13 +172,13 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_extra_point, overlay_extra_point_base)
GPU_SHADER_INTERFACE_INFO(overlay_extra_loose_point_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_extra_loose_point_base)
VERTEX_OUT(overlay_extra_loose_point_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_extra_loose_point_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_loose_point_frag.glsl")
TYPEDEF_SOURCE("overlay_shader_shared.h")
@@ -196,21 +196,21 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_extra_loose_point, overlay_extra_loose_
* \{ */
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_motion_path_line_iface, interp)
SMOOTH(VEC4, color)
SMOOTH(float4, color)
GPU_SHADER_NAMED_INTERFACE_END(interp)
GPU_SHADER_CREATE_INFO(overlay_motion_path_line)
DO_STATIC_COMPILATION()
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC4, mpathLineSettings)
PUSH_CONSTANT(BOOL, selected)
PUSH_CONSTANT(VEC3, customColorPre)
PUSH_CONSTANT(VEC3, customColorPost)
PUSH_CONSTANT(INT, lineThickness) /* In pixels. */
PUSH_CONSTANT(MAT4, camera_space_matrix)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int4, mpathLineSettings)
PUSH_CONSTANT(bool, selected)
PUSH_CONSTANT(float3, customColorPre)
PUSH_CONSTANT(float3, customColorPost)
PUSH_CONSTANT(int, lineThickness) /* In pixels. */
PUSH_CONSTANT(float4x4, camera_space_matrix)
VERTEX_OUT(overlay_motion_path_line_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_motion_path_line_vert.glsl")
FRAGMENT_SOURCE("overlay_motion_path_line_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -221,21 +221,21 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_motion_path_line)
GPU_SHADER_INTERFACE_INFO(overlay_motion_path_point_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_motion_path_point)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, INT, flag)
PUSH_CONSTANT(IVEC4, mpathPointSettings)
PUSH_CONSTANT(BOOL, showKeyFrames)
PUSH_CONSTANT(VEC3, customColorPre)
PUSH_CONSTANT(VEC3, customColorPost)
PUSH_CONSTANT(MAT4, camera_space_matrix)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, int, flag)
PUSH_CONSTANT(int4, mpathPointSettings)
PUSH_CONSTANT(bool, showKeyFrames)
PUSH_CONSTANT(float3, customColorPre)
PUSH_CONSTANT(float3, customColorPost)
PUSH_CONSTANT(float4x4, camera_space_matrix)
VERTEX_OUT(overlay_motion_path_point_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_motion_path_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -251,19 +251,19 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_motion_path_point)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_image_iface)
SMOOTH(VEC2, uvs)
SMOOTH(float2, uvs)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_image_base)
PUSH_CONSTANT(BOOL, depthSet)
PUSH_CONSTANT(BOOL, isCameraBackground)
PUSH_CONSTANT(BOOL, imgPremultiplied)
PUSH_CONSTANT(BOOL, imgAlphaBlend)
PUSH_CONSTANT(VEC4, ucolor)
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(bool, depthSet)
PUSH_CONSTANT(bool, isCameraBackground)
PUSH_CONSTANT(bool, imgPremultiplied)
PUSH_CONSTANT(bool, imgAlphaBlend)
PUSH_CONSTANT(float4, ucolor)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(overlay_image_iface)
SAMPLER(0, FLOAT_2D, imgTexture)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_image_vert.glsl")
FRAGMENT_SOURCE("overlay_image_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -275,7 +275,7 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_image, overlay_image_base)
GPU_SHADER_CREATE_INFO(overlay_image_depth_bias_base)
ADDITIONAL_INFO(overlay_image_base)
DEFINE("DEPTH_BIAS")
PUSH_CONSTANT(MAT4, depth_bias_winmat)
PUSH_CONSTANT(float4x4, depth_bias_winmat)
GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_image_depth_bias, overlay_image_depth_bias_base)
@@ -289,13 +289,13 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_image_depth_bias, overlay_image_depth_b
GPU_SHADER_CREATE_INFO(overlay_gpencil_canvas)
DO_STATIC_COMPILATION()
VERTEX_OUT(overlay_extra_iface)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(VEC3, xAxis)
PUSH_CONSTANT(VEC3, yAxis)
PUSH_CONSTANT(VEC3, origin)
PUSH_CONSTANT(INT, halfLineCount)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float3, xAxis)
PUSH_CONSTANT(float3, yAxis)
PUSH_CONSTANT(float3, origin)
PUSH_CONSTANT(int, halfLineCount)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_edit_gpencil_canvas_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_frag.glsl")
ADDITIONAL_INFO(draw_mesh)
@@ -312,18 +312,18 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_gpencil_canvas)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_particle_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_particle_dot_base)
SAMPLER(0, FLOAT_1D, weightTex)
PUSH_CONSTANT(VEC4, ucolor) /* Draw-size packed in alpha. */
VERTEX_IN(0, VEC3, part_pos)
VERTEX_IN(1, VEC4, part_rot)
VERTEX_IN(2, FLOAT, part_val)
PUSH_CONSTANT(float4, ucolor) /* Draw-size packed in alpha. */
VERTEX_IN(0, float3, part_pos)
VERTEX_IN(1, float4, part_rot)
VERTEX_IN(2, float, part_val)
VERTEX_OUT(overlay_particle_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_particle_vert.glsl")
FRAGMENT_SOURCE("overlay_particle_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -335,13 +335,13 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_particle_dot, overlay_particle_dot_base
GPU_SHADER_CREATE_INFO(overlay_particle_shape_base)
TYPEDEF_SOURCE("overlay_shader_shared.h")
SAMPLER(0, FLOAT_1D, weightTex)
PUSH_CONSTANT(VEC4, ucolor) /* Draw-size packed in alpha. */
PUSH_CONSTANT(INT, shape_type)
PUSH_CONSTANT(float4, ucolor) /* Draw-size packed in alpha. */
PUSH_CONSTANT(int, shape_type)
/* Use first attribute to only bind one buffer. */
STORAGE_BUF_FREQ(0, READ, ParticlePointData, part_pos[], GEOMETRY)
VERTEX_OUT(overlay_extra_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_particle_shape_vert.glsl")
FRAGMENT_SOURCE("overlay_particle_shape_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -352,14 +352,14 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_particle_shape, overlay_particle_shape_
GPU_SHADER_CREATE_INFO(overlay_particle_hair_base)
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
PUSH_CONSTANT(INT, colorType)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(BOOL, useColoring)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
PUSH_CONSTANT(int, colorType)
PUSH_CONSTANT(bool, isTransform)
PUSH_CONSTANT(bool, useColoring)
VERTEX_OUT(overlay_extra_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_particle_hair_vert.glsl")
FRAGMENT_SOURCE("overlay_particle_shape_frag.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -14,10 +14,10 @@
#include "overlay_common_info.hh"
GPU_SHADER_CREATE_INFO(overlay_facing_base)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_SOURCE("overlay_facing_vert.glsl")
FRAGMENT_SOURCE("overlay_facing_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_globals)
GPU_SHADER_CREATE_END()

View File

@@ -16,20 +16,20 @@
/* We use the normalized local position to avoid precision loss during interpolation. */
GPU_SHADER_INTERFACE_INFO(overlay_grid_iface)
SMOOTH(VEC3, local_pos)
SMOOTH(float3, local_pos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_grid_next)
DO_STATIC_COMPILATION()
TYPEDEF_SOURCE("overlay_shader_shared.h")
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(overlay_grid_iface)
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
SAMPLER(0, DEPTH_2D, depth_tx)
SAMPLER(1, DEPTH_2D, depth_infront_tx)
UNIFORM_BUF(3, OVERLAY_GridData, grid_buf)
PUSH_CONSTANT(VEC3, plane_axes)
PUSH_CONSTANT(INT, grid_flag)
PUSH_CONSTANT(float3, plane_axes)
PUSH_CONSTANT(int, grid_flag)
VERTEX_SOURCE("overlay_grid_vert.glsl")
FRAGMENT_SOURCE("overlay_grid_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -38,24 +38,24 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_grid_background)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
SAMPLER(0, DEPTH_2D, depthBuffer)
PUSH_CONSTANT(VEC4, ucolor)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(float4, ucolor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_tiled_image_borders_vert.glsl")
FRAGMENT_SOURCE("overlay_grid_background_frag.glsl")
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
ADDITIONAL_INFO(draw_globals)
DEFINE_VALUE("tile_pos", "vec3(0.0f)")
PUSH_CONSTANT(VEC3, tile_scale)
PUSH_CONSTANT(float3, tile_scale)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_grid_image)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(VEC4, ucolor)
FRAGMENT_OUT(0, VEC4, fragColor)
VERTEX_IN(0, float3, pos)
PUSH_CONSTANT(float4, ucolor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_edit_uv_tiled_image_borders_vert.glsl")
FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -28,21 +28,21 @@
* \{ */
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_outline_prepass_iface, interp)
FLAT(UINT, ob_id)
FLAT(uint, ob_id)
GPU_SHADER_NAMED_INTERFACE_END(interp)
GPU_SHADER_CREATE_INFO(overlay_outline_prepass)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(bool, isTransform)
VERTEX_OUT(overlay_outline_prepass_iface)
/* Using uint because 16bit uint can contain more ids than int. */
FRAGMENT_OUT(0, UINT, out_object_id)
FRAGMENT_OUT(0, uint, out_object_id)
FRAGMENT_SOURCE("overlay_outline_prepass_frag.glsl")
ADDITIONAL_INFO(draw_globals)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_outline_prepass_mesh)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_SOURCE("overlay_outline_prepass_vert.glsl")
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
@@ -54,7 +54,7 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_outline_prepass_mesh)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_outline_prepass_wire_iface, vert)
FLAT(VEC3, pos)
FLAT(float3, pos)
GPU_SHADER_NAMED_INTERFACE_END(vert)
GPU_SHADER_CREATE_INFO(overlay_outline_prepass_curves)
@@ -78,33 +78,33 @@ ADDITIONAL_INFO(draw_mesh)
ADDITIONAL_INFO(draw_object_infos)
ADDITIONAL_INFO(gpu_index_buffer_load)
STORAGE_BUF_FREQ(0, READ, float, pos[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_0)
VERTEX_SOURCE("overlay_outline_prepass_wire_vert.glsl")
GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_outline_prepass_wire)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_outline_prepass_gpencil_flat_iface, gp_interp_flat)
FLAT(VEC2, aspect)
FLAT(VEC4, sspos)
FLAT(float2, aspect)
FLAT(float4, sspos)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_flat)
GPU_SHADER_NAMED_INTERFACE_INFO(overlay_outline_prepass_gpencil_noperspective_iface,
gp_interp_noperspective)
NO_PERSPECTIVE(VEC2, thickness)
NO_PERSPECTIVE(FLOAT, hardness)
NO_PERSPECTIVE(float2, thickness)
NO_PERSPECTIVE(float, hardness)
GPU_SHADER_NAMED_INTERFACE_END(gp_interp_noperspective)
GPU_SHADER_CREATE_INFO(overlay_outline_prepass_gpencil)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(bool, isTransform)
VERTEX_OUT(overlay_outline_prepass_iface)
VERTEX_OUT(overlay_outline_prepass_gpencil_flat_iface)
VERTEX_OUT(overlay_outline_prepass_gpencil_noperspective_iface)
VERTEX_SOURCE("overlay_outline_prepass_gpencil_vert.glsl")
PUSH_CONSTANT(BOOL, gpStrokeOrder3d) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(VEC4, gpDepthPlane) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(bool, gpStrokeOrder3d) /* TODO(fclem): Move to a GPencil object UBO. */
PUSH_CONSTANT(float4, gpDepthPlane) /* TODO(fclem): Move to a GPencil object UBO. */
/* Using uint because 16bit uint can contain more ids than int. */
FRAGMENT_OUT(0, UINT, out_object_id)
FRAGMENT_OUT(0, uint, out_object_id)
FRAGMENT_SOURCE("overlay_outline_prepass_gpencil_frag.glsl")
DEPTH_WRITE(DepthWrite::ANY)
ADDITIONAL_INFO(draw_view)
@@ -137,15 +137,15 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_outline_prepass_pointcloud)
GPU_SHADER_CREATE_INFO(overlay_outline_detect)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(FLOAT, alphaOcclu)
PUSH_CONSTANT(BOOL, isXrayWires)
PUSH_CONSTANT(BOOL, doAntiAliasing)
PUSH_CONSTANT(BOOL, doThickOutlines)
PUSH_CONSTANT(float, alphaOcclu)
PUSH_CONSTANT(bool, isXrayWires)
PUSH_CONSTANT(bool, doAntiAliasing)
PUSH_CONSTANT(bool, doThickOutlines)
SAMPLER(0, UINT_2D, outlineId)
SAMPLER(1, DEPTH_2D, outlineDepth)
SAMPLER(2, DEPTH_2D, sceneDepth)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
FRAGMENT_SOURCE("overlay_outline_detect_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(draw_view)

View File

@@ -21,10 +21,10 @@
GPU_SHADER_CREATE_INFO(overlay_paint_face)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, nor) /* Select flag on the 4th component. */
PUSH_CONSTANT(VEC4, ucolor)
FRAGMENT_OUT(0, VEC4, fragColor)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, nor) /* Select flag on the 4th component. */
PUSH_CONSTANT(float4, ucolor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_paint_face_vert.glsl")
FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -43,15 +43,15 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_paint_face)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_overlay_paint_point_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_paint_point)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, nor) /* Select flag on the 4th component. */
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, nor) /* Select flag on the 4th component. */
VERTEX_OUT(overlay_overlay_paint_point_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_paint_point_vert.glsl")
FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -70,20 +70,20 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_paint_point)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_paint_texture_iface)
SMOOTH(VEC2, uv_interp)
SMOOTH(float2, uv_interp)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_paint_texture)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC2, mu) /* Masking uv map. */
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float2, mu) /* Masking uv map. */
VERTEX_OUT(overlay_paint_texture_iface)
SAMPLER(0, FLOAT_2D, maskImage)
PUSH_CONSTANT(VEC3, maskColor)
PUSH_CONSTANT(FLOAT, opacity) /* `1.0f` by default. */
PUSH_CONSTANT(BOOL, maskInvertStencil)
PUSH_CONSTANT(BOOL, maskImagePremultiplied)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(float3, maskColor)
PUSH_CONSTANT(float, opacity) /* `1.0f` by default. */
PUSH_CONSTANT(bool, maskInvertStencil)
PUSH_CONSTANT(bool, maskImagePremultiplied)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_paint_texture_vert.glsl")
FRAGMENT_SOURCE("overlay_paint_texture_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -103,21 +103,21 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_paint_texture)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_paint_weight_iface)
SMOOTH(VEC2, weight_interp) /* (weight, alert) */
SMOOTH(FLOAT, color_fac)
SMOOTH(float2, weight_interp) /* (weight, alert) */
SMOOTH(float, color_fac)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_paint_weight)
DO_STATIC_COMPILATION()
VERTEX_IN(0, FLOAT, weight)
VERTEX_IN(1, VEC3, pos)
VERTEX_IN(2, VEC3, nor)
VERTEX_IN(0, float, weight)
VERTEX_IN(1, float3, pos)
VERTEX_IN(2, float3, nor)
VERTEX_OUT(overlay_paint_weight_iface)
SAMPLER(0, FLOAT_1D, colorramp)
PUSH_CONSTANT(FLOAT, opacity) /* `1.0f` by default. */
PUSH_CONSTANT(BOOL, drawContours) /* `false` by default. */
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
PUSH_CONSTANT(float, opacity) /* `1.0f` by default. */
PUSH_CONSTANT(bool, drawContours) /* `false` by default. */
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_SOURCE("overlay_paint_weight_vert.glsl")
FRAGMENT_SOURCE("overlay_paint_weight_frag.glsl")
ADDITIONAL_INFO(draw_view)
@@ -131,7 +131,7 @@ GPU_SHADER_CREATE_INFO(overlay_paint_weight_fake_shading)
DO_STATIC_COMPILATION()
ADDITIONAL_INFO(overlay_paint_weight)
DEFINE("FAKE_SHADING")
PUSH_CONSTANT(VEC3, light_dir)
PUSH_CONSTANT(float3, light_dir)
GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_paint_weight_fake_shading)
@@ -146,16 +146,16 @@ OVERLAY_INFO_CLIP_VARIATION(overlay_paint_weight_fake_shading)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_paint_wire_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_paint_wire)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, nor) /* flag stored in w */
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, nor) /* flag stored in w */
VERTEX_OUT(overlay_paint_wire_iface)
PUSH_CONSTANT(BOOL, useSelect)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, useSelect)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_paint_wire_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -17,18 +17,18 @@
#include "overlay_common_info.hh"
GPU_SHADER_INTERFACE_INFO(overlay_sculpt_curves_selection_iface)
SMOOTH(FLOAT, mask_weight)
SMOOTH(float, mask_weight)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_sculpt_curves_selection)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(BOOL, is_point_domain)
PUSH_CONSTANT(FLOAT, selection_opacity)
PUSH_CONSTANT(bool, is_point_domain)
PUSH_CONSTANT(float, selection_opacity)
SAMPLER(1, FLOAT_BUFFER, selection_tx)
VERTEX_OUT(overlay_sculpt_curves_selection_iface)
VERTEX_SOURCE("overlay_sculpt_curves_selection_vert.glsl")
FRAGMENT_SOURCE("overlay_sculpt_curves_selection_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(0, float4, out_color)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
ADDITIONAL_INFO(draw_globals)
@@ -38,19 +38,19 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_CLIP_VARIATION(overlay_sculpt_curves_selection)
GPU_SHADER_INTERFACE_INFO(overlay_sculpt_curves_cage_iface)
NO_PERSPECTIVE(VEC2, edgePos)
FLAT(VEC2, edgeStart)
SMOOTH(VEC4, finalColor)
NO_PERSPECTIVE(float2, edgePos)
FLAT(float2, edgeStart)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_sculpt_curves_cage)
DO_STATIC_COMPILATION()
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, FLOAT, selection)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float, selection)
VERTEX_OUT(overlay_sculpt_curves_cage_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
PUSH_CONSTANT(FLOAT, opacity)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
PUSH_CONSTANT(float, opacity)
VERTEX_SOURCE("overlay_sculpt_curves_cage_vert.glsl")
FRAGMENT_SOURCE("overlay_extra_frag.glsl")
ADDITIONAL_INFO(draw_view)

View File

@@ -14,22 +14,22 @@
#include "overlay_common_info.hh"
GPU_SHADER_INTERFACE_INFO(overlay_sculpt_mask_iface)
FLAT(VEC3, faceset_color)
SMOOTH(FLOAT, mask_color)
SMOOTH(VEC4, finalColor)
FLAT(float3, faceset_color)
SMOOTH(float, mask_color)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_sculpt_mask)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(FLOAT, maskOpacity)
PUSH_CONSTANT(FLOAT, faceSetsOpacity)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, fset)
VERTEX_IN(2, FLOAT, msk)
PUSH_CONSTANT(float, maskOpacity)
PUSH_CONSTANT(float, faceSetsOpacity)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, fset)
VERTEX_IN(2, float, msk)
VERTEX_OUT(overlay_sculpt_mask_iface)
VERTEX_SOURCE("overlay_sculpt_mask_vert.glsl")
FRAGMENT_SOURCE("overlay_sculpt_mask_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_modelmat)
ADDITIONAL_INFO(draw_globals)

View File

@@ -21,21 +21,21 @@
#include "overlay_common_info.hh"
GPU_SHADER_INTERFACE_INFO(overlay_viewer_attribute_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_viewer_attribute_common)
PUSH_CONSTANT(FLOAT, opacity)
PUSH_CONSTANT(float, opacity)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(overlay_viewer_attribute_mesh)
DO_STATIC_COMPILATION()
VERTEX_SOURCE("overlay_viewer_attribute_mesh_vert.glsl")
FRAGMENT_SOURCE("overlay_viewer_attribute_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(1, VEC4, lineOutput)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, attribute_value)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, attribute_value)
VERTEX_OUT(overlay_viewer_attribute_iface)
ADDITIONAL_INFO(overlay_viewer_attribute_common)
ADDITIONAL_INFO(draw_view)
@@ -49,8 +49,8 @@ GPU_SHADER_CREATE_INFO(overlay_viewer_attribute_pointcloud)
DO_STATIC_COMPILATION()
VERTEX_SOURCE("overlay_viewer_attribute_pointcloud_vert.glsl")
FRAGMENT_SOURCE("overlay_viewer_attribute_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_OUT(1, float4, lineOutput)
SAMPLER(3, FLOAT_BUFFER, attribute_tx)
VERTEX_OUT(overlay_viewer_attribute_iface)
ADDITIONAL_INFO(overlay_viewer_attribute_common)
@@ -66,10 +66,10 @@ GPU_SHADER_CREATE_INFO(overlay_viewer_attribute_curve)
DO_STATIC_COMPILATION()
VERTEX_SOURCE("overlay_viewer_attribute_curve_vert.glsl")
FRAGMENT_SOURCE("overlay_viewer_attribute_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(1, VEC4, lineOutput)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, attribute_value)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_OUT(1, float4, lineOutput)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, attribute_value)
VERTEX_OUT(overlay_viewer_attribute_iface)
ADDITIONAL_INFO(overlay_viewer_attribute_common)
ADDITIONAL_INFO(draw_view)
@@ -83,10 +83,10 @@ GPU_SHADER_CREATE_INFO(overlay_viewer_attribute_curves)
DO_STATIC_COMPILATION()
VERTEX_SOURCE("overlay_viewer_attribute_curves_vert.glsl")
FRAGMENT_SOURCE("overlay_viewer_attribute_frag.glsl")
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_OUT(1, float4, lineOutput)
SAMPLER(1, FLOAT_BUFFER, color_tx)
PUSH_CONSTANT(BOOL, is_point_domain)
PUSH_CONSTANT(bool, is_point_domain)
VERTEX_OUT(overlay_viewer_attribute_iface)
ADDITIONAL_INFO(overlay_viewer_attribute_common)
ADDITIONAL_INFO(draw_hair)

View File

@@ -22,27 +22,27 @@
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_volume_velocity_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_volume_velocity)
SAMPLER(0, FLOAT_3D, velocityX)
SAMPLER(1, FLOAT_3D, velocityY)
SAMPLER(2, FLOAT_3D, velocityZ)
PUSH_CONSTANT(FLOAT, displaySize)
PUSH_CONSTANT(FLOAT, slicePosition)
PUSH_CONSTANT(INT, sliceAxis)
PUSH_CONSTANT(BOOL, scaleWithMagnitude)
PUSH_CONSTANT(BOOL, isCellCentered)
PUSH_CONSTANT(float, displaySize)
PUSH_CONSTANT(float, slicePosition)
PUSH_CONSTANT(int, sliceAxis)
PUSH_CONSTANT(bool, scaleWithMagnitude)
PUSH_CONSTANT(bool, isCellCentered)
/* FluidDomainSettings.cell_size */
PUSH_CONSTANT(VEC3, cellSize)
PUSH_CONSTANT(float3, cellSize)
/* FluidDomainSettings.p0 */
PUSH_CONSTANT(VEC3, domainOriginOffset)
PUSH_CONSTANT(float3, domainOriginOffset)
/* FluidDomainSettings.res_min */
PUSH_CONSTANT(IVEC3, adaptiveCellOffset)
PUSH_CONSTANT(INT, in_select_id)
PUSH_CONSTANT(int3, adaptiveCellOffset)
PUSH_CONSTANT(int, in_select_id)
VERTEX_OUT(overlay_volume_velocity_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_volume_velocity_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
GPU_SHADER_CREATE_END()
@@ -59,9 +59,9 @@ OVERLAY_INFO_SELECT_VARIATION(overlay_volume_velocity_streamline)
GPU_SHADER_CREATE_INFO(overlay_volume_velocity_mac)
DO_STATIC_COMPILATION()
DEFINE("USE_MAC")
PUSH_CONSTANT(BOOL, drawMACX)
PUSH_CONSTANT(BOOL, drawMACY)
PUSH_CONSTANT(BOOL, drawMACZ)
PUSH_CONSTANT(bool, drawMACX)
PUSH_CONSTANT(bool, drawMACY)
PUSH_CONSTANT(bool, drawMACZ)
ADDITIONAL_INFO(draw_volume)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(overlay_volume_velocity)
@@ -86,23 +86,23 @@ OVERLAY_INFO_SELECT_VARIATION(overlay_volume_velocity_needle)
* \{ */
GPU_SHADER_INTERFACE_INFO(overlay_volume_gridlines_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_volume_gridlines)
PUSH_CONSTANT(FLOAT, slicePosition)
PUSH_CONSTANT(INT, sliceAxis)
PUSH_CONSTANT(float, slicePosition)
PUSH_CONSTANT(int, sliceAxis)
/* FluidDomainSettings.res */
PUSH_CONSTANT(IVEC3, volumeSize)
PUSH_CONSTANT(int3, volumeSize)
/* FluidDomainSettings.cell_size */
PUSH_CONSTANT(VEC3, cellSize)
PUSH_CONSTANT(float3, cellSize)
/* FluidDomainSettings.p0 */
PUSH_CONSTANT(VEC3, domainOriginOffset)
PUSH_CONSTANT(float3, domainOriginOffset)
/* FluidDomainSettings.res_min */
PUSH_CONSTANT(IVEC3, adaptiveCellOffset)
PUSH_CONSTANT(INT, in_select_id)
PUSH_CONSTANT(int3, adaptiveCellOffset)
PUSH_CONSTANT(int, in_select_id)
VERTEX_OUT(overlay_volume_gridlines_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("overlay_volume_gridlines_vert.glsl")
FRAGMENT_SOURCE("overlay_varying_color.glsl")
GPU_SHADER_CREATE_END()
@@ -130,10 +130,10 @@ OVERLAY_INFO_SELECT_VARIATION(overlay_volume_gridlines_flags)
GPU_SHADER_CREATE_INFO(overlay_volume_gridlines_range)
DO_STATIC_COMPILATION()
DEFINE("SHOW_RANGE")
PUSH_CONSTANT(FLOAT, lowerBound)
PUSH_CONSTANT(FLOAT, upperBound)
PUSH_CONSTANT(VEC4, rangeColor)
PUSH_CONSTANT(INT, cellFilter)
PUSH_CONSTANT(float, lowerBound)
PUSH_CONSTANT(float, upperBound)
PUSH_CONSTANT(float4, rangeColor)
PUSH_CONSTANT(int, cellFilter)
SAMPLER(0, UINT_3D, flagTexture)
SAMPLER(1, FLOAT_3D, fieldTexture)
ADDITIONAL_INFO(draw_volume)

View File

@@ -18,32 +18,32 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(overlay_wireframe_iface)
SMOOTH(VEC4, finalColor)
FLAT(VEC2, edgeStart)
NO_PERSPECTIVE(VEC2, edgePos)
SMOOTH(float4, finalColor)
FLAT(float2, edgeStart)
NO_PERSPECTIVE(float2, edgePos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_wireframe_base)
PUSH_CONSTANT(FLOAT, ndc_offset_factor)
PUSH_CONSTANT(FLOAT, wireStepParam)
PUSH_CONSTANT(FLOAT, wireOpacity)
PUSH_CONSTANT(BOOL, useColoring)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(INT, colorType)
PUSH_CONSTANT(BOOL, isHair)
PUSH_CONSTANT(MAT4, hairDupliMatrix)
PUSH_CONSTANT(float, ndc_offset_factor)
PUSH_CONSTANT(float, wireStepParam)
PUSH_CONSTANT(float, wireOpacity)
PUSH_CONSTANT(bool, useColoring)
PUSH_CONSTANT(bool, isTransform)
PUSH_CONSTANT(int, colorType)
PUSH_CONSTANT(bool, isHair)
PUSH_CONSTANT(float4x4, hairDupliMatrix)
/* Scene Depth texture copy for manual depth test. */
SAMPLER(0, DEPTH_2D, depthTex)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(2, FLOAT, wd) /* wire-data. */
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
VERTEX_IN(2, float, wd) /* wire-data. */
VERTEX_OUT(overlay_wireframe_iface)
VERTEX_SOURCE("overlay_wireframe_vert.glsl")
FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
DEPTH_WRITE(DepthWrite::ANY)
SPECIALIZATION_CONSTANT(BOOL, use_custom_depth_bias, true)
SPECIALIZATION_CONSTANT(bool, use_custom_depth_bias, true)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_object_infos)
ADDITIONAL_INFO(draw_globals)
@@ -53,17 +53,17 @@ OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe, overlay_wireframe_base)
GPU_SHADER_CREATE_INFO(overlay_wireframe_curve_base)
DEFINE("CURVES")
PUSH_CONSTANT(FLOAT, ndc_offset_factor)
PUSH_CONSTANT(FLOAT, wireOpacity)
PUSH_CONSTANT(BOOL, useColoring)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(INT, colorType)
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(float, ndc_offset_factor)
PUSH_CONSTANT(float, wireOpacity)
PUSH_CONSTANT(bool, useColoring)
PUSH_CONSTANT(bool, isTransform)
PUSH_CONSTANT(int, colorType)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(overlay_wireframe_iface)
VERTEX_SOURCE("overlay_wireframe_vert.glsl")
FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_object_infos)
ADDITIONAL_INFO(draw_globals)
@@ -72,22 +72,22 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe_curve, overlay_wireframe_curve_base)
GPU_SHADER_INTERFACE_INFO(overlay_wireframe_points_iface)
FLAT(VEC4, finalColor)
FLAT(VEC4, finalColorInner)
FLAT(float4, finalColor)
FLAT(float4, finalColorInner)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_wireframe_points_base)
DEFINE("POINTS")
PUSH_CONSTANT(FLOAT, ndc_offset_factor)
PUSH_CONSTANT(BOOL, useColoring)
PUSH_CONSTANT(BOOL, isTransform)
PUSH_CONSTANT(INT, colorType)
VERTEX_IN(0, VEC3, pos)
PUSH_CONSTANT(float, ndc_offset_factor)
PUSH_CONSTANT(bool, useColoring)
PUSH_CONSTANT(bool, isTransform)
PUSH_CONSTANT(int, colorType)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(overlay_wireframe_points_iface)
VERTEX_SOURCE("overlay_wireframe_vert.glsl")
FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(1, VEC4, lineOutput)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_OUT(1, float4, lineOutput)
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_object_infos)
ADDITIONAL_INFO(draw_globals)
@@ -96,24 +96,24 @@ GPU_SHADER_CREATE_END()
OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe_points, overlay_wireframe_points_base)
GPU_SHADER_INTERFACE_INFO(overlay_edit_uv_iface_wireframe)
SMOOTH(FLOAT, selectionFac)
FLAT(VEC2, stippleStart)
NO_PERSPECTIVE(FLOAT, edgeCoord)
NO_PERSPECTIVE(VEC2, stipplePos)
SMOOTH(float, selectionFac)
FLAT(float2, stippleStart)
NO_PERSPECTIVE(float, edgeCoord)
NO_PERSPECTIVE(float2, stipplePos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(overlay_wireframe_uv)
DO_STATIC_COMPILATION()
DEFINE("WIREFRAME")
STORAGE_BUF_FREQ(0, READ, float, au[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(int2, gpu_attr_0)
DEFINE_VALUE("lineStyle", "4" /* OVERLAY_UV_LINE_STYLE_SHADOW */)
DEFINE_VALUE("dashLength", "1" /* Not used by this line style */)
DEFINE_VALUE("use_edge_select", "false")
PUSH_CONSTANT(BOOL, doSmoothWire)
PUSH_CONSTANT(FLOAT, alpha)
PUSH_CONSTANT(bool, doSmoothWire)
PUSH_CONSTANT(float, alpha)
VERTEX_OUT(overlay_edit_uv_iface_wireframe)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
/* Note: Reuse edit mode shader as it is mostly the same. */
VERTEX_SOURCE("overlay_edit_uv_edges_vert.glsl")
FRAGMENT_SOURCE("overlay_edit_uv_edges_frag.glsl")

View File

@@ -10,17 +10,17 @@
* \{ */
GPU_SHADER_INTERFACE_INFO(select_id_iface)
FLAT(INT, select_id)
FLAT(int, select_id)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(select_id_flat)
PUSH_CONSTANT(FLOAT, vertex_size)
PUSH_CONSTANT(INT, offset)
PUSH_CONSTANT(FLOAT, retopologyOffset)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, INT, index)
PUSH_CONSTANT(float, vertex_size)
PUSH_CONSTANT(int, offset)
PUSH_CONSTANT(float, retopologyOffset)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, int, index)
VERTEX_OUT(select_id_iface)
FRAGMENT_OUT(0, UINT, fragColor)
FRAGMENT_OUT(0, uint, fragColor)
VERTEX_SOURCE("select_id_vert.glsl")
FRAGMENT_SOURCE("select_id_frag.glsl")
ADDITIONAL_INFO(draw_modelmat)
@@ -30,11 +30,11 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(select_id_uniform)
DEFINE("UNIFORM_ID")
PUSH_CONSTANT(FLOAT, vertex_size)
PUSH_CONSTANT(INT, select_id)
PUSH_CONSTANT(FLOAT, retopologyOffset)
VERTEX_IN(0, VEC3, pos)
FRAGMENT_OUT(0, UINT, fragColor)
PUSH_CONSTANT(float, vertex_size)
PUSH_CONSTANT(int, select_id)
PUSH_CONSTANT(float, retopologyOffset)
VERTEX_IN(0, float3, pos)
FRAGMENT_OUT(0, uint, fragColor)
VERTEX_SOURCE("select_id_vert.glsl")
FRAGMENT_SOURCE("select_id_frag.glsl")
ADDITIONAL_INFO(draw_modelmat)
@@ -64,6 +64,6 @@ GPU_SHADER_CREATE_INFO(select_debug_fullscreen)
ADDITIONAL_INFO(draw_fullscreen)
FRAGMENT_SOURCE("select_debug_frag.glsl")
SAMPLER(0, UINT_2D, image)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -34,8 +34,8 @@ SAMPLER(4, FLOAT_2D, normal_tx)
SAMPLER(5, FLOAT_2D, material_tx)
UNIFORM_BUF(WB_WORLD_SLOT, WorldData, world_data)
TYPEDEF_SOURCE("workbench_shader_shared.h")
PUSH_CONSTANT(BOOL, forceShadowing)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(bool, forceShadowing)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("workbench_composite_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(draw_view)

View File

@@ -27,7 +27,7 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_extract_stencil)
FRAGMENT_OUT(0, UINT, out_stencil_value)
FRAGMENT_OUT(0, uint, out_stencil_value)
FRAGMENT_SOURCE("workbench_extract_stencil.glsl")
ADDITIONAL_INFO(draw_fullscreen)
DO_STATIC_COMPILATION()

View File

@@ -24,8 +24,8 @@
GPU_SHADER_CREATE_INFO(workbench_taa)
SAMPLER(0, FLOAT_2D, colorBuffer)
PUSH_CONSTANT_ARRAY(FLOAT, samplesWeights, 9)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT_ARRAY(float, samplesWeights, 9)
FRAGMENT_OUT(0, float4, fragColor)
FRAGMENT_SOURCE("workbench_effect_taa_frag.glsl")
ADDITIONAL_INFO(draw_fullscreen)
DO_STATIC_COMPILATION()
@@ -38,9 +38,9 @@ GPU_SHADER_CREATE_END()
* \{ */
GPU_SHADER_INTERFACE_INFO(workbench_smaa_iface)
SMOOTH(VEC2, uvs)
SMOOTH(VEC2, pixcoord)
SMOOTH(VEC4, offset[3])
SMOOTH(float2, uvs)
SMOOTH(float2, pixcoord)
SMOOTH(float4, offset[3])
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(workbench_smaa)
@@ -50,7 +50,7 @@ DEFINE("SMAA_PRESET_HIGH")
DEFINE_VALUE("SMAA_LUMA_WEIGHT", "float4(1.0f, 1.0f, 1.0f, 1.0f)")
DEFINE("SMAA_NO_DISCARD")
VERTEX_OUT(workbench_smaa_iface)
PUSH_CONSTANT(VEC4, viewportMetrics)
PUSH_CONSTANT(float4, viewportMetrics)
VERTEX_SOURCE("workbench_effect_smaa_vert.glsl")
FRAGMENT_SOURCE("workbench_effect_smaa_frag.glsl")
GPU_SHADER_CREATE_END()
@@ -58,7 +58,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_smaa_stage_0)
DEFINE_VALUE("SMAA_STAGE", "0")
SAMPLER(0, FLOAT_2D, colorTex)
FRAGMENT_OUT(0, VEC2, out_edges)
FRAGMENT_OUT(0, float2, out_edges)
ADDITIONAL_INFO(workbench_smaa)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -68,7 +68,7 @@ DEFINE_VALUE("SMAA_STAGE", "1")
SAMPLER(0, FLOAT_2D, edgesTex)
SAMPLER(1, FLOAT_2D, areaTex)
SAMPLER(2, FLOAT_2D, searchTex)
FRAGMENT_OUT(0, VEC4, out_weights)
FRAGMENT_OUT(0, float4, out_weights)
ADDITIONAL_INFO(workbench_smaa)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -77,9 +77,9 @@ GPU_SHADER_CREATE_INFO(workbench_smaa_stage_2)
DEFINE_VALUE("SMAA_STAGE", "2")
SAMPLER(0, FLOAT_2D, colorTex)
SAMPLER(1, FLOAT_2D, blendTex)
PUSH_CONSTANT(FLOAT, mixFactor)
PUSH_CONSTANT(FLOAT, taaAccumulatedWeight)
FRAGMENT_OUT(0, VEC4, out_color)
PUSH_CONSTANT(float, mixFactor)
PUSH_CONSTANT(float, taaAccumulatedWeight)
FRAGMENT_OUT(0, float4, out_color)
ADDITIONAL_INFO(workbench_smaa)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -33,10 +33,10 @@
*/
GPU_SHADER_CREATE_INFO(workbench_effect_dof)
PUSH_CONSTANT(VEC2, invertedViewportSize)
PUSH_CONSTANT(VEC2, nearFar)
PUSH_CONSTANT(VEC3, dofParams)
PUSH_CONSTANT(FLOAT, noiseOffset)
PUSH_CONSTANT(float2, invertedViewportSize)
PUSH_CONSTANT(float2, nearFar)
PUSH_CONSTANT(float3, dofParams)
PUSH_CONSTANT(float, noiseOffset)
ADDITIONAL_INFO(draw_fullscreen)
ADDITIONAL_INFO(draw_view)
GPU_SHADER_CREATE_END()
@@ -44,8 +44,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_effect_dof_prepare)
SAMPLER(1, FLOAT_2D, sceneColorTex)
SAMPLER(2, FLOAT_2D, sceneDepthTex)
FRAGMENT_OUT(0, VEC4, halfResColor)
FRAGMENT_OUT(1, VEC2, normalizedCoc)
FRAGMENT_OUT(0, float4, halfResColor)
FRAGMENT_OUT(1, float2, normalizedCoc)
FRAGMENT_SOURCE("workbench_effect_dof_prepare_frag.glsl")
ADDITIONAL_INFO(workbench_effect_dof)
DO_STATIC_COMPILATION()
@@ -54,8 +54,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_effect_dof_downsample)
SAMPLER(0, FLOAT_2D, inputCocTex)
SAMPLER(1, FLOAT_2D, sceneColorTex)
FRAGMENT_OUT(0, VEC4, outColor)
FRAGMENT_OUT(1, VEC2, outCocs)
FRAGMENT_OUT(0, float4, outColor)
FRAGMENT_OUT(1, float2, outCocs)
FRAGMENT_SOURCE("workbench_effect_dof_downsample_frag.glsl")
ADDITIONAL_INFO(workbench_effect_dof)
DO_STATIC_COMPILATION()
@@ -67,7 +67,7 @@ SAMPLER(0, FLOAT_2D, inputCocTex)
SAMPLER(3, FLOAT_2D, halfResColorTex)
SAMPLER(5, FLOAT_2D, noiseTex)
UNIFORM_BUF(1, vec4, samples[49])
FRAGMENT_OUT(0, VEC4, blurColor)
FRAGMENT_OUT(0, float4, blurColor)
FRAGMENT_SOURCE("workbench_effect_dof_blur1_frag.glsl")
ADDITIONAL_INFO(workbench_effect_dof)
DO_STATIC_COMPILATION()
@@ -76,7 +76,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_effect_dof_blur2)
SAMPLER(0, FLOAT_2D, inputCocTex)
SAMPLER(4, FLOAT_2D, blurTex)
FRAGMENT_OUT(0, VEC4, finalColor)
FRAGMENT_OUT(0, float4, finalColor)
FRAGMENT_SOURCE("workbench_effect_dof_blur2_frag.glsl")
ADDITIONAL_INFO(workbench_effect_dof)
DO_STATIC_COMPILATION()
@@ -86,8 +86,8 @@ GPU_SHADER_CREATE_INFO(workbench_effect_dof_resolve)
SAMPLER(1, FLOAT_2D, sceneColorTex)
SAMPLER(2, FLOAT_2D, sceneDepthTex)
SAMPLER(3, FLOAT_2D, halfResColorTex)
FRAGMENT_OUT_DUAL(0, VEC4, finalColorAdd, SRC_0)
FRAGMENT_OUT_DUAL(0, VEC4, finalColorMul, SRC_1)
FRAGMENT_OUT_DUAL(0, float4, finalColorAdd, SRC_0)
FRAGMENT_OUT_DUAL(0, float4, finalColorMul, SRC_1)
FRAGMENT_SOURCE("workbench_effect_dof_resolve_frag.glsl")
ADDITIONAL_INFO(workbench_effect_dof)
DO_STATIC_COMPILATION()

View File

@@ -18,7 +18,7 @@ TYPEDEF_SOURCE("workbench_shader_shared.h")
FRAGMENT_SOURCE("workbench_effect_outline_frag.glsl")
SAMPLER(0, UINT_2D, objectIdBuffer)
UNIFORM_BUF(WB_WORLD_SLOT, WorldData, world_data)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
ADDITIONAL_INFO(draw_fullscreen)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -35,10 +35,10 @@
* \{ */
GPU_SHADER_CREATE_INFO(workbench_mesh)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(2, VEC4, ac)
VERTEX_IN(3, VEC2, au)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
VERTEX_IN(2, float4, ac)
VERTEX_IN(3, float2, au)
VERTEX_SOURCE("workbench_prepass_vert.glsl")
ADDITIONAL_INFO(draw_modelmat_with_custom_id)
GPU_SHADER_CREATE_END()
@@ -46,7 +46,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_curves)
SAMPLER_FREQ(WB_CURVES_COLOR_SLOT, FLOAT_BUFFER, ac, BATCH)
SAMPLER_FREQ(WB_CURVES_UV_SLOT, FLOAT_BUFFER, au, BATCH)
PUSH_CONSTANT(INT, emitter_object_id)
PUSH_CONSTANT(int, emitter_object_id)
VERTEX_SOURCE("workbench_prepass_hair_vert.glsl")
ADDITIONAL_INFO(draw_modelmat_with_custom_id)
ADDITIONAL_INFO(draw_hair)
@@ -82,13 +82,13 @@ GPU_SHADER_CREATE_END()
* \{ */
GPU_SHADER_INTERFACE_INFO(workbench_material_iface)
SMOOTH(VEC3, normal_interp)
SMOOTH(VEC3, color_interp)
SMOOTH(FLOAT, alpha_interp)
SMOOTH(VEC2, uv_interp)
FLAT(INT, object_id)
FLAT(FLOAT, _roughness)
FLAT(FLOAT, metallic)
SMOOTH(float3, normal_interp)
SMOOTH(float3, color_interp)
SMOOTH(float, alpha_interp)
SMOOTH(float2, uv_interp)
FLAT(int, object_id)
FLAT(float, _roughness)
FLAT(float, metallic)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(workbench_color_material)
@@ -104,9 +104,9 @@ STORAGE_BUF(WB_MATERIAL_SLOT, READ, vec4, materials_data[])
SAMPLER_FREQ(WB_TEXTURE_SLOT, FLOAT_2D, imageTexture, BATCH)
SAMPLER_FREQ(WB_TILE_ARRAY_SLOT, FLOAT_2D_ARRAY, imageTileArray, BATCH)
SAMPLER_FREQ(WB_TILE_DATA_SLOT, FLOAT_1D_ARRAY, imageTileData, BATCH)
PUSH_CONSTANT(BOOL, isImageTile)
PUSH_CONSTANT(BOOL, imagePremult)
PUSH_CONSTANT(FLOAT, imageTransparencyCutoff)
PUSH_CONSTANT(bool, isImageTile)
PUSH_CONSTANT(bool, imagePremult)
PUSH_CONSTANT(float, imageTransparencyCutoff)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_color_vertex)
@@ -128,18 +128,18 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_transparent_accum)
/* NOTE: Blending will be skipped on objectId because output is a
* non-normalized integer buffer. */
FRAGMENT_OUT(0, VEC4, out_transparent_accum)
FRAGMENT_OUT(1, VEC4, out_revealage_accum)
FRAGMENT_OUT(2, UINT, out_object_id)
PUSH_CONSTANT(BOOL, forceShadowing)
FRAGMENT_OUT(0, float4, out_transparent_accum)
FRAGMENT_OUT(1, float4, out_revealage_accum)
FRAGMENT_OUT(2, uint, out_object_id)
PUSH_CONSTANT(bool, forceShadowing)
TYPEDEF_SOURCE("workbench_shader_shared.h")
FRAGMENT_SOURCE("workbench_transparent_accum_frag.glsl")
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_opaque)
FRAGMENT_OUT(0, VEC4, out_material)
FRAGMENT_OUT(1, VEC2, out_normal)
FRAGMENT_OUT(2, UINT, out_object_id)
FRAGMENT_OUT(0, float4, out_material)
FRAGMENT_OUT(1, float2, out_normal)
FRAGMENT_OUT(2, uint, out_object_id)
TYPEDEF_SOURCE("workbench_shader_shared.h")
FRAGMENT_SOURCE("workbench_prepass_frag.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -31,7 +31,7 @@
GPU_SHADER_CREATE_INFO(workbench_shadow_common)
STORAGE_BUF_FREQ(3, READ, float, pos[], GEOMETRY)
/* WORKAROUND: Needed to support OpenSubdiv vertex format. Should be removed. */
PUSH_CONSTANT(IVEC2, gpu_attr_3)
PUSH_CONSTANT(int2, gpu_attr_3)
UNIFORM_BUF(1, ShadowPassData, pass_data)
TYPEDEF_SOURCE("workbench_shader_shared.h")
ADDITIONAL_INFO(gpu_index_buffer_load)
@@ -44,11 +44,11 @@ LOCAL_GROUP_SIZE(DRW_VISIBILITY_GROUP_SIZE)
DEFINE_VALUE("DRW_VIEW_LEN", "64")
STORAGE_BUF(0, READ, ObjectBounds, bounds_buf[])
UNIFORM_BUF(2, ExtrudedFrustum, extruded_frustum)
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(INT, view_len)
PUSH_CONSTANT(INT, visibility_word_per_draw)
PUSH_CONSTANT(BOOL, force_fail_method)
PUSH_CONSTANT(VEC3, shadow_direction)
PUSH_CONSTANT(int, resource_len)
PUSH_CONSTANT(int, view_len)
PUSH_CONSTANT(int, visibility_word_per_draw)
PUSH_CONSTANT(bool, force_fail_method)
PUSH_CONSTANT(float3, shadow_direction)
TYPEDEF_SOURCE("workbench_shader_shared.h")
COMPUTE_SOURCE("workbench_shadow_visibility_comp.glsl")
ADDITIONAL_INFO(draw_view)
@@ -80,7 +80,7 @@ FRAGMENT_SOURCE("gpu_shader_depth_only_frag.glsl")
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_shadow_debug)
FRAGMENT_OUT(0, VEC4, out_debug_color)
FRAGMENT_OUT(0, float4, out_debug_color)
FRAGMENT_SOURCE("workbench_shadow_debug_frag.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -12,7 +12,7 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(workbench_transparent_resolve)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
SAMPLER(0, FLOAT_2D, transparentAccum)
SAMPLER(1, FLOAT_2D, transparentRevealage)
FRAGMENT_SOURCE("workbench_transparent_resolve_frag.glsl")

View File

@@ -27,15 +27,15 @@
* \{ */
GPU_SHADER_CREATE_INFO(workbench_volume_common)
VERTEX_IN(0, VEC3, pos)
FRAGMENT_OUT(0, VEC4, fragColor)
VERTEX_IN(0, float3, pos)
FRAGMENT_OUT(0, float4, fragColor)
SAMPLER(0, DEPTH_2D, depthBuffer)
SAMPLER(1, FLOAT_3D, densityTexture)
PUSH_CONSTANT(INT, samplesLen)
PUSH_CONSTANT(FLOAT, noiseOfs)
PUSH_CONSTANT(FLOAT, stepLength)
PUSH_CONSTANT(FLOAT, densityScale)
PUSH_CONSTANT(BOOL, do_depth_test)
PUSH_CONSTANT(int, samplesLen)
PUSH_CONSTANT(float, noiseOfs)
PUSH_CONSTANT(float, stepLength)
PUSH_CONSTANT(float, densityScale)
PUSH_CONSTANT(bool, do_depth_test)
VERTEX_SOURCE("workbench_volume_vert.glsl")
FRAGMENT_SOURCE("workbench_volume_frag.glsl")
GPU_SHADER_CREATE_END()
@@ -61,9 +61,9 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_volume_object_common)
DEFINE("VOLUME_OBJECT")
PUSH_CONSTANT(MAT4, volumeTextureToObject)
PUSH_CONSTANT(float4x4, volumeTextureToObject)
/* FIXME(fclem): This overflow the push_constant limit. */
PUSH_CONSTANT(MAT4, volumeObjectToTexture)
PUSH_CONSTANT(float4x4, volumeObjectToTexture)
ADDITIONAL_INFO(draw_resource_id_varying)
GPU_SHADER_CREATE_END()
@@ -87,15 +87,15 @@ GPU_SHADER_CREATE_INFO(workbench_volume_coba)
DEFINE("USE_COBA")
SAMPLER(4, UINT_3D, flagTexture)
SAMPLER(5, FLOAT_1D, transferTexture)
PUSH_CONSTANT(BOOL, showPhi)
PUSH_CONSTANT(BOOL, showFlags)
PUSH_CONSTANT(BOOL, showPressure)
PUSH_CONSTANT(FLOAT, gridScale)
PUSH_CONSTANT(bool, showPhi)
PUSH_CONSTANT(bool, showFlags)
PUSH_CONSTANT(bool, showPressure)
PUSH_CONSTANT(float, gridScale)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(workbench_volume_no_coba)
SAMPLER(4, FLOAT_3D, shadowTexture)
PUSH_CONSTANT(VEC3, activeColor)
PUSH_CONSTANT(float3, activeColor)
GPU_SHADER_CREATE_END()
/** \} */
@@ -121,15 +121,15 @@ GPU_SHADER_CREATE_END()
* \{ */
GPU_SHADER_INTERFACE_INFO(workbench_volume_iface)
SMOOTH(VEC3, localPos)
SMOOTH(float3, localPos)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(workbench_volume_slice)
DEFINE("VOLUME_SLICE")
VERTEX_IN(1, VEC3, uvs)
VERTEX_IN(1, float3, uvs)
VERTEX_OUT(workbench_volume_iface)
PUSH_CONSTANT(INT, sliceAxis) /* -1 is no slice. */
PUSH_CONSTANT(FLOAT, slicePosition)
PUSH_CONSTANT(int, sliceAxis) /* -1 is no slice. */
PUSH_CONSTANT(float, slicePosition)
GPU_SHADER_CREATE_END()
/** \} */

View File

@@ -26,9 +26,9 @@ STORAGE_BUF(DRW_DEBUG_DRAW_SLOT, READ_WRITE, DRWDebugVertPair, drw_debug_lines_b
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(draw_debug_draw_display_iface)
NO_PERSPECTIVE(VEC2, edge_pos)
FLAT(VEC2, edge_start)
FLAT(VEC4, final_color)
NO_PERSPECTIVE(float2, edge_pos)
FLAT(float2, edge_start)
FLAT(float4, final_color)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(draw_debug_draw_display)
@@ -37,10 +37,10 @@ TYPEDEF_SOURCE("draw_shader_shared.hh")
STORAGE_BUF(DRW_DEBUG_DRAW_SLOT, READ, DRWDebugVertPair, in_debug_lines_buf[])
STORAGE_BUF(DRW_DEBUG_DRAW_FEEDBACK_SLOT, READ_WRITE, DRWDebugVertPair, out_debug_lines_buf[])
VERTEX_OUT(draw_debug_draw_display_iface)
FRAGMENT_OUT(0, VEC4, out_color)
FRAGMENT_OUT(1, VEC4, out_line_data)
PUSH_CONSTANT(MAT4, persmat)
PUSH_CONSTANT(VEC2, size_viewport)
FRAGMENT_OUT(0, float4, out_color)
FRAGMENT_OUT(1, float4, out_line_data)
PUSH_CONSTANT(float4x4, persmat)
PUSH_CONSTANT(float2, size_viewport)
VERTEX_SOURCE("draw_debug_draw_display_vert.glsl")
FRAGMENT_SOURCE("draw_debug_draw_display_frag.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -10,7 +10,7 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(fullscreen_iface)
SMOOTH(VEC4, uvcoordsvar)
SMOOTH(float4, uvcoordsvar)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(draw_fullscreen)

View File

@@ -70,22 +70,22 @@ SAMPLER(0, FLOAT_BUFFER, hairPointBuffer)
/* hairStrandsRes: Number of points per hair strand.
* 2 - no subdivision
* 3+ - 1 or more interpolated points per hair. */
PUSH_CONSTANT(INT, hairStrandsRes)
PUSH_CONSTANT(int, hairStrandsRes)
/* hairThicknessRes : Subdivide around the hair.
* 1 - Wire Hair: Only one pixel thick, independent of view distance.
* 2 - Poly-strip Hair: Correct width, flat if camera is parallel.
* 3+ - Cylinder Hair: Massive calculation but potentially perfect. Still need proper support. */
PUSH_CONSTANT(INT, hairThicknessRes)
PUSH_CONSTANT(int, hairThicknessRes)
/* Hair thickness shape. */
PUSH_CONSTANT(FLOAT, hairRadRoot)
PUSH_CONSTANT(FLOAT, hairRadTip)
PUSH_CONSTANT(FLOAT, hairRadShape)
PUSH_CONSTANT(BOOL, hairCloseTip)
PUSH_CONSTANT(float, hairRadRoot)
PUSH_CONSTANT(float, hairRadTip)
PUSH_CONSTANT(float, hairRadShape)
PUSH_CONSTANT(bool, hairCloseTip)
/* Strand batch offset when used in compute shaders. */
PUSH_CONSTANT(INT, hairStrandOffset)
PUSH_CONSTANT(int, hairStrandOffset)
/* Hair particles are stored in world space coordinate.
* This matrix convert to the instance "world space". */
PUSH_CONSTANT(MAT4, hairDupliMatrix)
PUSH_CONSTANT(float4x4, hairDupliMatrix)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(draw_pointcloud)

View File

@@ -32,7 +32,7 @@
* IMPORTANT: Vertex shader need to write `drw_ResourceID_iface.resource_index` in main().
*/
GPU_SHADER_NAMED_INTERFACE_INFO(draw_resource_id_iface, drw_ResourceID_iface)
FLAT(UINT, resource_index)
FLAT(uint, resource_index)
GPU_SHADER_NAMED_INTERFACE_END(drw_ResourceID_iface)
GPU_SHADER_CREATE_INFO(draw_resource_id_varying)
@@ -54,13 +54,13 @@ GPU_SHADER_CREATE_END()
*/
GPU_SHADER_CREATE_INFO(draw_resource_id_fallback)
DEFINE("RESOURCE_ID_FALLBACK")
VERTEX_IN(15, UINT, in_resource_id)
VERTEX_IN(15, uint, in_resource_id)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(draw_resource_with_custom_id_fallback)
DEFINE("RESOURCE_ID_FALLBACK")
DEFINE("WITH_CUSTOM_IDS")
VERTEX_IN(15, UVEC2, in_resource_id)
VERTEX_IN(15, uint2, in_resource_id)
GPU_SHADER_CREATE_END()
/** \} */
@@ -129,7 +129,7 @@ LOCAL_GROUP_SIZE(DRW_FINALIZE_GROUP_SIZE)
STORAGE_BUF(0, READ, ObjectMatrices, matrix_buf[])
STORAGE_BUF(1, READ_WRITE, ObjectBounds, bounds_buf[])
STORAGE_BUF(2, READ_WRITE, ObjectInfos, infos_buf[])
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(int, resource_len)
COMPUTE_SOURCE("draw_resource_finalize_comp.glsl")
GPU_SHADER_CREATE_END()
@@ -148,9 +148,9 @@ LOCAL_GROUP_SIZE(DRW_VISIBILITY_GROUP_SIZE)
DEFINE_VALUE("DRW_VIEW_LEN", STRINGIFY(DRW_VIEW_MAX))
STORAGE_BUF(0, READ, ObjectBounds, bounds_buf[])
STORAGE_BUF(1, READ_WRITE, uint, visibility_buf[])
PUSH_CONSTANT(INT, resource_len)
PUSH_CONSTANT(INT, view_len)
PUSH_CONSTANT(INT, visibility_word_per_draw)
PUSH_CONSTANT(int, resource_len)
PUSH_CONSTANT(int, view_len)
PUSH_CONSTANT(int, visibility_word_per_draw)
COMPUTE_SOURCE("draw_visibility_comp.glsl")
ADDITIONAL_INFO(draw_view)
ADDITIONAL_INFO(draw_view_culling)
@@ -166,11 +166,11 @@ STORAGE_BUF(1, READ, uint, visibility_buf[])
STORAGE_BUF(2, READ, DrawPrototype, prototype_buf[])
STORAGE_BUF(3, WRITE, DrawCommand, command_buf[])
STORAGE_BUF(DRW_RESOURCE_ID_SLOT, WRITE, uint, resource_id_buf[])
PUSH_CONSTANT(INT, prototype_len)
PUSH_CONSTANT(INT, visibility_word_per_draw)
PUSH_CONSTANT(INT, view_shift)
PUSH_CONSTANT(INT, view_len)
PUSH_CONSTANT(BOOL, use_custom_ids)
PUSH_CONSTANT(int, prototype_len)
PUSH_CONSTANT(int, visibility_word_per_draw)
PUSH_CONSTANT(int, view_shift)
PUSH_CONSTANT(int, view_len)
PUSH_CONSTANT(bool, use_custom_ids)
COMPUTE_SOURCE("draw_command_generate_comp.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -77,96 +77,92 @@ namespace blender::gpu::shader {
enum class Type {
/* Types supported natively across all GPU back-ends. */
FLOAT = 0,
VEC2,
VEC3,
VEC4,
MAT3,
MAT4,
UINT,
UVEC2,
UVEC3,
UVEC4,
INT,
IVEC2,
IVEC3,
IVEC4,
BOOL,
float_t = 0,
float2_t,
float3_t,
float4_t,
float3x3_t,
float4x4_t,
uint_t,
uint2_t,
uint3_t,
uint4_t,
int_t,
int2_t,
int3_t,
int4_t,
bool_t,
/* Additionally supported types to enable data optimization and native
* support in some GPU back-ends.
* NOTE: These types must be representable in all APIs. E.g. `VEC3_101010I2` is aliased as vec3
* in the GL back-end, as implicit type conversions from packed normal attribute data to vec3 is
* supported. UCHAR/CHAR types are natively supported in Metal and can be used to avoid
* additional data conversions for `GPU_COMP_U8` vertex attributes. */
VEC3_101010I2,
UCHAR,
UCHAR2,
UCHAR3,
UCHAR4,
CHAR,
CHAR2,
CHAR3,
CHAR4,
USHORT,
USHORT2,
USHORT3,
USHORT4,
SHORT,
SHORT2,
SHORT3,
SHORT4
float3_10_10_10_2_t,
uchar_t,
uchar2_t,
uchar3_t,
uchar4_t,
char_t,
char2_t,
char3_t,
char4_t,
ushort_t,
ushort2_t,
ushort3_t,
ushort4_t,
short_t,
short2_t,
short3_t,
short4_t
};
BLI_INLINE int to_component_count(const Type &type)
{
switch (type) {
case Type::FLOAT:
case Type::UINT:
case Type::INT:
case Type::BOOL:
case Type::float_t:
case Type::uint_t:
case Type::int_t:
case Type::bool_t:
return 1;
case Type::VEC2:
case Type::UVEC2:
case Type::IVEC2:
case Type::float2_t:
case Type::uint2_t:
case Type::int2_t:
return 2;
case Type::VEC3:
case Type::UVEC3:
case Type::IVEC3:
case Type::float3_t:
case Type::uint3_t:
case Type::int3_t:
return 3;
case Type::VEC4:
case Type::UVEC4:
case Type::IVEC4:
case Type::float4_t:
case Type::uint4_t:
case Type::int4_t:
return 4;
case Type::MAT3:
case Type::float3x3_t:
return 9;
case Type::MAT4:
case Type::float4x4_t:
return 16;
/* Alias special types. */
case Type::UCHAR:
case Type::USHORT:
case Type::uchar_t:
case Type::ushort_t:
case Type::char_t:
case Type::short_t:
return 1;
case Type::UCHAR2:
case Type::USHORT2:
case Type::uchar2_t:
case Type::ushort2_t:
case Type::char2_t:
case Type::short2_t:
return 2;
case Type::UCHAR3:
case Type::USHORT3:
case Type::uchar3_t:
case Type::ushort3_t:
case Type::char3_t:
case Type::short3_t:
return 3;
case Type::UCHAR4:
case Type::USHORT4:
case Type::uchar4_t:
case Type::ushort4_t:
case Type::char4_t:
case Type::short4_t:
return 4;
case Type::CHAR:
case Type::SHORT:
return 1;
case Type::CHAR2:
case Type::SHORT2:
return 2;
case Type::CHAR3:
case Type::SHORT3:
return 3;
case Type::CHAR4:
case Type::SHORT4:
return 4;
case Type::VEC3_101010I2:
case Type::float3_10_10_10_2_t:
return 3;
}
BLI_assert_unreachable();
@@ -193,22 +189,22 @@ struct SpecializationConstant {
SpecializationConstant() = default;
SpecializationConstant(const char *name, uint32_t value) : type(Type::UINT), name(name)
SpecializationConstant(const char *name, uint32_t value) : type(Type::uint_t), name(name)
{
this->value.u = value;
}
SpecializationConstant(const char *name, int value) : type(Type::INT), name(name)
SpecializationConstant(const char *name, int value) : type(Type::int_t), name(name)
{
this->value.i = value;
}
SpecializationConstant(const char *name, float value) : type(Type::FLOAT), name(name)
SpecializationConstant(const char *name, float value) : type(Type::float_t), name(name)
{
this->value.f = value;
}
SpecializationConstant(const char *name, bool value) : type(Type::BOOL), name(name)
SpecializationConstant(const char *name, bool value) : type(Type::bool_t), name(name)
{
this->value.u = value ? 1 : 0;
}

View File

@@ -501,25 +501,25 @@ void Shader::specialization_constants_init(const shader::ShaderCreateInfo &info)
void GPU_shader_constant_int_ex(GPUShader *sh, int location, int value)
{
Shader &shader = *unwrap(sh);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::INT);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::int_t);
shader.constants.is_dirty |= assign_if_different(shader.constants.values[location].i, value);
}
void GPU_shader_constant_uint_ex(GPUShader *sh, int location, uint value)
{
Shader &shader = *unwrap(sh);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::UINT);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::uint_t);
shader.constants.is_dirty |= assign_if_different(shader.constants.values[location].u, value);
}
void GPU_shader_constant_float_ex(GPUShader *sh, int location, float value)
{
Shader &shader = *unwrap(sh);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::FLOAT);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::float_t);
shader.constants.is_dirty |= assign_if_different(shader.constants.values[location].f, value);
}
void GPU_shader_constant_bool_ex(GPUShader *sh, int location, bool value)
{
Shader &shader = *unwrap(sh);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::BOOL);
BLI_assert(shader.constants.types[location] == gpu::shader::Type::bool_t);
shader.constants.is_dirty |= assign_if_different(shader.constants.values[location].u,
uint32_t(value));
}

View File

@@ -398,7 +398,7 @@ void ShaderCreateInfo::validate_vertex_attributes(const ShaderCreateInfo *other_
for (auto &attr : vertex_inputs_) {
if (attr.index >= 16 || attr.index < 0) {
std::cout << name_ << ": \"" << attr.name
<< "\" : Type::MAT3 unsupported as vertex attribute." << std::endl;
<< "\" : Type::float3x3_t unsupported as vertex attribute." << std::endl;
BLI_assert(0);
}
if (attr.index >= 16 || attr.index < 0) {
@@ -406,7 +406,7 @@ void ShaderCreateInfo::validate_vertex_attributes(const ShaderCreateInfo *other_
BLI_assert(0);
}
uint32_t attr_new = 0;
if (attr.type == Type::MAT4) {
if (attr.type == Type::float4x4_t) {
for (int i = 0; i < 4; i++) {
attr_new |= 1 << (attr.index + i);
}

View File

@@ -109,36 +109,37 @@
#endif
#ifndef GLSL_CPP_STUBS
# define SMOOTH(type, name) .smooth(Type::type, #name)
# define FLAT(type, name) .flat(Type::type, #name)
# define NO_PERSPECTIVE(type, name) .no_perspective(Type::type, #name)
# define SMOOTH(type, name) .smooth(Type::type##_t, #name)
# define FLAT(type, name) .flat(Type::type##_t, #name)
# define NO_PERSPECTIVE(type, name) .no_perspective(Type::type##_t, #name)
/* LOCAL_GROUP_SIZE(int size_x, int size_y = -1, int size_z = -1) */
# define LOCAL_GROUP_SIZE(...) .local_group_size(__VA_ARGS__)
# define VERTEX_IN(slot, type, name) .vertex_in(slot, Type::type, #name)
# define VERTEX_IN(slot, type, name) .vertex_in(slot, Type::type##_t, #name)
# define VERTEX_OUT(stage_interface) .vertex_out(stage_interface)
/* TO REMOVE. */
# define GEOMETRY_LAYOUT(...) .geometry_layout(__VA_ARGS__)
# define GEOMETRY_OUT(stage_interface) .geometry_out(stage_interface)
# define SUBPASS_IN(slot, type, img_type, name, rog) \
.subpass_in(slot, Type::type, ImageType::img_type, #name, rog)
.subpass_in(slot, Type::type##_t, ImageType::img_type, #name, rog)
# define FRAGMENT_OUT(slot, type, name) .fragment_out(slot, Type::type, #name)
# define FRAGMENT_OUT(slot, type, name) .fragment_out(slot, Type::type##_t, #name)
# define FRAGMENT_OUT_DUAL(slot, type, name, blend) \
.fragment_out(slot, Type::type, #name, DualBlend::blend)
.fragment_out(slot, Type::type##_t, #name, DualBlend::blend)
# define FRAGMENT_OUT_ROG(slot, type, name, rog) \
.fragment_out(slot, Type::type, #name, DualBlend::NONE, rog)
.fragment_out(slot, Type::type##_t, #name, DualBlend::NONE, rog)
# define EARLY_FRAGMENT_TEST(enable) .early_fragment_test(enable)
# define DEPTH_WRITE(value) .depth_write(value)
# define SPECIALIZATION_CONSTANT(type, name, default_value) \
.specialization_constant(Type::type, #name, default_value)
.specialization_constant(Type::type##_t, #name, default_value)
# define PUSH_CONSTANT(type, name) .push_constant(Type::type, #name)
# define PUSH_CONSTANT_ARRAY(type, name, array_size) .push_constant(Type::type, #name, array_size)
# define PUSH_CONSTANT(type, name) .push_constant(Type::type##_t, #name)
# define PUSH_CONSTANT_ARRAY(type, name, array_size) \
.push_constant(Type::type##_t, #name, array_size)
# define UNIFORM_BUF(slot, type_name, name) .uniform_buf(slot, #type_name, #name)
# define UNIFORM_BUF_FREQ(slot, type_name, name, freq) \
@@ -326,89 +327,89 @@ static inline Type to_type(const eGPUType type)
{
switch (type) {
case GPU_FLOAT:
return Type::FLOAT;
return Type::float_t;
case GPU_VEC2:
return Type::VEC2;
return Type::float2_t;
case GPU_VEC3:
return Type::VEC3;
return Type::float3_t;
case GPU_VEC4:
return Type::VEC4;
return Type::float4_t;
case GPU_MAT3:
return Type::MAT3;
return Type::float3x3_t;
case GPU_MAT4:
return Type::MAT4;
return Type::float4x4_t;
default:
BLI_assert_msg(0, "Error: Cannot convert eGPUType to shader::Type.");
return Type::FLOAT;
return Type::float_t;
}
}
static inline std::ostream &operator<<(std::ostream &stream, const Type type)
{
switch (type) {
case Type::FLOAT:
case Type::float_t:
return stream << "float";
case Type::VEC2:
case Type::float2_t:
return stream << "vec2";
case Type::VEC3:
case Type::float3_t:
return stream << "vec3";
case Type::VEC4:
case Type::float4_t:
return stream << "vec4";
case Type::MAT3:
case Type::float3x3_t:
return stream << "mat3";
case Type::MAT4:
case Type::float4x4_t:
return stream << "mat4";
case Type::VEC3_101010I2:
case Type::float3_10_10_10_2_t:
return stream << "vec3_1010102_Inorm";
case Type::UCHAR:
case Type::uchar_t:
return stream << "uchar";
case Type::UCHAR2:
case Type::uchar2_t:
return stream << "uchar2";
case Type::UCHAR3:
case Type::uchar3_t:
return stream << "uchar3";
case Type::UCHAR4:
case Type::uchar4_t:
return stream << "uchar4";
case Type::CHAR:
case Type::char_t:
return stream << "char";
case Type::CHAR2:
case Type::char2_t:
return stream << "char2";
case Type::CHAR3:
case Type::char3_t:
return stream << "char3";
case Type::CHAR4:
case Type::char4_t:
return stream << "char4";
case Type::INT:
case Type::int_t:
return stream << "int";
case Type::IVEC2:
case Type::int2_t:
return stream << "ivec2";
case Type::IVEC3:
case Type::int3_t:
return stream << "ivec3";
case Type::IVEC4:
case Type::int4_t:
return stream << "ivec4";
case Type::UINT:
case Type::uint_t:
return stream << "uint";
case Type::UVEC2:
case Type::uint2_t:
return stream << "uvec2";
case Type::UVEC3:
case Type::uint3_t:
return stream << "uvec3";
case Type::UVEC4:
case Type::uint4_t:
return stream << "uvec4";
case Type::USHORT:
case Type::ushort_t:
return stream << "ushort";
case Type::USHORT2:
case Type::ushort2_t:
return stream << "ushort2";
case Type::USHORT3:
case Type::ushort3_t:
return stream << "ushort3";
case Type::USHORT4:
case Type::ushort4_t:
return stream << "ushort4";
case Type::SHORT:
case Type::short_t:
return stream << "short";
case Type::SHORT2:
case Type::short2_t:
return stream << "short2";
case Type::SHORT3:
case Type::short3_t:
return stream << "short3";
case Type::SHORT4:
case Type::short4_t:
return stream << "short4";
case Type::BOOL:
case Type::bool_t:
return stream << "bool";
default:
BLI_assert(0);
@@ -1035,14 +1036,14 @@ struct ShaderCreateInfo {
constant.type = type;
constant.name = name;
switch (type) {
case Type::INT:
case Type::int_t:
constant.value.i = int(default_value);
break;
case Type::BOOL:
case Type::UINT:
case Type::bool_t:
case Type::uint_t:
constant.value.u = uint(default_value);
break;
case Type::FLOAT:
case Type::float_t:
constant.value.f = float(default_value);
break;
default:
@@ -1161,7 +1162,7 @@ struct ShaderCreateInfo {
Self &push_constant(Type type, StringRefNull name, int array_size = 0)
{
/* We don't have support for UINT push constants yet, use INT instead. */
BLI_assert(type != Type::UINT);
BLI_assert(type != Type::uint_t);
BLI_assert_msg(name.find("[") == -1,
"Array syntax is forbidden for push constants."
"Use the array_size parameter instead.");

View File

@@ -369,21 +369,21 @@ void VertexFormat_texture_buffer_pack(GPUVertFormat *format)
static uint component_size_get(const Type gpu_type)
{
switch (gpu_type) {
case Type::VEC2:
case Type::IVEC2:
case Type::UVEC2:
case Type::float2_t:
case Type::int2_t:
case Type::uint2_t:
return 2;
case Type::VEC3:
case Type::IVEC3:
case Type::UVEC3:
case Type::float3_t:
case Type::int3_t:
case Type::uint3_t:
return 3;
case Type::VEC4:
case Type::IVEC4:
case Type::UVEC4:
case Type::float4_t:
case Type::int4_t:
case Type::uint4_t:
return 4;
case Type::MAT3:
case Type::float3x3_t:
return 12;
case Type::MAT4:
case Type::float4x4_t:
return 16;
default:
return 1;
@@ -395,26 +395,26 @@ static void recommended_fetch_mode_and_comp_type(Type gpu_type,
GPUVertFetchMode *r_fetch_mode)
{
switch (gpu_type) {
case Type::FLOAT:
case Type::VEC2:
case Type::VEC3:
case Type::VEC4:
case Type::MAT3:
case Type::MAT4:
case Type::float_t:
case Type::float2_t:
case Type::float3_t:
case Type::float4_t:
case Type::float3x3_t:
case Type::float4x4_t:
*r_comp_type = GPU_COMP_F32;
*r_fetch_mode = GPU_FETCH_FLOAT;
break;
case Type::INT:
case Type::IVEC2:
case Type::IVEC3:
case Type::IVEC4:
case Type::int_t:
case Type::int2_t:
case Type::int3_t:
case Type::int4_t:
*r_comp_type = GPU_COMP_I32;
*r_fetch_mode = GPU_FETCH_INT;
break;
case Type::UINT:
case Type::UVEC2:
case Type::UVEC3:
case Type::UVEC4:
case Type::uint_t:
case Type::uint2_t:
case Type::uint3_t:
case Type::uint4_t:
*r_comp_type = GPU_COMP_U32;
*r_fetch_mode = GPU_FETCH_INT;
break;

View File

@@ -8,16 +8,16 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(depth_2d_update_iface).smooth(Type::VEC2, "texCoord_interp");
GPU_SHADER_INTERFACE_INFO(depth_2d_update_iface).smooth(Type::float2_t, "texCoord_interp");
GPU_SHADER_CREATE_INFO(depth_2d_update_info_base)
.vertex_in(0, Type::VEC2, "pos")
.vertex_in(0, Type::float2_t, "pos")
.vertex_out(depth_2d_update_iface)
.fragment_out(0, Type::VEC4, "fragColor")
.push_constant(Type::VEC2, "extent")
.push_constant(Type::VEC2, "offset")
.push_constant(Type::VEC2, "size")
.push_constant(Type::INT, "mip")
.fragment_out(0, Type::float4_t, "fragColor")
.push_constant(Type::float2_t, "extent")
.push_constant(Type::float2_t, "offset")
.push_constant(Type::float2_t, "size")
.push_constant(Type::int_t, "mip")
.depth_write(DepthWrite::ANY)
.vertex_source("depth_2d_update_vert.glsl");

View File

@@ -8,17 +8,17 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(fullscreen_blit_iface).smooth(Type::VEC4, "uvcoordsvar");
GPU_SHADER_INTERFACE_INFO(fullscreen_blit_iface).smooth(Type::float4_t, "uvcoordsvar");
GPU_SHADER_CREATE_INFO(fullscreen_blit)
.vertex_in(0, Type::VEC2, "pos")
.vertex_in(0, Type::float2_t, "pos")
.vertex_out(fullscreen_blit_iface)
.fragment_out(0, Type::VEC4, "fragColor")
.push_constant(Type::VEC2, "fullscreen")
.push_constant(Type::VEC2, "size")
.push_constant(Type::VEC2, "dst_offset")
.push_constant(Type::VEC2, "src_offset")
.push_constant(Type::INT, "mip")
.fragment_out(0, Type::float4_t, "fragColor")
.push_constant(Type::float2_t, "fullscreen")
.push_constant(Type::float2_t, "size")
.push_constant(Type::float2_t, "dst_offset")
.push_constant(Type::float2_t, "src_offset")
.push_constant(Type::int_t, "mip")
.sampler(0, ImageType::FLOAT_2D, "imageTexture", Frequency::PASS)
.vertex_source("gpu_shader_fullscreen_blit_vert.glsl")
.fragment_source("gpu_shader_fullscreen_blit_frag.glsl")

View File

@@ -771,16 +771,16 @@ static void populate_specialization_constant_values(
uint index = i + MTL_SHADER_SPECIALIZATION_CONSTANT_BASE_ID;
switch (shader_constants.types[i]) {
case Type::INT:
case Type::int_t:
[values setConstantValue:&value.i type:MTLDataTypeInt atIndex:index];
break;
case Type::UINT:
case Type::uint_t:
[values setConstantValue:&value.u type:MTLDataTypeUInt atIndex:index];
break;
case Type::BOOL:
case Type::bool_t:
[values setConstantValue:&value.u type:MTLDataTypeBool atIndex:index];
break;
case Type::FLOAT:
case Type::float_t:
[values setConstantValue:&value.f type:MTLDataTypeFloat atIndex:index];
break;
default:

View File

@@ -546,7 +546,7 @@ inline bool is_matrix_type(const std::string &type)
inline bool is_matrix_type(const shader::Type &type)
{
/* Matrix type support. Add types as necessary. */
return (type == shader::Type::MAT4 || type == shader::Type::MAT3);
return (type == shader::Type::float4x4_t || type == shader::Type::float3x3_t);
}
inline int get_matrix_location_count(const std::string &type)
@@ -564,10 +564,10 @@ inline int get_matrix_location_count(const std::string &type)
inline int get_matrix_location_count(const shader::Type &type)
{
/* Matrix type support. Add types as necessary. */
if (type == shader::Type::MAT4) {
if (type == shader::Type::float4x4_t) {
return 4;
}
if (type == shader::Type::MAT3) {
if (type == shader::Type::float3x3_t) {
return 3;
}
return 1;
@@ -583,11 +583,11 @@ inline std::string get_matrix_subtype(const std::string &type)
inline shader::Type get_matrix_subtype(const shader::Type &type)
{
if (type == shader::Type::MAT4) {
return shader::Type::VEC4;
if (type == shader::Type::float4x4_t) {
return shader::Type::float4_t;
}
if (type == shader::Type::MAT3) {
return shader::Type::VEC3;
if (type == shader::Type::float3x3_t) {
return shader::Type::float3_t;
}
return type;
}
@@ -596,19 +596,19 @@ inline std::string get_attribute_conversion_function(bool *uses_conversion,
const shader::Type &type)
{
/* NOTE(Metal): Add more attribute types as required. */
if (type == shader::Type::FLOAT) {
if (type == shader::Type::float_t) {
*uses_conversion = true;
return "internal_vertex_attribute_convert_read_float";
}
if (type == shader::Type::VEC2) {
if (type == shader::Type::float2_t) {
*uses_conversion = true;
return "internal_vertex_attribute_convert_read_float2";
}
if (type == shader::Type::VEC3) {
if (type == shader::Type::float3_t) {
*uses_conversion = true;
return "internal_vertex_attribute_convert_read_float3";
}
if (type == shader::Type::VEC4) {
if (type == shader::Type::float4_t) {
*uses_conversion = true;
return "internal_vertex_attribute_convert_read_float4";
}
@@ -682,69 +682,69 @@ inline const char *to_string_msl(const shader::Interpolation &interp)
inline const char *to_string(const shader::Type &type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::float_t:
return "float";
case shader::Type::VEC2:
case shader::Type::float2_t:
return "vec2";
case shader::Type::VEC3:
case shader::Type::float3_t:
return "vec3";
case shader::Type::VEC3_101010I2:
case shader::Type::float3_10_10_10_2_t:
return "vec3_1010102_Inorm";
case shader::Type::VEC4:
case shader::Type::float4_t:
return "vec4";
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return "mat3";
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return "mat4";
case shader::Type::UINT:
case shader::Type::uint_t:
return "uint32_t";
case shader::Type::UVEC2:
case shader::Type::uint2_t:
return "uvec2";
case shader::Type::UVEC3:
case shader::Type::uint3_t:
return "uvec3";
case shader::Type::UVEC4:
case shader::Type::uint4_t:
return "uvec4";
case shader::Type::INT:
case shader::Type::int_t:
return "int";
case shader::Type::IVEC2:
case shader::Type::int2_t:
return "ivec2";
case shader::Type::IVEC3:
case shader::Type::int3_t:
return "ivec3";
case shader::Type::IVEC4:
case shader::Type::int4_t:
return "ivec4";
case shader::Type::BOOL:
case shader::Type::bool_t:
return "bool";
case shader::Type::UCHAR:
case shader::Type::uchar_t:
return "uchar";
case shader::Type::UCHAR2:
case shader::Type::uchar2_t:
return "uchar2";
case shader::Type::UCHAR3:
case shader::Type::uchar3_t:
return "uchar3";
case shader::Type::UCHAR4:
case shader::Type::uchar4_t:
return "uchar4";
case shader::Type::CHAR:
case shader::Type::char_t:
return "char";
case shader::Type::CHAR2:
case shader::Type::char2_t:
return "char2";
case shader::Type::CHAR3:
case shader::Type::char3_t:
return "char3";
case shader::Type::CHAR4:
case shader::Type::char4_t:
return "char4";
case shader::Type::USHORT:
case shader::Type::ushort_t:
return "ushort";
case shader::Type::USHORT2:
case shader::Type::ushort2_t:
return "ushort2";
case shader::Type::USHORT3:
case shader::Type::ushort3_t:
return "ushort3";
case shader::Type::USHORT4:
case shader::Type::ushort4_t:
return "ushort4";
case shader::Type::SHORT:
case shader::Type::short_t:
return "short";
case shader::Type::SHORT2:
case shader::Type::short2_t:
return "short2";
case shader::Type::SHORT3:
case shader::Type::short3_t:
return "short3";
case shader::Type::SHORT4:
case shader::Type::short4_t:
return "short4";
default:
BLI_assert(false);

View File

@@ -60,69 +60,69 @@ char *MSLGeneratorInterface::msl_patch_default = nullptr;
static eMTLDataType to_mtl_type(Type type)
{
switch (type) {
case Type::FLOAT:
case Type::float_t:
return MTL_DATATYPE_FLOAT;
case Type::VEC2:
case Type::float2_t:
return MTL_DATATYPE_FLOAT2;
case Type::VEC3:
case Type::float3_t:
return MTL_DATATYPE_FLOAT3;
case Type::VEC4:
case Type::float4_t:
return MTL_DATATYPE_FLOAT4;
case Type::MAT3:
case Type::float3x3_t:
return MTL_DATATYPE_FLOAT3x3;
case Type::MAT4:
case Type::float4x4_t:
return MTL_DATATYPE_FLOAT4x4;
case Type::UINT:
case Type::uint_t:
return MTL_DATATYPE_UINT;
case Type::UVEC2:
case Type::uint2_t:
return MTL_DATATYPE_UINT2;
case Type::UVEC3:
case Type::uint3_t:
return MTL_DATATYPE_UINT3;
case Type::UVEC4:
case Type::uint4_t:
return MTL_DATATYPE_UINT4;
case Type::INT:
case Type::int_t:
return MTL_DATATYPE_INT;
case Type::IVEC2:
case Type::int2_t:
return MTL_DATATYPE_INT2;
case Type::IVEC3:
case Type::int3_t:
return MTL_DATATYPE_INT3;
case Type::IVEC4:
case Type::int4_t:
return MTL_DATATYPE_INT4;
case Type::VEC3_101010I2:
case Type::float3_10_10_10_2_t:
return MTL_DATATYPE_INT1010102_NORM;
case Type::BOOL:
case Type::bool_t:
return MTL_DATATYPE_BOOL;
case Type::UCHAR:
case Type::uchar_t:
return MTL_DATATYPE_UCHAR;
case Type::UCHAR2:
case Type::uchar2_t:
return MTL_DATATYPE_UCHAR2;
case Type::UCHAR3:
case Type::uchar3_t:
return MTL_DATATYPE_UCHAR3;
case Type::UCHAR4:
case Type::uchar4_t:
return MTL_DATATYPE_UCHAR4;
case Type::CHAR:
case Type::char_t:
return MTL_DATATYPE_CHAR;
case Type::CHAR2:
case Type::char2_t:
return MTL_DATATYPE_CHAR2;
case Type::CHAR3:
case Type::char3_t:
return MTL_DATATYPE_CHAR3;
case Type::CHAR4:
case Type::char4_t:
return MTL_DATATYPE_CHAR4;
case Type::USHORT:
case Type::ushort_t:
return MTL_DATATYPE_USHORT;
case Type::USHORT2:
case Type::ushort2_t:
return MTL_DATATYPE_USHORT2;
case Type::USHORT3:
case Type::ushort3_t:
return MTL_DATATYPE_USHORT3;
case Type::USHORT4:
case Type::ushort4_t:
return MTL_DATATYPE_USHORT4;
case Type::SHORT:
case Type::short_t:
return MTL_DATATYPE_SHORT;
case Type::SHORT2:
case Type::short2_t:
return MTL_DATATYPE_SHORT2;
case Type::SHORT3:
case Type::short3_t:
return MTL_DATATYPE_SHORT3;
case Type::SHORT4:
case Type::short4_t:
return MTL_DATATYPE_SHORT4;
default: {
BLI_assert_msg(false, "Unexpected data type");
@@ -1228,7 +1228,7 @@ void MSLGeneratorInterface::prepare_from_createinfo(const shader::ShaderCreateIn
storage_blocks.append(ssbo);
/* Add uniform for metadata. */
MSLUniform uniform(shader::Type::IVEC4, tex.name + "_metadata", false, 1);
MSLUniform uniform(shader::Type::int4_t, tex.name + "_metadata", false, 1);
uniforms.append(uniform);
atomic_fallback_buffer_count++;

View File

@@ -96,62 +96,62 @@ static const char *to_string(const Interpolation &interp)
static const char *to_string(const Type &type)
{
switch (type) {
case Type::FLOAT:
case Type::float_t:
return "float";
case Type::VEC2:
case Type::float2_t:
return "vec2";
case Type::VEC3:
case Type::float3_t:
return "vec3";
case Type::VEC4:
case Type::float4_t:
return "vec4";
case Type::MAT3:
case Type::float3x3_t:
return "mat3";
case Type::MAT4:
case Type::float4x4_t:
return "mat4";
case Type::UINT:
case Type::uint_t:
return "uint";
case Type::UVEC2:
case Type::uint2_t:
return "uvec2";
case Type::UVEC3:
case Type::uint3_t:
return "uvec3";
case Type::UVEC4:
case Type::uint4_t:
return "uvec4";
case Type::INT:
case Type::int_t:
return "int";
case Type::IVEC2:
case Type::int2_t:
return "ivec2";
case Type::IVEC3:
case Type::int3_t:
return "ivec3";
case Type::IVEC4:
case Type::int4_t:
return "ivec4";
case Type::BOOL:
case Type::bool_t:
return "bool";
/* Alias special types. */
case Type::UCHAR:
case Type::USHORT:
case Type::uchar_t:
case Type::ushort_t:
return "uint";
case Type::UCHAR2:
case Type::USHORT2:
case Type::uchar2_t:
case Type::ushort2_t:
return "uvec2";
case Type::UCHAR3:
case Type::USHORT3:
case Type::uchar3_t:
case Type::ushort3_t:
return "uvec3";
case Type::UCHAR4:
case Type::USHORT4:
case Type::uchar4_t:
case Type::ushort4_t:
return "uvec4";
case Type::CHAR:
case Type::SHORT:
case Type::char_t:
case Type::short_t:
return "int";
case Type::CHAR2:
case Type::SHORT2:
case Type::char2_t:
case Type::short2_t:
return "ivec2";
case Type::CHAR3:
case Type::SHORT3:
case Type::char3_t:
case Type::short3_t:
return "ivec3";
case Type::CHAR4:
case Type::SHORT4:
case Type::char4_t:
case Type::short4_t:
return "ivec4";
case Type::VEC3_101010I2:
case Type::float3_10_10_10_2_t:
return "vec3";
}
BLI_assert_unreachable();
@@ -161,48 +161,48 @@ static const char *to_string(const Type &type)
static Type UNUSED_FUNCTION(to_component_type)(const Type &type)
{
switch (type) {
case Type::FLOAT:
case Type::VEC2:
case Type::VEC3:
case Type::VEC4:
case Type::MAT3:
case Type::MAT4:
return Type::FLOAT;
case Type::UINT:
case Type::UVEC2:
case Type::UVEC3:
case Type::UVEC4:
return Type::UINT;
case Type::INT:
case Type::IVEC2:
case Type::IVEC3:
case Type::IVEC4:
case Type::BOOL:
return Type::INT;
case Type::float_t:
case Type::float2_t:
case Type::float3_t:
case Type::float4_t:
case Type::float3x3_t:
case Type::float4x4_t:
return Type::float_t;
case Type::uint_t:
case Type::uint2_t:
case Type::uint3_t:
case Type::uint4_t:
return Type::uint_t;
case Type::int_t:
case Type::int2_t:
case Type::int3_t:
case Type::int4_t:
case Type::bool_t:
return Type::int_t;
/* Alias special types. */
case Type::UCHAR:
case Type::UCHAR2:
case Type::UCHAR3:
case Type::UCHAR4:
case Type::USHORT:
case Type::USHORT2:
case Type::USHORT3:
case Type::USHORT4:
return Type::UINT;
case Type::CHAR:
case Type::CHAR2:
case Type::CHAR3:
case Type::CHAR4:
case Type::SHORT:
case Type::SHORT2:
case Type::SHORT3:
case Type::SHORT4:
return Type::INT;
case Type::VEC3_101010I2:
return Type::FLOAT;
case Type::uchar_t:
case Type::uchar2_t:
case Type::uchar3_t:
case Type::uchar4_t:
case Type::ushort_t:
case Type::ushort2_t:
case Type::ushort3_t:
case Type::ushort4_t:
return Type::uint_t;
case Type::char_t:
case Type::char2_t:
case Type::char3_t:
case Type::char4_t:
case Type::short_t:
case Type::short2_t:
case Type::short3_t:
case Type::short4_t:
return Type::int_t;
case Type::float3_10_10_10_2_t:
return Type::float_t;
}
BLI_assert_unreachable();
return Type::FLOAT;
return Type::float_t;
}
static const char *to_string(const eGPUTextureFormat &type)
@@ -633,16 +633,16 @@ std::string GLShader::constants_declare() const
const SpecializationConstant::Value &value = constants.values[constant_index];
switch (constant_type) {
case Type::INT:
case Type::int_t:
ss << "const int " << name << "=" << std::to_string(value.i) << ";\n";
break;
case Type::UINT:
case Type::uint_t:
ss << "const uint " << name << "=" << std::to_string(value.u) << "u;\n";
break;
case Type::BOOL:
case Type::bool_t:
ss << "const bool " << name << "=" << (value.u ? "true" : "false") << ";\n";
break;
case Type::FLOAT:
case Type::float_t:
/* Use uint representation to allow exact same bit pattern even if NaN. */
ss << "const float " << name << "= uintBitsToFloat(" << std::to_string(value.u) << "u);\n";
break;

View File

@@ -157,35 +157,35 @@ static Type gpu_type_from_gl_type(int gl_type)
{
switch (gl_type) {
case GL_FLOAT:
return Type::FLOAT;
return Type::float_t;
case GL_FLOAT_VEC2:
return Type::VEC2;
return Type::float2_t;
case GL_FLOAT_VEC3:
return Type::VEC3;
return Type::float3_t;
case GL_FLOAT_VEC4:
return Type::VEC4;
return Type::float4_t;
case GL_FLOAT_MAT3:
return Type::MAT3;
return Type::float3x3_t;
case GL_FLOAT_MAT4:
return Type::MAT4;
return Type::float4x4_t;
case GL_UNSIGNED_INT:
return Type::UINT;
return Type::uint_t;
case GL_UNSIGNED_INT_VEC2:
return Type::UVEC2;
return Type::uint2_t;
case GL_UNSIGNED_INT_VEC3:
return Type::UVEC3;
return Type::uint3_t;
case GL_UNSIGNED_INT_VEC4:
return Type::UVEC4;
return Type::uint4_t;
case GL_INT:
return Type::INT;
return Type::int_t;
case GL_INT_VEC2:
return Type::IVEC2;
return Type::int2_t;
case GL_INT_VEC3:
return Type::IVEC3;
return Type::int3_t;
case GL_INT_VEC4:
return Type::IVEC4;
return Type::int4_t;
case GL_BOOL:
return Type::BOOL;
return Type::bool_t;
case GL_FLOAT_MAT2:
case GL_FLOAT_MAT2x3:
case GL_FLOAT_MAT2x4:
@@ -196,7 +196,7 @@ static Type gpu_type_from_gl_type(int gl_type)
default:
BLI_assert(0);
}
return Type::FLOAT;
return Type::float_t;
}
GLShaderInterface::GLShaderInterface(GLuint program)

View File

@@ -395,26 +395,6 @@ using bvec2 = bool2;
using bvec3 = bool3;
using bvec4 = bool4;
using FLOAT = float;
using VEC2 = float2;
using VEC3 = float3;
using VEC4 = float4;
using INT = int;
using IVEC2 = int2;
using IVEC3 = int3;
using IVEC4 = int4;
using UINT = uint;
using UVEC2 = uint2;
using UVEC3 = uint3;
using UVEC4 = uint4;
using BOOL = bool;
using BVEC2 = bool2;
using BVEC3 = bool3;
using BVEC4 = bool4;
using bool32_t = uint;
/** Packed types are needed for MSL which have different alignment rules for float3. */
@@ -519,9 +499,6 @@ using mat2 = float2x2;
using mat3 = float3x3;
using mat4 = float4x4;
using MAT4 = float4x4;
using MAT3 = float3x3;
/* Matrix reshaping functions. */
#define RESHAPE(mat_to, mat_from, ...) \
mat_to to_##mat_to(mat_from m) \

View File

@@ -20,9 +20,9 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_index_buffer_load)
PUSH_CONSTANT(BOOL, gpu_index_no_buffer)
PUSH_CONSTANT(BOOL, gpu_index_16bit)
PUSH_CONSTANT(INT, gpu_index_base_index)
PUSH_CONSTANT(bool, gpu_index_no_buffer)
PUSH_CONSTANT(bool, gpu_index_16bit)
PUSH_CONSTANT(int, gpu_index_base_index)
STORAGE_BUF_FREQ(GPU_SSBO_INDEX_BUF_SLOT, READ, uint, gpu_index_buf[], GEOMETRY)
DEFINE("GPU_INDEX_LOAD")
GPU_SHADER_CREATE_END()

View File

@@ -11,35 +11,35 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(flat_color_iface)
FLAT(VEC4, finalColor)
FLAT(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(no_perspective_color_iface)
NO_PERSPECTIVE(VEC4, finalColor)
NO_PERSPECTIVE(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(smooth_color_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(float4, finalColor)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(smooth_tex_coord_interp_iface)
SMOOTH(VEC2, texCoord_interp)
SMOOTH(float2, texCoord_interp)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(smooth_radii_iface)
SMOOTH(VEC2, radii)
SMOOTH(float2, radii)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(smooth_radii_outline_iface)
SMOOTH(VEC4, radii)
SMOOTH(float4, radii)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(flat_color_smooth_tex_coord_interp_iface)
FLAT(VEC4, finalColor)
SMOOTH(VEC2, texCoord_interp)
FLAT(float4, finalColor)
SMOOTH(float2, texCoord_interp)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_INTERFACE_INFO(smooth_icon_interp_iface)
SMOOTH(VEC2, texCoord_interp)
SMOOTH(VEC2, mask_coord_interp)
SMOOTH(float2, texCoord_interp)
SMOOTH(float2, mask_coord_interp)
GPU_SHADER_INTERFACE_END()

View File

@@ -16,21 +16,21 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(smooth_uv_iface)
SMOOTH(VEC2, uv)
SMOOTH(float2, uv)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_area_borders)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(smooth_uv_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, rect)
PUSH_CONSTANT(VEC4, color)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, rect)
PUSH_CONSTANT(float4, color)
/* Amount of pixels the border can cover. Scales rounded corner radius. */
PUSH_CONSTANT(FLOAT, scale)
PUSH_CONSTANT(float, scale)
/* Width of the border relative to the scale. Also affects rounded corner radius. */
PUSH_CONSTANT(FLOAT, width)
PUSH_CONSTANT(INT, cornerLen)
PUSH_CONSTANT(float, width)
PUSH_CONSTANT(int, cornerLen)
VERTEX_SOURCE("gpu_shader_2D_area_borders_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_area_borders_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -16,12 +16,12 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_checker)
VERTEX_IN(0, VEC2, pos)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color1)
PUSH_CONSTANT(VEC4, color2)
PUSH_CONSTANT(INT, size)
VERTEX_IN(0, float2, pos)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color1)
PUSH_CONSTANT(float4, color2)
PUSH_CONSTANT(int, size)
VERTEX_SOURCE("gpu_shader_2D_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_checker_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -16,13 +16,13 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_diag_stripes)
VERTEX_IN(0, VEC2, pos)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color1)
PUSH_CONSTANT(VEC4, color2)
PUSH_CONSTANT(INT, size1)
PUSH_CONSTANT(INT, size2)
VERTEX_IN(0, float2, pos)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color1)
PUSH_CONSTANT(float4, color2)
PUSH_CONSTANT(int, size1)
PUSH_CONSTANT(int, size2)
VERTEX_SOURCE("gpu_shader_2D_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_diag_stripes_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -18,8 +18,8 @@
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_desaturate_color)
ADDITIONAL_INFO(gpu_shader_2D_image_common)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(FLOAT, factor)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float, factor)
FRAGMENT_SOURCE("gpu_shader_image_desaturate_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -17,11 +17,11 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_common)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(1, VEC2, texCoord)
VERTEX_IN(0, float2, pos)
VERTEX_IN(1, float2, texCoord)
VERTEX_OUT(smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
SAMPLER(0, FLOAT_2D, image)
VERTEX_SOURCE("gpu_shader_2D_image_vert.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -17,14 +17,14 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_overlays_merge)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(1, VEC2, texCoord)
VERTEX_IN(0, float2, pos)
VERTEX_IN(1, float2, texCoord)
VERTEX_OUT(smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(BOOL, display_transform)
PUSH_CONSTANT(BOOL, overlay)
PUSH_CONSTANT(BOOL, use_hdr)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(bool, display_transform)
PUSH_CONSTANT(bool, overlay)
PUSH_CONSTANT(bool, use_hdr)
/* Sampler slots should match OCIO's. */
SAMPLER(0, FLOAT_2D, image_texture)
SAMPLER(1, FLOAT_2D, overlays_texture)
@@ -35,11 +35,11 @@ GPU_SHADER_CREATE_END()
/* Cycles display driver fallback shader. */
GPU_SHADER_CREATE_INFO(gpu_shader_cycles_display_fallback)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(1, VEC2, texCoord)
VERTEX_IN(0, float2, pos)
VERTEX_IN(1, float2, texCoord)
VERTEX_OUT(smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(VEC2, fullscreen)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float2, fullscreen)
SAMPLER(0, FLOAT_2D, image_texture)
VERTEX_SOURCE("gpu_shader_display_fallback_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_display_fallback_frag.glsl")

View File

@@ -16,13 +16,13 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_overlays_stereo_merge)
VERTEX_IN(0, VEC2, pos)
FRAGMENT_OUT(0, VEC4, overlayColor)
FRAGMENT_OUT(1, VEC4, imageColor)
VERTEX_IN(0, float2, pos)
FRAGMENT_OUT(0, float4, overlayColor)
FRAGMENT_OUT(1, float4, imageColor)
SAMPLER(0, FLOAT_2D, imageTexture)
SAMPLER(1, FLOAT_2D, overlayTexture)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(INT, stereoDisplaySettings)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(int, stereoDisplaySettings)
VERTEX_SOURCE("gpu_shader_2D_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_image_overlays_stereo_merge_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -18,11 +18,11 @@
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_rect_color)
VERTEX_OUT(smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(VEC4, rect_icon)
PUSH_CONSTANT(VEC4, rect_geom)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float4, rect_icon)
PUSH_CONSTANT(float4, rect_geom)
SAMPLER(0, FLOAT_2D, image)
VERTEX_SOURCE("gpu_shader_2D_image_rect_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_image_color_frag.glsl")

View File

@@ -18,8 +18,8 @@
GPU_SHADER_CREATE_INFO(gpu_shader_2D_image_shuffle_color)
ADDITIONAL_INFO(gpu_shader_2D_image_common)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(VEC4, shuffle)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float4, shuffle)
FRAGMENT_SOURCE("gpu_shader_image_shuffle_color_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -16,14 +16,14 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(gpu_node_socket_iface)
FLAT(VEC4, finalColor)
FLAT(VEC4, finalOutlineColor)
FLAT(FLOAT, finalDotRadius)
FLAT(FLOAT, finalOutlineThickness)
FLAT(FLOAT, AAsize)
FLAT(VEC2, extrusion)
FLAT(INT, finalShape)
SMOOTH(VEC2, uv)
FLAT(float4, finalColor)
FLAT(float4, finalOutlineColor)
FLAT(float, finalDotRadius)
FLAT(float, finalOutlineThickness)
FLAT(float, AAsize)
FLAT(float2, extrusion)
FLAT(int, finalShape)
SMOOTH(float2, uv)
GPU_SHADER_INTERFACE_END()
/* TODO(lone_noel): Share with C code. */
@@ -32,9 +32,9 @@ GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_node_socket_shared)
DEFINE_VALUE("MAX_SOCKET_PARAMETERS", STRINGIFY(MAX_SOCKET_PARAMETERS))
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_OUT(gpu_node_socket_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("gpu_shader_2D_node_socket_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_node_socket_frag.glsl")
GPU_SHADER_CREATE_END()
@@ -45,13 +45,13 @@ DO_STATIC_COMPILATION()
* to be violated in some drivers. For example, macOS 10.15f.4 and Intel Iris
* causes #78307 when using gl_InstanceID outside of instance. */
DEFINE_VALUE("widgetID", "0")
PUSH_CONSTANT_ARRAY(VEC4, parameters, MAX_SOCKET_PARAMETERS)
PUSH_CONSTANT_ARRAY(float4, parameters, MAX_SOCKET_PARAMETERS)
ADDITIONAL_INFO(gpu_shader_2D_node_socket_shared)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_node_socket_inst)
DO_STATIC_COMPILATION()
DEFINE_VALUE("widgetID", "gl_InstanceID")
PUSH_CONSTANT_ARRAY(VEC4, parameters, (MAX_SOCKET_PARAMETERS * MAX_SOCKET_INSTANCE))
PUSH_CONSTANT_ARRAY(float4, parameters, (MAX_SOCKET_PARAMETERS * MAX_SOCKET_INSTANCE))
ADDITIONAL_INFO(gpu_shader_2D_node_socket_shared)
GPU_SHADER_CREATE_END()

View File

@@ -16,26 +16,26 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(nodelink_iface)
SMOOTH(VEC4, finalColor)
SMOOTH(VEC2, lineUV)
FLAT(FLOAT, lineLength)
FLAT(FLOAT, lineThickness)
FLAT(FLOAT, dashLength)
FLAT(FLOAT, dashFactor)
FLAT(INT, hasBackLink)
FLAT(FLOAT, dashAlpha)
FLAT(INT, isMainLine)
FLAT(FLOAT, aspect)
SMOOTH(float4, finalColor)
SMOOTH(float2, lineUV)
FLAT(float, lineLength)
FLAT(float, lineThickness)
FLAT(float, dashLength)
FLAT(float, dashFactor)
FLAT(int, hasBackLink)
FLAT(float, dashAlpha)
FLAT(int, isMainLine)
FLAT(float, aspect)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_nodelink)
VERTEX_IN(0, VEC2, uv)
VERTEX_IN(1, VEC2, pos)
VERTEX_IN(2, VEC2, expand)
VERTEX_IN(0, float2, uv)
VERTEX_IN(1, float2, pos)
VERTEX_IN(2, float2, expand)
VERTEX_OUT(nodelink_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
UNIFORM_BUF_FREQ(0, NodeLinkData, node_link_data, PASS)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_2D_nodelink_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_nodelink_frag.glsl")
TYPEDEF_SOURCE("GPU_shader_shared.hh")
@@ -43,25 +43,25 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_nodelink_inst)
VERTEX_IN(0, VEC2, uv)
VERTEX_IN(1, VEC2, pos)
VERTEX_IN(2, VEC2, expand)
VERTEX_IN(3, VEC2, P0)
VERTEX_IN(4, VEC2, P1)
VERTEX_IN(5, VEC2, P2)
VERTEX_IN(6, VEC2, P3)
VERTEX_IN(7, UVEC4, colid_doarrow)
VERTEX_IN(8, VEC4, start_color)
VERTEX_IN(9, VEC4, end_color)
VERTEX_IN(10, UVEC2, domuted)
VERTEX_IN(11, FLOAT, dim_factor)
VERTEX_IN(12, FLOAT, thickness)
VERTEX_IN(13, VEC3, dash_params)
VERTEX_IN(14, INT, has_back_link)
VERTEX_IN(0, float2, uv)
VERTEX_IN(1, float2, pos)
VERTEX_IN(2, float2, expand)
VERTEX_IN(3, float2, P0)
VERTEX_IN(4, float2, P1)
VERTEX_IN(5, float2, P2)
VERTEX_IN(6, float2, P3)
VERTEX_IN(7, uint4, colid_doarrow)
VERTEX_IN(8, float4, start_color)
VERTEX_IN(9, float4, end_color)
VERTEX_IN(10, uint2, domuted)
VERTEX_IN(11, float, dim_factor)
VERTEX_IN(12, float, thickness)
VERTEX_IN(13, float3, dash_params)
VERTEX_IN(14, int, has_back_link)
VERTEX_OUT(nodelink_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
UNIFORM_BUF_FREQ(0, NodeLinkInstanceData, node_link_data, PASS)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_2D_nodelink_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_nodelink_frag.glsl")
TYPEDEF_SOURCE("GPU_shader_shared.hh")

View File

@@ -18,12 +18,12 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_point_uniform_size_uniform_color_aa)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(smooth_radii_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(FLOAT, size)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float, size)
VERTEX_SOURCE("gpu_shader_2D_point_uniform_size_aa_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_point_uniform_color_aa_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)

View File

@@ -17,14 +17,14 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_point_uniform_size_uniform_color_outline_aa)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(smooth_radii_outline_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(VEC4, outlineColor)
PUSH_CONSTANT(FLOAT, size)
PUSH_CONSTANT(FLOAT, outlineWidth)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float4, outlineColor)
PUSH_CONSTANT(float, size)
PUSH_CONSTANT(float, outlineWidth)
VERTEX_SOURCE("gpu_shader_2D_point_uniform_size_outline_aa_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_point_uniform_color_outline_aa_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -17,12 +17,12 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_2D_point_varying_size_varying_color)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(1, FLOAT, size)
VERTEX_IN(2, VEC4, color)
VERTEX_IN(0, float2, pos)
VERTEX_IN(1, float, size)
VERTEX_IN(2, float4, color)
VERTEX_OUT(smooth_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_2D_point_varying_size_varying_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_point_varying_color_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -20,15 +20,15 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(gpu_widget_iface)
FLAT(FLOAT, discardFac)
FLAT(FLOAT, lineWidth)
FLAT(VEC2, outRectSize)
FLAT(VEC4, borderColor)
FLAT(VEC4, embossColor)
FLAT(VEC4, outRoundCorners)
NO_PERSPECTIVE(FLOAT, butCo)
NO_PERSPECTIVE(VEC2, uvInterp)
NO_PERSPECTIVE(VEC4, innerColor)
FLAT(float, discardFac)
FLAT(float, lineWidth)
FLAT(float2, outRectSize)
FLAT(float4, borderColor)
FLAT(float4, embossColor)
FLAT(float4, outRoundCorners)
NO_PERSPECTIVE(float, butCo)
NO_PERSPECTIVE(float2, uvInterp)
NO_PERSPECTIVE(float4, innerColor)
GPU_SHADER_INTERFACE_END()
/* TODO(fclem): Share with C code. */
@@ -37,10 +37,10 @@ GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_shared)
DEFINE_VALUE("MAX_PARAM", STRINGIFY(MAX_PARAM))
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC3, checkerColorAndSize)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float3, checkerColorAndSize)
VERTEX_OUT(gpu_widget_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("gpu_shader_2D_widget_base_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_widget_base_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)
@@ -52,30 +52,30 @@ DO_STATIC_COMPILATION()
* to be violated in some drivers. For example, macOS 10.15f.4 and Intel Iris
* causes #78307 when using gl_InstanceID outside of instance. */
DEFINE_VALUE("widgetID", "0")
PUSH_CONSTANT_ARRAY(VEC4, parameters, MAX_PARAM)
PUSH_CONSTANT_ARRAY(float4, parameters, MAX_PARAM)
ADDITIONAL_INFO(gpu_shader_2D_widget_shared)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_base_inst)
DO_STATIC_COMPILATION()
DEFINE_VALUE("widgetID", "gl_InstanceID")
PUSH_CONSTANT_ARRAY(VEC4, parameters, (MAX_PARAM * MAX_INSTANCE))
PUSH_CONSTANT_ARRAY(float4, parameters, (MAX_PARAM * MAX_INSTANCE))
ADDITIONAL_INFO(gpu_shader_2D_widget_shared)
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(gpu_widget_shadow_iface)
SMOOTH(FLOAT, shadowFalloff)
SMOOTH(FLOAT, innerMask)
SMOOTH(float, shadowFalloff)
SMOOTH(float, innerMask)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_shadow)
DO_STATIC_COMPILATION()
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT_ARRAY(VEC4, parameters, 4)
PUSH_CONSTANT(FLOAT, alpha)
VERTEX_IN(0, UINT, vflag)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT_ARRAY(float4, parameters, 4)
PUSH_CONSTANT(float, alpha)
VERTEX_IN(0, uint, vflag)
VERTEX_OUT(gpu_widget_shadow_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("gpu_shader_2D_widget_shadow_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_widget_shadow_frag.glsl")
GPU_SHADER_CREATE_END()

View File

@@ -18,9 +18,9 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_depth_only)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(flat_color_iface)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_3D_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_depth_only_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -19,11 +19,11 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_flat_color)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, color)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, color)
VERTEX_OUT(flat_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_3D_flat_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_flat_color_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)

View File

@@ -17,11 +17,11 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_image_common)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC2, texCoord)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float2, texCoord)
VERTEX_OUT(smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
SAMPLER(0, FLOAT_2D, image)
VERTEX_SOURCE("gpu_shader_3D_image_vert.glsl")
GPU_SHADER_CREATE_END()
@@ -34,7 +34,7 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_image_color)
ADDITIONAL_INFO(gpu_shader_3D_image_common)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(float4, color)
FRAGMENT_SOURCE("gpu_shader_image_color_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()

View File

@@ -19,24 +19,24 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_point_varying_size_varying_color)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, color)
VERTEX_IN(2, FLOAT, size)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, color)
VERTEX_IN(2, float, size)
VERTEX_OUT(smooth_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_3D_point_varying_size_varying_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_point_varying_color_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_point_uniform_size_uniform_color_aa)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(smooth_radii_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(FLOAT, size)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float, size)
VERTEX_SOURCE("gpu_shader_3D_point_uniform_size_aa_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_point_uniform_color_aa_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)

View File

@@ -20,25 +20,25 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(gpu_shader_3D_polyline_iface)
SMOOTH(VEC4, final_color)
SMOOTH(FLOAT, clip)
NO_PERSPECTIVE(FLOAT, smoothline)
SMOOTH(float4, final_color)
SMOOTH(float, clip)
NO_PERSPECTIVE(float, smoothline)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline)
DEFINE_VALUE("SMOOTH_WIDTH", "1.0f")
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC2, viewportSize)
PUSH_CONSTANT(FLOAT, lineWidth)
PUSH_CONSTANT(BOOL, lineSmooth)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float2, viewportSize)
PUSH_CONSTANT(float, lineWidth)
PUSH_CONSTANT(bool, lineSmooth)
STORAGE_BUF_FREQ(GPU_SSBO_POLYLINE_POS_BUF_SLOT, READ, float, pos[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_0)
PUSH_CONSTANT(IVEC3, gpu_vert_stride_count_offset)
PUSH_CONSTANT(INT, gpu_attr_0_len)
PUSH_CONSTANT(BOOL, gpu_attr_0_fetch_int)
PUSH_CONSTANT(BOOL, gpu_attr_1_fetch_unorm8)
PUSH_CONSTANT(int2, gpu_attr_0)
PUSH_CONSTANT(int3, gpu_vert_stride_count_offset)
PUSH_CONSTANT(int, gpu_attr_0_len)
PUSH_CONSTANT(bool, gpu_attr_0_fetch_int)
PUSH_CONSTANT(bool, gpu_attr_1_fetch_unorm8)
VERTEX_OUT(gpu_shader_3D_polyline_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("gpu_shader_3D_polyline_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_3D_polyline_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)
@@ -48,15 +48,15 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_uniform_color)
DO_STATIC_COMPILATION()
DEFINE("UNIFORM")
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(float4, color)
ADDITIONAL_INFO(gpu_shader_3D_polyline)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_uniform_color_clipped)
DO_STATIC_COMPILATION()
/* TODO(fclem): Put in a UBO to fit the 128byte requirement. */
PUSH_CONSTANT(MAT4, ModelMatrix)
PUSH_CONSTANT(VEC4, ClipPlane)
PUSH_CONSTANT(float4x4, ModelMatrix)
PUSH_CONSTANT(float4, ClipPlane)
DEFINE("CLIP")
ADDITIONAL_INFO(gpu_shader_3D_polyline_uniform_color)
GPU_SHADER_CREATE_END()
@@ -65,8 +65,8 @@ GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_flat_color)
DO_STATIC_COMPILATION()
DEFINE("FLAT")
STORAGE_BUF_FREQ(GPU_SSBO_POLYLINE_COL_BUF_SLOT, READ, float, color[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(INT, gpu_attr_1_len)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int, gpu_attr_1_len)
ADDITIONAL_INFO(gpu_shader_3D_polyline)
GPU_SHADER_CREATE_END()
@@ -74,7 +74,7 @@ GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_smooth_color)
DO_STATIC_COMPILATION()
DEFINE("SMOOTH")
STORAGE_BUF_FREQ(GPU_SSBO_POLYLINE_COL_BUF_SLOT, READ, float, color[], GEOMETRY)
PUSH_CONSTANT(IVEC2, gpu_attr_1)
PUSH_CONSTANT(INT, gpu_attr_1_len)
PUSH_CONSTANT(int2, gpu_attr_1)
PUSH_CONSTANT(int, gpu_attr_1_len)
ADDITIONAL_INFO(gpu_shader_3D_polyline)
GPU_SHADER_CREATE_END()

View File

@@ -19,11 +19,11 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_smooth_color)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC4, color)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float4, color)
VERTEX_OUT(smooth_color_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
VERTEX_SOURCE("gpu_shader_3D_smooth_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_3D_smooth_color_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)

View File

@@ -18,10 +18,10 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_shader_3D_uniform_color)
VERTEX_IN(0, VEC3, pos)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
VERTEX_IN(0, float3, pos)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
VERTEX_SOURCE("gpu_shader_3D_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_uniform_color_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)
@@ -36,13 +36,13 @@ GPU_SHADER_CREATE_END()
/* Confusing naming convention. But this is a version with only one local clip plane. */
GPU_SHADER_CREATE_INFO(gpu_shader_3D_clipped_uniform_color)
VERTEX_IN(0, VEC3, pos)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, color)
VERTEX_IN(0, float3, pos)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, color)
/* TODO(@fclem): Put those two to one UBO. */
PUSH_CONSTANT(MAT4, ModelMatrix)
PUSH_CONSTANT(VEC4, ClipPlane)
PUSH_CONSTANT(float4x4, ModelMatrix)
PUSH_CONSTANT(float4, ClipPlane)
VERTEX_SOURCE("gpu_shader_3D_clipped_uniform_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_uniform_color_frag.glsl")
ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)

View File

@@ -16,18 +16,18 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_NAMED_INTERFACE_INFO(gpencil_stroke_vert_iface, interp)
SMOOTH(VEC4, mColor)
SMOOTH(VEC2, mTexCoord)
SMOOTH(float4, mColor)
SMOOTH(float2, mTexCoord)
GPU_SHADER_NAMED_INTERFACE_END(interp)
GPU_SHADER_CREATE_INFO(gpu_shader_gpencil_stroke)
TYPEDEF_SOURCE("GPU_shader_shared.hh")
STORAGE_BUF_FREQ(0, READ, GreasePencilStrokeData, gp_vert_data[], GEOMETRY)
VERTEX_OUT(gpencil_stroke_vert_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
UNIFORM_BUF(0, GPencilStrokeData, gpencil_stroke_data)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(MAT4, ProjectionMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4x4, ProjectionMatrix)
FRAGMENT_SOURCE("gpu_shader_gpencil_stroke_frag.glsl")
VERTEX_SOURCE("gpu_shader_gpencil_stroke_vert.glsl")
DO_STATIC_COMPILATION()

View File

@@ -20,12 +20,12 @@
GPU_SHADER_CREATE_INFO(gpu_shader_icon)
DEFINE("DO_CORNER_MASKING")
VERTEX_OUT(smooth_icon_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC4, finalColor)
PUSH_CONSTANT(VEC4, rect_icon)
PUSH_CONSTANT(VEC4, rect_geom)
PUSH_CONSTANT(FLOAT, text_width)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float4, finalColor)
PUSH_CONSTANT(float4, rect_icon)
PUSH_CONSTANT(float4, rect_geom)
PUSH_CONSTANT(float, text_width)
SAMPLER(0, FLOAT_2D, image)
VERTEX_SOURCE("gpu_shader_icon_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_icon_frag.glsl")
@@ -33,9 +33,9 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_icon_multi)
VERTEX_IN(0, VEC2, pos)
VERTEX_IN(0, float2, pos)
VERTEX_OUT(flat_color_smooth_tex_coord_interp_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
UNIFORM_BUF(0, MultiIconCallData, multi_icon_data)
SAMPLER(0, FLOAT_2D, image)
TYPEDEF_SOURCE("GPU_shader_shared.hh")

View File

@@ -18,8 +18,8 @@
GPU_SHADER_CREATE_INFO(gpu_shader_index_2d_array_points)
LOCAL_GROUP_SIZE(16, 16, 1)
PUSH_CONSTANT(INT, elements_per_curve)
PUSH_CONSTANT(INT, ncurves)
PUSH_CONSTANT(int, elements_per_curve)
PUSH_CONSTANT(int, ncurves)
STORAGE_BUF(0, WRITE, uint, out_indices[])
COMPUTE_SOURCE("gpu_shader_index_2d_array_points.glsl")
DO_STATIC_COMPILATION()
@@ -27,8 +27,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_index_2d_array_lines)
LOCAL_GROUP_SIZE(16, 16, 1)
PUSH_CONSTANT(INT, elements_per_curve)
PUSH_CONSTANT(INT, ncurves)
PUSH_CONSTANT(int, elements_per_curve)
PUSH_CONSTANT(int, ncurves)
STORAGE_BUF(0, WRITE, uint, out_indices[])
COMPUTE_SOURCE("gpu_shader_index_2d_array_lines.glsl")
DO_STATIC_COMPILATION()
@@ -36,8 +36,8 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_index_2d_array_tris)
LOCAL_GROUP_SIZE(16, 16, 1)
PUSH_CONSTANT(INT, elements_per_curve)
PUSH_CONSTANT(INT, ncurves)
PUSH_CONSTANT(int, elements_per_curve)
PUSH_CONSTANT(int, ncurves)
STORAGE_BUF(0, WRITE, uint, out_indices[])
COMPUTE_SOURCE("gpu_shader_index_2d_array_tris.glsl")
DO_STATIC_COMPILATION()

View File

@@ -16,25 +16,25 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(keyframe_shape_iface)
FLAT(VEC4, finalColor)
FLAT(VEC4, finalOutlineColor)
FLAT(VEC4, radii)
FLAT(VEC4, thresholds)
FLAT(UINT, finalFlags)
FLAT(float4, finalColor)
FLAT(float4, finalOutlineColor)
FLAT(float4, radii)
FLAT(float4, thresholds)
FLAT(uint, finalFlags)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_keyframe_shape)
TYPEDEF_SOURCE("GPU_shader_shared.hh")
VERTEX_IN(0, VEC4, color)
VERTEX_IN(1, VEC4, outlineColor)
VERTEX_IN(2, VEC2, pos)
VERTEX_IN(3, FLOAT, size)
VERTEX_IN(4, UINT, flags)
VERTEX_IN(0, float4, color)
VERTEX_IN(1, float4, outlineColor)
VERTEX_IN(2, float2, pos)
VERTEX_IN(3, float, size)
VERTEX_IN(4, uint, flags)
VERTEX_OUT(keyframe_shape_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC2, ViewportSize)
PUSH_CONSTANT(FLOAT, outline_scale)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float2, ViewportSize)
PUSH_CONSTANT(float, outline_scale)
VERTEX_SOURCE("gpu_shader_keyframe_shape_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_keyframe_shape_frag.glsl")
DO_STATIC_COMPILATION()

View File

@@ -19,30 +19,30 @@
/* We leverage hardware interpolation to compute distance along the line. */
GPU_SHADER_INTERFACE_INFO(gpu_shader_line_dashed_interface)
NO_PERSPECTIVE(VEC2, stipple_start) /* In screen space */
FLAT(VEC2, stipple_pos)
NO_PERSPECTIVE(float2, stipple_start) /* In screen space */
FLAT(float2, stipple_pos)
GPU_SHADER_INTERFACE_END() /* In screen space */
GPU_SHADER_CREATE_INFO(gpu_shader_3D_line_dashed_uniform_color)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(0, float3, pos)
VERTEX_OUT(flat_color_iface)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(VEC2, viewport_size)
PUSH_CONSTANT(FLOAT, dash_width)
PUSH_CONSTANT(FLOAT, udash_factor) /* if > 1.0f, solid line. */
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float2, viewport_size)
PUSH_CONSTANT(float, dash_width)
PUSH_CONSTANT(float, udash_factor) /* if > 1.0f, solid line. */
/* TODO(fclem): Remove this. And decide to discard if color2 alpha is 0. */
PUSH_CONSTANT(INT, colors_len) /* Enabled if > 0, 1 for solid line. */
PUSH_CONSTANT(VEC4, color)
PUSH_CONSTANT(VEC4, color2)
PUSH_CONSTANT(int, colors_len) /* Enabled if > 0, 1 for solid line. */
PUSH_CONSTANT(float4, color)
PUSH_CONSTANT(float4, color2)
VERTEX_OUT(gpu_shader_line_dashed_interface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
VERTEX_SOURCE("gpu_shader_3D_line_dashed_uniform_color_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_2D_line_dashed_frag.glsl")
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_3D_line_dashed_uniform_color_clipped)
PUSH_CONSTANT(MAT4, ModelMatrix)
PUSH_CONSTANT(float4x4, ModelMatrix)
ADDITIONAL_INFO(gpu_shader_3D_line_dashed_uniform_color)
ADDITIONAL_INFO(gpu_clip_planes)
DO_STATIC_COMPILATION()

View File

@@ -17,14 +17,14 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(gpu_seq_strip_iface)
NO_PERSPECTIVE(VEC2, co_interp)
FLAT(UINT, strip_id)
NO_PERSPECTIVE(float2, co_interp)
FLAT(uint, strip_id)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_sequencer_strips)
VERTEX_OUT(gpu_seq_strip_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
UNIFORM_BUF(0, SeqStripDrawData, strip_data[GPU_SEQ_STRIP_DRAW_DATA_LEN])
UNIFORM_BUF(1, SeqContextDrawData, context_data)
TYPEDEF_SOURCE("GPU_shader_shared.hh")
@@ -34,15 +34,15 @@ DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_INTERFACE_INFO(gpu_seq_thumb_iface)
NO_PERSPECTIVE(VEC2, pos_interp)
NO_PERSPECTIVE(VEC2, texCoord_interp)
FLAT(UINT, thumb_id)
NO_PERSPECTIVE(float2, pos_interp)
NO_PERSPECTIVE(float2, texCoord_interp)
FLAT(uint, thumb_id)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_sequencer_thumbs)
VERTEX_OUT(gpu_seq_thumb_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
UNIFORM_BUF(0, SeqStripThumbData, thumb_data[GPU_SEQ_STRIP_DRAW_DATA_LEN])
UNIFORM_BUF(1, SeqContextDrawData, context_data)
SAMPLER(0, FLOAT_2D, image)

View File

@@ -16,17 +16,17 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(smooth_normal_iface)
SMOOTH(VEC3, normal)
SMOOTH(float3, normal)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_simple_lighting)
VERTEX_IN(0, VEC3, pos)
VERTEX_IN(1, VEC3, nor)
VERTEX_IN(0, float3, pos)
VERTEX_IN(1, float3, nor)
VERTEX_OUT(smooth_normal_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
FRAGMENT_OUT(0, float4, fragColor)
UNIFORM_BUF_FREQ(0, SimpleLightingData, simple_lighting_data, PASS)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(MAT3, NormalMatrix)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(float3x3, NormalMatrix)
TYPEDEF_SOURCE("GPU_shader_shared.hh")
VERTEX_SOURCE("gpu_shader_3D_normal_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_simple_lighting_frag.glsl")

View File

@@ -18,7 +18,7 @@
GPU_SHADER_CREATE_INFO(gpu_shader_test)
TYPEDEF_SOURCE("GPU_shader_shared.hh")
FRAGMENT_OUT(0, UVEC4, out_test)
FRAGMENT_OUT(0, uint4, out_test)
ADDITIONAL_INFO(draw_fullscreen)
GPU_SHADER_CREATE_END()
@@ -80,35 +80,35 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_push_constants_test)
ADDITIONAL_INFO(gpu_push_constants_base_test)
PUSH_CONSTANT(FLOAT, float_in)
PUSH_CONSTANT(VEC2, vec2_in)
PUSH_CONSTANT(VEC3, vec3_in)
PUSH_CONSTANT(VEC4, vec4_in)
PUSH_CONSTANT(float, float_in)
PUSH_CONSTANT(float2, vec2_in)
PUSH_CONSTANT(float3, vec3_in)
PUSH_CONSTANT(float4, vec4_in)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
/* Push constants size test. */
GPU_SHADER_CREATE_INFO(gpu_push_constants_128bytes_test)
ADDITIONAL_INFO(gpu_push_constants_test)
PUSH_CONSTANT_ARRAY(FLOAT, filler, 20)
PUSH_CONSTANT_ARRAY(float, filler, 20)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_push_constants_256bytes_test)
ADDITIONAL_INFO(gpu_push_constants_128bytes_test)
PUSH_CONSTANT_ARRAY(FLOAT, filler2, 32)
PUSH_CONSTANT_ARRAY(float, filler2, 32)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_push_constants_512bytes_test)
ADDITIONAL_INFO(gpu_push_constants_256bytes_test)
PUSH_CONSTANT_ARRAY(FLOAT, filler3, 64)
PUSH_CONSTANT_ARRAY(float, filler3, 64)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_push_constants_8192bytes_test)
ADDITIONAL_INFO(gpu_push_constants_512bytes_test)
PUSH_CONSTANT_ARRAY(FLOAT, filler4, 1920)
PUSH_CONSTANT_ARRAY(float, filler4, 1920)
DO_STATIC_COMPILATION()
GPU_SHADER_CREATE_END()
@@ -124,10 +124,10 @@ GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_specialization_constants_base_test)
STORAGE_BUF(0, WRITE, int, data_out[])
SPECIALIZATION_CONSTANT(FLOAT, float_in, 2)
SPECIALIZATION_CONSTANT(UINT, uint_in, 3)
SPECIALIZATION_CONSTANT(INT, int_in, 4)
SPECIALIZATION_CONSTANT(BOOL, bool_in, true)
SPECIALIZATION_CONSTANT(float, float_in, 2)
SPECIALIZATION_CONSTANT(uint, uint_in, 3)
SPECIALIZATION_CONSTANT(int, int_in, 4)
SPECIALIZATION_CONSTANT(bool, bool_in, true)
GPU_SHADER_CREATE_END()
GPU_SHADER_CREATE_INFO(gpu_compute_specialization_test)

View File

@@ -17,24 +17,24 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_INTERFACE_INFO(text_iface)
FLAT(VEC4, color_flat)
NO_PERSPECTIVE(VEC2, texCoord_interp)
FLAT(INT, glyph_offset)
FLAT(UINT, glyph_flags)
FLAT(IVEC2, glyph_dim)
FLAT(float4, color_flat)
NO_PERSPECTIVE(float2, texCoord_interp)
FLAT(int, glyph_offset)
FLAT(uint, glyph_flags)
FLAT(int2, glyph_dim)
GPU_SHADER_INTERFACE_END()
GPU_SHADER_CREATE_INFO(gpu_shader_text)
VERTEX_IN(0, VEC4, pos)
VERTEX_IN(1, VEC4, col)
VERTEX_IN(2, IVEC2, glyph_size)
VERTEX_IN(3, INT, offset)
VERTEX_IN(4, UINT, flags)
VERTEX_IN(0, float4, pos)
VERTEX_IN(1, float4, col)
VERTEX_IN(2, int2, glyph_size)
VERTEX_IN(3, int, offset)
VERTEX_IN(4, uint, flags)
VERTEX_OUT(text_iface)
FRAGMENT_OUT(0, VEC4, fragColor)
PUSH_CONSTANT(MAT4, ModelViewProjectionMatrix)
PUSH_CONSTANT(INT, glyph_tex_width_mask)
PUSH_CONSTANT(INT, glyph_tex_width_shift)
FRAGMENT_OUT(0, float4, fragColor)
PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
PUSH_CONSTANT(int, glyph_tex_width_mask)
PUSH_CONSTANT(int, glyph_tex_width_shift)
SAMPLER_FREQ(0, FLOAT_2D, glyph, PASS)
VERTEX_SOURCE("gpu_shader_text_vert.glsl")
FRAGMENT_SOURCE("gpu_shader_text_frag.glsl")

View File

@@ -16,6 +16,6 @@
#include "gpu_shader_create_info.hh"
GPU_SHADER_CREATE_INFO(gpu_srgb_to_framebuffer_space)
PUSH_CONSTANT(BOOL, srgbTarget)
PUSH_CONSTANT(bool, srgbTarget)
DEFINE("blender_srgb_to_framebuffer_space(a) a")
GPU_SHADER_CREATE_END()

View File

@@ -283,7 +283,7 @@ static void test_framebuffer_multi_viewport()
create_info.vertex_source("gpu_framebuffer_layer_viewport_test.glsl");
create_info.fragment_source("gpu_framebuffer_layer_viewport_test.glsl");
create_info.builtins(BuiltinBits::VIEWPORT_INDEX | BuiltinBits::LAYER);
create_info.fragment_out(0, Type::IVEC2, "out_value");
create_info.fragment_out(0, Type::int2_t, "out_value");
GPUShader *shader = GPU_shader_create_from_info(
reinterpret_cast<GPUShaderCreateInfo *>(&create_info));
@@ -352,7 +352,7 @@ static void test_framebuffer_subpass_input()
create_info_write.define("WRITE");
create_info_write.vertex_source("gpu_framebuffer_subpass_input_test.glsl");
create_info_write.fragment_source("gpu_framebuffer_subpass_input_test.glsl");
create_info_write.fragment_out(0, Type::INT, "out_value", DualBlend::NONE, 0);
create_info_write.fragment_out(0, Type::int_t, "out_value", DualBlend::NONE, 0);
GPUShader *shader_write = GPU_shader_create_from_info(
reinterpret_cast<GPUShaderCreateInfo *>(&create_info_write));
@@ -361,8 +361,8 @@ static void test_framebuffer_subpass_input()
create_info_read.define("READ");
create_info_read.vertex_source("gpu_framebuffer_subpass_input_test.glsl");
create_info_read.fragment_source("gpu_framebuffer_subpass_input_test.glsl");
create_info_read.subpass_in(0, Type::INT, ImageType::INT_2D, "in_value", 0);
create_info_read.fragment_out(1, Type::INT, "out_value");
create_info_read.subpass_in(0, Type::int_t, ImageType::INT_2D, "in_value", 0);
create_info_read.fragment_out(1, Type::int_t, "out_value");
GPUShader *shader_read = GPU_shader_create_from_info(
reinterpret_cast<GPUShaderCreateInfo *>(&create_info_read));

View File

@@ -25,7 +25,7 @@ TEST(std140, fl)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 16);
@@ -35,8 +35,8 @@ TEST(std140, _2fl)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 4, 8, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 4, 8, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 16);
@@ -46,9 +46,9 @@ TEST(std140, _3fl)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 4, 8, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 8, 12, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 4, 8, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 8, 12, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 16);
@@ -58,10 +58,10 @@ TEST(std140, _4fl)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 4, 8, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 8, 12, &offset);
def_attr<Std140>(shader::Type::FLOAT, 0, 12, 16, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 4, 8, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 8, 12, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 12, 16, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 16);
@@ -71,7 +71,7 @@ TEST(std140, fl2)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 2, 0, 32, &offset);
def_attr<Std140>(shader::Type::float_t, 2, 0, 32, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 32);
@@ -81,8 +81,8 @@ TEST(std140, fl_fl2)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::FLOAT, 2, 16, 48, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float_t, 2, 16, 48, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 48);
@@ -92,8 +92,8 @@ TEST(std140, fl_vec2)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::FLOAT, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::VEC2, 0, 8, 16, &offset);
def_attr<Std140>(shader::Type::float_t, 0, 0, 4, &offset);
def_attr<Std140>(shader::Type::float2_t, 0, 8, 16, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 16);
@@ -103,10 +103,10 @@ TEST(std140, gpu_shader_2D_widget_base)
{
uint32_t offset = 0;
def_attr<Std140>(shader::Type::VEC4, 12, 0, 192, &offset);
def_attr<Std140>(shader::Type::MAT4, 0, 192, 256, &offset);
def_attr<Std140>(shader::Type::VEC3, 0, 256, 268, &offset);
def_attr<Std140>(shader::Type::BOOL, 0, 268, 272, &offset);
def_attr<Std140>(shader::Type::float4_t, 12, 0, 192, &offset);
def_attr<Std140>(shader::Type::float4x4_t, 0, 192, 256, &offset);
def_attr<Std140>(shader::Type::float3_t, 0, 256, 268, &offset);
def_attr<Std140>(shader::Type::bool_t, 0, 268, 272, &offset);
align_end_of_struct<Std140>(&offset);
EXPECT_EQ(offset, 272);
@@ -116,8 +116,8 @@ TEST(std430, overlay_grid)
{
uint32_t offset = 0;
def_attr<Std430>(shader::Type::VEC3, 0, 0, 12, &offset);
def_attr<Std430>(shader::Type::INT, 0, 12, 16, &offset);
def_attr<Std430>(shader::Type::float3_t, 0, 0, 12, &offset);
def_attr<Std430>(shader::Type::int_t, 0, 12, 16, &offset);
align_end_of_struct<Std430>(&offset);
EXPECT_EQ(offset, 16);
@@ -127,8 +127,8 @@ TEST(std430, simple_lighting)
{
uint32_t offset = 0;
def_attr<Std430>(shader::Type::MAT4, 0, 0, 64, &offset);
def_attr<Std430>(shader::Type::MAT3, 0, 64, 112, &offset);
def_attr<Std430>(shader::Type::float4x4_t, 0, 0, 64, &offset);
def_attr<Std430>(shader::Type::float3x3_t, 0, 64, 112, &offset);
align_end_of_struct<Std430>(&offset);
EXPECT_EQ(offset, 112);
@@ -138,9 +138,9 @@ TEST(std430, compositor_cryptomatte_matte_compute)
{
uint32_t offset = 0;
def_attr<Std430>(shader::Type::VEC2, 0, 0, 8, &offset);
def_attr<Std430>(shader::Type::FLOAT, 0, 8, 12, &offset);
def_attr<Std430>(shader::Type::FLOAT, 32, 12, 140, &offset);
def_attr<Std430>(shader::Type::float2_t, 0, 0, 8, &offset);
def_attr<Std430>(shader::Type::float_t, 0, 8, 12, &offset);
def_attr<Std430>(shader::Type::float_t, 32, 12, 140, &offset);
align_end_of_struct<Std430>(&offset);
EXPECT_EQ(offset, 144);

View File

@@ -616,52 +616,52 @@ VkFormat to_vk_format(const GPUVertCompType type, const uint32_t size, GPUVertFe
VkFormat to_vk_format(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::float_t:
return VK_FORMAT_R32_SFLOAT;
case shader::Type::VEC2:
case shader::Type::float2_t:
return VK_FORMAT_R32G32_SFLOAT;
case shader::Type::VEC3:
case shader::Type::float3_t:
return VK_FORMAT_R32G32B32_SFLOAT;
case shader::Type::VEC4:
case shader::Type::float4_t:
return VK_FORMAT_R32G32B32A32_SFLOAT;
case shader::Type::UINT:
case shader::Type::uint_t:
return VK_FORMAT_R32_UINT;
case shader::Type::UVEC2:
case shader::Type::uint2_t:
return VK_FORMAT_R32G32_UINT;
case shader::Type::UVEC3:
case shader::Type::uint3_t:
return VK_FORMAT_R32G32B32_UINT;
case shader::Type::UVEC4:
case shader::Type::uint4_t:
return VK_FORMAT_R32G32B32A32_UINT;
case shader::Type::INT:
case shader::Type::int_t:
return VK_FORMAT_R32_SINT;
case shader::Type::IVEC2:
case shader::Type::int2_t:
return VK_FORMAT_R32G32_SINT;
case shader::Type::IVEC3:
case shader::Type::int3_t:
return VK_FORMAT_R32G32B32_SINT;
case shader::Type::IVEC4:
case shader::Type::int4_t:
return VK_FORMAT_R32G32B32A32_SINT;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return VK_FORMAT_R32G32B32A32_SFLOAT;
case shader::Type::MAT3:
case shader::Type::BOOL:
case shader::Type::VEC3_101010I2:
case shader::Type::UCHAR:
case shader::Type::UCHAR2:
case shader::Type::UCHAR3:
case shader::Type::UCHAR4:
case shader::Type::CHAR:
case shader::Type::CHAR2:
case shader::Type::CHAR3:
case shader::Type::CHAR4:
case shader::Type::SHORT:
case shader::Type::SHORT2:
case shader::Type::SHORT3:
case shader::Type::SHORT4:
case shader::Type::USHORT:
case shader::Type::USHORT2:
case shader::Type::USHORT3:
case shader::Type::USHORT4:
case shader::Type::float3x3_t:
case shader::Type::bool_t:
case shader::Type::float3_10_10_10_2_t:
case shader::Type::uchar_t:
case shader::Type::uchar2_t:
case shader::Type::uchar3_t:
case shader::Type::uchar4_t:
case shader::Type::char_t:
case shader::Type::char2_t:
case shader::Type::char3_t:
case shader::Type::char4_t:
case shader::Type::short_t:
case shader::Type::short2_t:
case shader::Type::short3_t:
case shader::Type::short4_t:
case shader::Type::ushort_t:
case shader::Type::ushort2_t:
case shader::Type::ushort3_t:
case shader::Type::ushort4_t:
break;
}

View File

@@ -23,45 +23,45 @@ uint32_t Std430::element_alignment(const shader::Type type, const bool is_array)
{
if (is_array) {
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 4;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::MAT3:
case shader::Type::MAT4:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
case shader::Type::float3x3_t:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
}
}
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 4;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
return 8;
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::MAT3:
case shader::Type::MAT4:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
case shader::Type::float3x3_t:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
@@ -72,26 +72,26 @@ uint32_t Std430::element_alignment(const shader::Type type, const bool is_array)
uint32_t Std430::element_components_len(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 1;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
return 2;
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
return 3;
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
return 4;
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return 12;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
@@ -102,25 +102,25 @@ uint32_t Std430::element_components_len(const shader::Type type)
uint32_t Std430::array_components_len(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 1;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
return 2;
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
return 4;
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return 12;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
@@ -130,7 +130,7 @@ uint32_t Std430::array_components_len(const shader::Type type)
uint32_t Std430::inner_row_padding(const shader::Type type)
{
return type == shader::Type::MAT3 ? 3 : 0;
return type == shader::Type::float3x3_t ? 3 : 0;
}
/** \} */
@@ -150,23 +150,23 @@ uint32_t Std140::element_alignment(const shader::Type type, const bool is_array)
return 16;
}
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 4;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
return 8;
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::MAT3:
case shader::Type::MAT4:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
case shader::Type::float3x3_t:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
@@ -177,26 +177,26 @@ uint32_t Std140::element_alignment(const shader::Type type, const bool is_array)
uint32_t Std140::element_components_len(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
return 1;
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
return 2;
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
return 3;
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
return 4;
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return 12;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");
@@ -207,23 +207,23 @@ uint32_t Std140::element_components_len(const shader::Type type)
uint32_t Std140::array_components_len(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::UINT:
case shader::Type::INT:
case shader::Type::BOOL:
case shader::Type::VEC2:
case shader::Type::UVEC2:
case shader::Type::IVEC2:
case shader::Type::VEC3:
case shader::Type::UVEC3:
case shader::Type::IVEC3:
case shader::Type::VEC4:
case shader::Type::UVEC4:
case shader::Type::IVEC4:
case shader::Type::float_t:
case shader::Type::uint_t:
case shader::Type::int_t:
case shader::Type::bool_t:
case shader::Type::float2_t:
case shader::Type::uint2_t:
case shader::Type::int2_t:
case shader::Type::float3_t:
case shader::Type::uint3_t:
case shader::Type::int3_t:
case shader::Type::float4_t:
case shader::Type::uint4_t:
case shader::Type::int4_t:
return 4;
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return 12;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return 16;
default:
BLI_assert_msg(false, "Type not supported in dynamic structs.");

View File

@@ -114,7 +114,7 @@ static void reserve(const shader::Type type, int32_t array_size, uint32_t *r_off
*/
template<typename LayoutT> static void align_end_of_struct(uint32_t *r_offset)
{
align<LayoutT>(shader::Type::VEC4, 0, r_offset);
align<LayoutT>(shader::Type::float4_t, 0, r_offset);
}
} // namespace blender::gpu

View File

@@ -51,35 +51,35 @@ static const char *to_string(const Interpolation &interp)
static const char *to_string(const Type &type)
{
switch (type) {
case Type::FLOAT:
case Type::float_t:
return "float";
case Type::VEC2:
case Type::float2_t:
return "vec2";
case Type::VEC3:
case Type::float3_t:
return "vec3";
case Type::VEC4:
case Type::float4_t:
return "vec4";
case Type::MAT3:
case Type::float3x3_t:
return "mat3";
case Type::MAT4:
case Type::float4x4_t:
return "mat4";
case Type::UINT:
case Type::uint_t:
return "uint";
case Type::UVEC2:
case Type::uint2_t:
return "uvec2";
case Type::UVEC3:
case Type::uint3_t:
return "uvec3";
case Type::UVEC4:
case Type::uint4_t:
return "uvec4";
case Type::INT:
case Type::int_t:
return "int";
case Type::IVEC2:
case Type::int2_t:
return "ivec2";
case Type::IVEC3:
case Type::int3_t:
return "ivec3";
case Type::IVEC4:
case Type::int4_t:
return "ivec4";
case Type::BOOL:
case Type::bool_t:
return "bool";
default:
return "unknown";
@@ -407,10 +407,10 @@ static void print_resource(std::ostream &os,
inline int get_location_count(const Type &type)
{
if (type == shader::Type::MAT4) {
if (type == shader::Type::float4x4_t) {
return 4;
}
else if (type == shader::Type::MAT3) {
else if (type == shader::Type::float3x3_t) {
return 3;
}
return 1;
@@ -742,16 +742,16 @@ std::string VKShader::resources_declare(const shader::ShaderCreateInfo &info) co
for (const SpecializationConstant &sc : info.specialization_constants_) {
ss << "layout (constant_id=" << constant_id++ << ") const ";
switch (sc.type) {
case Type::INT:
case Type::int_t:
ss << "int " << sc.name << "=" << std::to_string(sc.value.i) << ";\n";
break;
case Type::UINT:
case Type::uint_t:
ss << "uint " << sc.name << "=" << std::to_string(sc.value.u) << "u;\n";
break;
case Type::BOOL:
case Type::bool_t:
ss << "bool " << sc.name << "=" << (sc.value.u ? "true" : "false") << ";\n";
break;
case Type::FLOAT:
case Type::float_t:
/* Use uint representation to allow exact same bit pattern even if NaN. uintBitsToFloat
* isn't supported during global const initialization. */
ss << "uint " << sc.name << "_uint=" << std::to_string(sc.value.u) << "u;\n";
@@ -864,48 +864,48 @@ std::string VKShader::vertex_interface_declare(const shader::ShaderCreateInfo &i
static Type to_component_type(const Type &type)
{
switch (type) {
case Type::FLOAT:
case Type::VEC2:
case Type::VEC3:
case Type::VEC4:
case Type::MAT3:
case Type::MAT4:
return Type::FLOAT;
case Type::UINT:
case Type::UVEC2:
case Type::UVEC3:
case Type::UVEC4:
return Type::UINT;
case Type::INT:
case Type::IVEC2:
case Type::IVEC3:
case Type::IVEC4:
case Type::BOOL:
return Type::INT;
case Type::float_t:
case Type::float2_t:
case Type::float3_t:
case Type::float4_t:
case Type::float3x3_t:
case Type::float4x4_t:
return Type::float_t;
case Type::uint_t:
case Type::uint2_t:
case Type::uint3_t:
case Type::uint4_t:
return Type::uint_t;
case Type::int_t:
case Type::int2_t:
case Type::int3_t:
case Type::int4_t:
case Type::bool_t:
return Type::int_t;
/* Alias special types. */
case Type::UCHAR:
case Type::UCHAR2:
case Type::UCHAR3:
case Type::UCHAR4:
case Type::USHORT:
case Type::USHORT2:
case Type::USHORT3:
case Type::USHORT4:
return Type::UINT;
case Type::CHAR:
case Type::CHAR2:
case Type::CHAR3:
case Type::CHAR4:
case Type::SHORT:
case Type::SHORT2:
case Type::SHORT3:
case Type::SHORT4:
return Type::INT;
case Type::VEC3_101010I2:
return Type::FLOAT;
case Type::uchar_t:
case Type::uchar2_t:
case Type::uchar3_t:
case Type::uchar4_t:
case Type::ushort_t:
case Type::ushort2_t:
case Type::ushort3_t:
case Type::ushort4_t:
return Type::uint_t;
case Type::char_t:
case Type::char2_t:
case Type::char3_t:
case Type::char4_t:
case Type::short_t:
case Type::short2_t:
case Type::short3_t:
case Type::short4_t:
return Type::int_t;
case Type::float3_10_10_10_2_t:
return Type::float_t;
}
BLI_assert_unreachable();
return Type::FLOAT;
return Type::float_t;
}
std::string VKShader::fragment_interface_declare(const shader::ShaderCreateInfo &info) const
@@ -962,10 +962,10 @@ std::string VKShader::fragment_interface_declare(const shader::ShaderCreateInfo
Type component_type = to_component_type(input.type);
char typePrefix;
switch (component_type) {
case Type::INT:
case Type::int_t:
typePrefix = 'i';
break;
case Type::UINT:
case Type::uint_t:
typePrefix = 'u';
break;
default:
@@ -1045,13 +1045,13 @@ std::string VKShader::fragment_interface_declare(const shader::ShaderCreateInfo
ss << "layout(input_attachment_index=" << input.index << ", set=0, binding=" << location
<< ") uniform ";
switch (to_component_type(input.type)) {
case Type::INT:
case Type::int_t:
ss << "isubpassInput";
break;
case Type::UINT:
case Type::uint_t:
ss << "usubpassInput";
break;
case Type::FLOAT:
case Type::float_t:
default:
ss << "subpassInput";
break;

View File

@@ -135,40 +135,40 @@ static uint32_t to_binding_location_len(const GPUVertAttr &attribute)
static uint32_t to_binding_location_len(const shader::Type type)
{
switch (type) {
case shader::Type::FLOAT:
case shader::Type::VEC2:
case shader::Type::VEC3:
case shader::Type::VEC4:
case shader::Type::UINT:
case shader::Type::UVEC2:
case shader::Type::UVEC3:
case shader::Type::UVEC4:
case shader::Type::INT:
case shader::Type::IVEC2:
case shader::Type::IVEC3:
case shader::Type::IVEC4:
case shader::Type::BOOL:
case shader::Type::VEC3_101010I2:
case shader::Type::UCHAR:
case shader::Type::UCHAR2:
case shader::Type::UCHAR3:
case shader::Type::UCHAR4:
case shader::Type::CHAR:
case shader::Type::CHAR2:
case shader::Type::CHAR3:
case shader::Type::CHAR4:
case shader::Type::SHORT:
case shader::Type::SHORT2:
case shader::Type::SHORT3:
case shader::Type::SHORT4:
case shader::Type::USHORT:
case shader::Type::USHORT2:
case shader::Type::USHORT3:
case shader::Type::USHORT4:
case shader::Type::float_t:
case shader::Type::float2_t:
case shader::Type::float3_t:
case shader::Type::float4_t:
case shader::Type::uint_t:
case shader::Type::uint2_t:
case shader::Type::uint3_t:
case shader::Type::uint4_t:
case shader::Type::int_t:
case shader::Type::int2_t:
case shader::Type::int3_t:
case shader::Type::int4_t:
case shader::Type::bool_t:
case shader::Type::float3_10_10_10_2_t:
case shader::Type::uchar_t:
case shader::Type::uchar2_t:
case shader::Type::uchar3_t:
case shader::Type::uchar4_t:
case shader::Type::char_t:
case shader::Type::char2_t:
case shader::Type::char3_t:
case shader::Type::char4_t:
case shader::Type::short_t:
case shader::Type::short2_t:
case shader::Type::short3_t:
case shader::Type::short4_t:
case shader::Type::ushort_t:
case shader::Type::ushort2_t:
case shader::Type::ushort3_t:
case shader::Type::ushort4_t:
return 1;
case shader::Type::MAT3:
case shader::Type::float3x3_t:
return 3;
case shader::Type::MAT4:
case shader::Type::float4x4_t:
return 4;
}

View File

@@ -739,7 +739,9 @@ static PyObject *pygpu_shader_attrs_info_get(BPyGPUShader *self, PyObject * /*ar
continue;
}
type = STREQ(name, "pos") ? int(Type::VEC3) : STREQ(name, "color") ? int(Type::VEC4) : -1;
type = STREQ(name, "pos") ? int(Type::float3_t) :
STREQ(name, "color") ? int(Type::float4_t) :
-1;
PyObject *py_type;
if (type != -1) {
py_type = PyUnicode_InternFromString(

View File

@@ -64,21 +64,21 @@ static const PyC_FlagSet pygpu_qualifiers[] = {
" - ``IVEC4``\n" \
" - ``BOOL``\n"
const PyC_StringEnumItems pygpu_attrtype_items[] = {
{int(Type::FLOAT), "FLOAT"},
{int(Type::VEC2), "VEC2"},
{int(Type::VEC3), "VEC3"},
{int(Type::VEC4), "VEC4"},
{int(Type::MAT3), "MAT3"},
{int(Type::MAT4), "MAT4"},
{int(Type::UINT), "UINT"},
{int(Type::UVEC2), "UVEC2"},
{int(Type::UVEC3), "UVEC3"},
{int(Type::UVEC4), "UVEC4"},
{int(Type::INT), "INT"},
{int(Type::IVEC2), "IVEC2"},
{int(Type::IVEC3), "IVEC3"},
{int(Type::IVEC4), "IVEC4"},
{int(Type::BOOL), "BOOL"},
{int(Type::float_t), "FLOAT"},
{int(Type::float2_t), "VEC2"},
{int(Type::float3_t), "VEC3"},
{int(Type::float4_t), "VEC4"},
{int(Type::float3x3_t), "MAT3"},
{int(Type::float4x4_t), "MAT4"},
{int(Type::uint_t), "UINT"},
{int(Type::uint2_t), "UVEC2"},
{int(Type::uint3_t), "UVEC3"},
{int(Type::uint4_t), "UVEC4"},
{int(Type::int_t), "INT"},
{int(Type::int2_t), "IVEC2"},
{int(Type::int3_t), "IVEC3"},
{int(Type::int4_t), "IVEC4"},
{int(Type::bool_t), "BOOL"},
{0, nullptr},
};
@@ -846,55 +846,55 @@ static PyObject *pygpu_shader_info_sampler(BPyGPUShaderCreateInfo *self, PyObjec
static int constant_type_size(Type type)
{
switch (type) {
case Type::BOOL:
case Type::FLOAT:
case Type::INT:
case Type::UINT:
case Type::UCHAR4:
case Type::CHAR4:
case Type::VEC3_101010I2:
case Type::USHORT2:
case Type::SHORT2:
case Type::bool_t:
case Type::float_t:
case Type::int_t:
case Type::uint_t:
case Type::uchar4_t:
case Type::char4_t:
case Type::float3_10_10_10_2_t:
case Type::ushort2_t:
case Type::short2_t:
return 4;
break;
case Type::USHORT3:
case Type::SHORT3:
case Type::ushort3_t:
case Type::short3_t:
return 6;
break;
case Type::VEC2:
case Type::UVEC2:
case Type::IVEC2:
case Type::USHORT4:
case Type::SHORT4:
case Type::float2_t:
case Type::uint2_t:
case Type::int2_t:
case Type::ushort4_t:
case Type::short4_t:
return 8;
break;
case Type::VEC3:
case Type::UVEC3:
case Type::IVEC3:
case Type::float3_t:
case Type::uint3_t:
case Type::int3_t:
return 12;
break;
case Type::VEC4:
case Type::UVEC4:
case Type::IVEC4:
case Type::float4_t:
case Type::uint4_t:
case Type::int4_t:
return 16;
break;
case Type::MAT3:
case Type::float3x3_t:
return 36 + 3 * 4;
case Type::MAT4:
case Type::float4x4_t:
return 64;
break;
case Type::UCHAR:
case Type::CHAR:
case Type::uchar_t:
case Type::char_t:
return 1;
break;
case Type::UCHAR2:
case Type::CHAR2:
case Type::USHORT:
case Type::SHORT:
case Type::uchar2_t:
case Type::char2_t:
case Type::ushort_t:
case Type::short_t:
return 2;
break;
case Type::UCHAR3:
case Type::CHAR3:
case Type::uchar3_t:
case Type::char3_t:
return 3;
break;
}