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:
committed by
Clément Foucault
parent
aab2b6004b
commit
9990273d04
@@ -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;
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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++;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) \
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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.");
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user