diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-02-03 00:11:26 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-02-03 00:11:26 +0300 |
commit | e9fe318e8e219ac289d79dc11ad4de85f756a09c (patch) | |
tree | 0cecdd55a249016730ddd1b467f81298e1b939bf /source/blender/draw/engines/eevee/shaders/infos | |
parent | 8a20e3f229af19e315c73de841f7be217835c88a (diff) |
EEVEE: Fix more shader compilation issues
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/infos')
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"); /** \} */ |