Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-02-03 00:11:26 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-02-03 00:11:26 +0300
commite9fe318e8e219ac289d79dc11ad4de85f756a09c (patch)
tree0cecdd55a249016730ddd1b467f81298e1b939bf /source/blender/draw/engines/eevee/shaders/infos
parent8a20e3f229af19e315c73de841f7be217835c88a (diff)
EEVEE: Fix more shader compilation issues
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/infos')
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh9
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh55
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_raytrace_info.hh7
3 files changed, 40 insertions, 31 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
index e0c1d20d5ab..9a249706cc4 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
@@ -8,7 +8,8 @@
GPU_SHADER_CREATE_INFO(eevee_utility_texture).sampler(8, ImageType::FLOAT_2D_ARRAY, "utility_tx");
GPU_SHADER_CREATE_INFO(eevee_deferred_direct)
- .uniform_buf(0, "SamplingData", "sampling")
+ .do_static_compilation(true)
+ .auto_resource_location(true)
.sampler(0, ImageType::FLOAT_2D, "hiz_tx")
.sampler(1, ImageType::FLOAT_2D, "emission_data_tx")
.sampler(2, ImageType::FLOAT_2D, "transmit_color_tx")
@@ -26,7 +27,8 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_direct)
"eevee_utility_texture",
"eevee_lightprobe_data",
"eevee_light_data",
- "eevee_shadow_data");
+ "eevee_shadow_data",
+ "eevee_sampling_data");
/** \} */
@@ -35,6 +37,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_direct)
* \{ */
GPU_SHADER_CREATE_INFO(eevee_deferred_holdout)
+ .do_static_compilation(true)
.sampler(0, ImageType::FLOAT_2D, "combined_tx")
.sampler(1, ImageType::FLOAT_2D, "transparency_data_tx")
.fragment_out(5, Type::VEC3, "out_holdout")
@@ -49,6 +52,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_holdout)
* \{ */
GPU_SHADER_CREATE_INFO(eevee_deferred_transparent)
+ .do_static_compilation(true)
.sampler(0, ImageType::UINT_2D, "volume_data_tx")
.sampler(1, ImageType::FLOAT_2D, "transparency_data_tx")
.fragment_out(0, Type::VEC4, "out_combined")
@@ -68,6 +72,7 @@ GPU_SHADER_CREATE_INFO(eevee_deferred_transparent)
* \{ */
GPU_SHADER_CREATE_INFO(eevee_deferred_volume)
+ .do_static_compilation(true)
.sampler(0, ImageType::FLOAT_2D, "transparency_data_tx")
.sampler(1, ImageType::UINT_2D, "volume_data_tx")
.fragment_out(0, Type::VEC4, "out_combined")
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
index 3a96c665513..a3dcc59514c 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
@@ -10,6 +10,10 @@ GPU_SHADER_CREATE_INFO(eevee_shared)
.typedef_source("eevee_defines.hh")
.typedef_source("eevee_shader_shared.hh");
+GPU_SHADER_CREATE_INFO(eevee_sampling_data)
+ .additional_info("eevee_shared")
+ .uniform_buf(15, "SamplingData", "sampling");
+
/** \} */
/* -------------------------------------------------------------------- */
@@ -20,17 +24,26 @@ GPU_SHADER_CREATE_INFO(eevee_surface_mesh)
.vertex_in(0, Type::VEC3, "pos")
.vertex_in(1, Type::VEC3, "nor")
.vertex_source("eevee_surface_mesh_vert.glsl")
- .additional_info("draw_mesh");
+ .additional_info("draw_mesh", "draw_resource_id_varying");
GPU_SHADER_CREATE_INFO(eevee_surface_gpencil)
.define("MAT_GEOM_GPENCIL")
.vertex_source("eevee_surface_gpencil_vert.glsl")
- .additional_info("draw_gpencil");
+ .additional_info("draw_gpencil", "draw_resource_id_varying");
GPU_SHADER_CREATE_INFO(eevee_surface_hair)
.define("MAT_GEOM_HAIR")
.vertex_source("eevee_surface_hair_vert.glsl")
- .additional_info("draw_hair");
+ .additional_info("draw_hair", "draw_resource_id_varying");
+
+GPU_SHADER_CREATE_INFO(eevee_surface_lookdev)
+ .vertex_in(0, Type::VEC3, "pos")
+ .vertex_in(1, Type::VEC3, "nor")
+ .vertex_source("eevee_surface_lookdev_vert.glsl");
+
+GPU_SHADER_CREATE_INFO(eevee_surface_world)
+ .builtins(BuiltinBits::VERTEX_ID)
+ .vertex_source("eevee_surface_world_vert.glsl");
/** \} */
@@ -41,6 +54,8 @@ GPU_SHADER_CREATE_INFO(eevee_surface_hair)
GPU_SHADER_INTERFACE_INFO(eevee_surface_iface, "interp")
.smooth(Type::VEC3, "P")
.smooth(Type::VEC3, "N")
+ .smooth(Type::VEC2, "barycentric_coords")
+ .smooth(Type::VEC3, "barycentric_dists")
.smooth(Type::VEC3, "hair_binormal")
.smooth(Type::FLOAT, "hair_time")
.smooth(Type::FLOAT, "hair_time_width")
@@ -70,12 +85,8 @@ GPU_SHADER_CREATE_INFO(eevee_surface_deferred)
.fragment_source("eevee_surface_deferred_frag.glsl")
.additional_info("eevee_sampling_data", "eevee_utility_texture");
-GPU_SHADER_CREATE_INFO(eevee_sampling_data).uniform_buf(0, "SamplingData", "sampling");
-
GPU_SHADER_CREATE_INFO(eevee_surface_forward)
- .uniform_buf(0, "HiZData", "hiz")
- .sampler(0, ImageType::FLOAT_2D, "hiz_tx")
- .sampler(1, ImageType::FLOAT_2D, "radiance_tx")
+ .auto_resource_location(true)
.vertex_out(eevee_surface_iface)
.fragment_out(0, Type::VEC4, "out_radiance", DualBlend::SRC_0)
.fragment_out(0, Type::VEC4, "out_transmittance", DualBlend::SRC_1)
@@ -83,47 +94,41 @@ GPU_SHADER_CREATE_INFO(eevee_surface_forward)
.additional_info("eevee_transmittance_data",
"eevee_sampling_data",
"eevee_lightprobe_data",
+ "eevee_raytrace_data",
+ "eevee_utility_texture",
"eevee_light_data",
"eevee_shadow_data");
GPU_SHADER_CREATE_INFO(eevee_surface_depth)
.vertex_out(eevee_surface_iface)
.fragment_source("eevee_surface_depth_frag.glsl")
- .additional_info("eevee_sampling_data");
+ .additional_info("eevee_sampling_data", "eevee_utility_texture");
GPU_SHADER_CREATE_INFO(eevee_surface_depth_simple)
.vertex_out(eevee_surface_iface)
.fragment_source("eevee_surface_depth_simple_frag.glsl");
-/** \} */
-
-/* -------------------------------------------------------------------- */
-/** \name Background
- * \{ */
-
GPU_SHADER_CREATE_INFO(eevee_surface_background)
.vertex_out(eevee_surface_iface)
.fragment_out(0, Type::VEC4, "out_background")
- .fragment_source("eevee_surface_background_frag.glsl");
+ .fragment_source("eevee_surface_background_frag.glsl")
+ .additional_info("eevee_utility_texture");
-GPU_SHADER_CREATE_INFO(eevee_surface_world)
- .vertex_source("eevee_surface_world_vert.glsl")
- .additional_info("eevee_surface_background");
+/** \} */
-GPU_SHADER_CREATE_INFO(eevee_surface_lookdev)
- .vertex_in(0, Type::VEC3, "pos")
- .vertex_in(1, Type::VEC3, "nor")
- .vertex_source("eevee_surface_lookdev_vert.glsl")
- .additional_info("eevee_surface_background");
+/* -------------------------------------------------------------------- */
+/** \name Lookdev
+ * \{ */
GPU_SHADER_CREATE_INFO(eevee_background_lookdev)
+ .additional_info("eevee_shared")
.uniform_buf(0, "LightProbeInfoData", "probes_info")
.sampler(0, ImageType::FLOAT_CUBE_ARRAY, "lightprobe_cube_tx")
.push_constant(Type::FLOAT, "opacity")
.push_constant(Type::FLOAT, "blur")
.fragment_out(0, Type::VEC4, "out_background")
.fragment_source("eevee_lookdev_background_frag.glsl")
- .additional_info("draw_fullscreen");
+ .additional_info("draw_fullscreen", "eevee_utility_texture");
/** \} */
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_raytrace_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_raytrace_info.hh
index 2d3961f505b..76f125c0275 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_raytrace_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_raytrace_info.hh
@@ -34,7 +34,6 @@ GPU_SHADER_CREATE_INFO(eevee_raytrace_raygen)
.uniform_buf(1, "HiZData", "hiz")
.uniform_buf(2, "CubemapData", "cubes[CULLING_ITEM_BATCH]")
.uniform_buf(3, "LightProbeInfoData", "probes_info")
- .uniform_buf(4, "SamplingData", "sampling")
.sampler(0, ImageType::FLOAT_2D, "hiz_tx")
.sampler(1, ImageType::FLOAT_2D, "hiz_front_tx")
.sampler(2, ImageType::FLOAT_CUBE_ARRAY, "lightprobe_cube_tx")
@@ -46,7 +45,7 @@ GPU_SHADER_CREATE_INFO(eevee_raytrace_raygen)
.fragment_out(0, Type::VEC4, "out_ray_data")
.fragment_out(1, Type::VEC4, "out_ray_radiance")
.fragment_source("eevee_raytrace_raygen_frag.glsl")
- .additional_info("draw_fullscreen", "eevee_utility_texture");
+ .additional_info("draw_fullscreen", "eevee_utility_texture", "eevee_sampling_data");
EEVEE_RAYTRACE_SKIP_VARIATIONS(eevee_raytrace_raygen, "eevee_raytrace_raygen");
@@ -96,8 +95,8 @@ GPU_SHADER_CREATE_INFO(eevee_raytrace_data)
.uniform_buf(0, "RaytraceData", "raytrace_diffuse")
.uniform_buf(1, "RaytraceData", "raytrace_reflection")
.uniform_buf(2, "RaytraceData", "raytrace_refraction")
+ .uniform_buf(3, "HiZData", "hiz")
.sampler(0, ImageType::FLOAT_2D, "hiz_tx")
- .sampler(1, ImageType::FLOAT_2D, "radiance_tx")
- .additional_info("eevee_sampling_data");
+ .sampler(1, ImageType::FLOAT_2D, "radiance_tx");
/** \} */