[Bf-blender-cvs] [709c9f6bf0f] tmp-eevee-glsl-cleanup: EEVEE: Split bsdf_common_lib.glsl into smaller files
Clément Foucault
noreply at git.blender.org
Sat Jul 11 14:42:17 CEST 2020
Commit: 709c9f6bf0fd777e637f5650dbb8f0fa352cde7c
Author: Clément Foucault
Date: Tue Jul 7 18:49:50 2020 +0200
Branches: tmp-eevee-glsl-cleanup
https://developer.blender.org/rB709c9f6bf0fd777e637f5650dbb8f0fa352cde7c
EEVEE: Split bsdf_common_lib.glsl into smaller files
===================================================================
M source/blender/draw/CMakeLists.txt
M source/blender/draw/engines/eevee/eevee_depth_of_field.c
M source/blender/draw/engines/eevee/eevee_lookdev.c
M source/blender/draw/engines/eevee/eevee_lut_gen.c
M source/blender/draw/engines/eevee/eevee_materials.c
M source/blender/draw/engines/eevee/eevee_mist.c
M source/blender/draw/engines/eevee/eevee_motion_blur.c
M source/blender/draw/engines/eevee/eevee_occlusion.c
M source/blender/draw/engines/eevee/eevee_private.h
M source/blender/draw/engines/eevee/eevee_renderpasses.c
M source/blender/draw/engines/eevee/eevee_screen_raytrace.c
M source/blender/draw/engines/eevee/eevee_shaders.c
M source/blender/draw/engines/eevee/eevee_shadows.c
M source/blender/draw/engines/eevee/eevee_subsurface.c
M source/blender/draw/engines/eevee/eevee_volumes.c
M source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
M source/blender/draw/engines/eevee/shaders/background_vert.glsl
M source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
M source/blender/draw/engines/eevee/shaders/bsdf_lut_frag.glsl
M source/blender/draw/engines/eevee/shaders/bsdf_sampling_lib.glsl
M source/blender/draw/engines/eevee/shaders/btdf_lut_frag.glsl
A source/blender/draw/engines/eevee/shaders/closure_lib.glsl
R093 source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl source/blender/draw/engines/eevee/shaders/closure_lit_lib.glsl
M source/blender/draw/engines/eevee/shaders/common_uniforms_lib.glsl
A source/blender/draw/engines/eevee/shaders/common_utiltex_lib.glsl
D source/blender/draw/engines/eevee/shaders/default_frag.glsl
M source/blender/draw/engines/eevee/shaders/default_world_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_dof_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_dof_vert.glsl
M source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_motion_blur_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_subsurface_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_temporal_aa.glsl
M source/blender/draw/engines/eevee/shaders/effect_translucency_frag.glsl
M source/blender/draw/engines/eevee/shaders/effect_velocity_resolve_frag.glsl
M source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_filter_diffuse_frag.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_filter_glossy_frag.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_filter_visibility_frag.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_lib.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_planar_display_frag.glsl
M source/blender/draw/engines/eevee/shaders/lightprobe_planar_display_vert.glsl
M source/blender/draw/engines/eevee/shaders/lights_lib.glsl
M source/blender/draw/engines/eevee/shaders/ltc_lib.glsl
M source/blender/draw/engines/eevee/shaders/object_motion_vert.glsl
M source/blender/draw/engines/eevee/shaders/prepass_frag.glsl
M source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
M source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
A source/blender/draw/engines/eevee/shaders/renderpass_lib.glsl
M source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
M source/blender/draw/engines/eevee/shaders/shadow_accum_frag.glsl
M source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
M source/blender/draw/engines/eevee/shaders/ssr_lib.glsl
A source/blender/draw/engines/eevee/shaders/surface_frag.glsl
A source/blender/draw/engines/eevee/shaders/surface_lib.glsl
R072 source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl source/blender/draw/engines/eevee/shaders/surface_vert.glsl
M source/blender/draw/engines/eevee/shaders/update_noise_frag.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_frag.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_geom.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_integration_frag.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_resolve_frag.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_scatter_frag.glsl
M source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
M source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
M source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
M source/blender/draw/engines/overlay/shaders/armature_sphere_solid_frag.glsl
M source/blender/draw/engines/overlay/shaders/grid_frag.glsl
M source/blender/draw/engines/overlay/shaders/grid_vert.glsl
M source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl
M source/blender/draw/engines/workbench/shaders/workbench_shader_interface_lib.glsl
M source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
M source/blender/draw/engines/workbench/workbench_shader.c
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_manager.h
M source/blender/draw/intern/draw_manager_shader.c
M source/blender/draw/intern/shaders/common_hair_lib.glsl
A source/blender/draw/intern/shaders/common_math_geom_lib.glsl
A source/blender/draw/intern/shaders/common_math_lib.glsl
M source/blender/draw/intern/shaders/common_view_lib.glsl
M source/blender/gpu/intern/gpu_codegen.c
M source/blender/gpu/intern/gpu_shader.c
M source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl
M source/blender/gpu/shaders/material/gpu_shader_material_hair_info.glsl
M source/blender/gpu/shaders/material/gpu_shader_material_principled.glsl
M source/blender/gpu/shaders/material/gpu_shader_material_world_normals.glsl
===================================================================
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index acf7a0dfa8d..b5b15d9ff5f 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -186,10 +186,11 @@ set(LIB
)
data_to_c_simple(engines/eevee/shaders/ambient_occlusion_lib.glsl SRC)
-data_to_c_simple(engines/eevee/shaders/default_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/default_world_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/background_vert.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/closure_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/common_uniforms_lib.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/common_utiltex_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lights_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lightprobe_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lightprobe_filter_glossy_frag.glsl SRC)
@@ -204,8 +205,7 @@ data_to_c_simple(engines/eevee/shaders/lightprobe_grid_display_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lightprobe_grid_fill_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lightprobe_planar_display_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/lightprobe_planar_display_vert.glsl SRC)
-data_to_c_simple(engines/eevee/shaders/lit_surface_frag.glsl SRC)
-data_to_c_simple(engines/eevee/shaders/lit_surface_vert.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/closure_lit_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_bloom_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_dof_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_dof_frag.glsl SRC)
@@ -229,7 +229,6 @@ data_to_c_simple(engines/eevee/shaders/object_motion_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/prepass_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/prepass_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/shadow_accum_frag.glsl SRC)
-
data_to_c_simple(engines/eevee/shaders/shadow_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/shadow_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/bsdf_lut_frag.glsl SRC)
@@ -240,9 +239,13 @@ data_to_c_simple(engines/eevee/shaders/octahedron_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/cubemap_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/bsdf_sampling_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/raytrace_lib.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/renderpass_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/renderpass_postprocess_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/ltc_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/ssr_lib.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/surface_frag.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/surface_lib.glsl SRC)
+data_to_c_simple(engines/eevee/shaders/surface_vert.glsl SRC)
data_to_c_simple(engines/eevee/shaders/update_noise_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/volumetric_accum_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/volumetric_lib.glsl SRC)
@@ -286,6 +289,8 @@ data_to_c_simple(intern/shaders/common_colormanagement_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_globals_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_hair_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_hair_refine_vert.glsl SRC)
+data_to_c_simple(intern/shaders/common_math_lib.glsl SRC)
+data_to_c_simple(intern/shaders/common_math_geom_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_view_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_fxaa_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_smaa_lib.glsl SRC)
diff --git a/source/blender/draw/engines/eevee/eevee_depth_of_field.c b/source/blender/draw/engines/eevee/eevee_depth_of_field.c
index 4a3cc36ddef..05cd6426911 100644
--- a/source/blender/draw/engines/eevee/eevee_depth_of_field.c
+++ b/source/blender/draw/engines/eevee/eevee_depth_of_field.c
@@ -54,24 +54,30 @@ extern char datatoc_common_view_lib_glsl[];
static void eevee_create_shader_depth_of_field(const bool use_alpha)
{
- char *frag = BLI_string_joinN(datatoc_common_view_lib_glsl, datatoc_effect_dof_frag_glsl);
- e_data.dof_downsample_sh[use_alpha] = DRW_shader_create_fullscreen(
- frag,
+ DRWShaderLibrary *lib = EEVEE_shader_lib_get();
+
+ e_data.dof_downsample_sh[use_alpha] = DRW_shader_create_fullscreen_with_shaderlib(
+ datatoc_effect_dof_frag_glsl,
+ lib,
use_alpha ? "#define USE_ALPHA_DOF\n"
"#define STEP_DOWNSAMPLE\n" :
"#define STEP_DOWNSAMPLE\n");
- e_data.dof_scatter_sh[use_alpha] = DRW_shader_create(datatoc_effect_dof_vert_glsl,
- NULL,
- frag,
- use_alpha ? "#define USE_ALPHA_DOF\n"
- "#define STEP_SCATTER\n" :
- "#define STEP_SCATTER\n");
- e_data.dof_resolve_sh[use_alpha] = DRW_shader_create_fullscreen(frag,
- use_alpha ?
- "#define USE_ALPHA_DOF\n"
- "#define STEP_RESOLVE\n" :
- "#define STEP_RESOLVE\n");
- MEM_freeN(frag);
+
+ e_data.dof_scatter_sh[use_alpha] = DRW_shader_create_with_shaderlib(
+ datatoc_effect_dof_vert_glsl,
+ NULL,
+ datatoc_effect_dof_frag_glsl,
+ lib,
+ use_alpha ? "#define USE_ALPHA_DOF\n"
+ "#define STEP_SCATTER\n" :
+ "#define STEP_SCATTER\n");
+
+ e_data.dof_resolve_sh[use_alpha] = DRW_shader_create_fullscreen_with_shaderlib(
+ datatoc_effect_dof_frag_glsl,
+ lib,
+ use_alpha ? "#define USE_ALPHA_DOF\n"
+ "#define STEP_RESOLVE\n" :
+ "#define STEP_RESOLVE\n");
}
int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *UNUSED(sldata),
diff --git a/source/blender/draw/engines/eevee/eevee_lookdev.c b/source/blender/draw/engines/eevee/eevee_lookdev.c
index 375d8c3c709..105651d20c8 100644
--- a/source/blender/draw/engines/eevee/eevee_lookdev.c
+++ b/source/blender/draw/engines/eevee/eevee_lookdev.c
@@ -204,6 +204,9 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
DRW_shgroup_uniform_texture(grp, "image", sl->equirect_radiance_gputexture);
/* Do not fadeout when doing probe rendering, only when drawing the background */
DRW_shgroup_uniform_float_copy(grp, "backgroundAlpha", 1.0f);
+ DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
+ DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
+ DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
}
else {
float background_alpha = g_data->background_alpha * shading->studiolight_background;
diff --git a/source/blender/draw/engines/eevee/eevee_lut_gen.c b/source/blender/draw/engines/eevee/eevee_lut_gen.c
index 5f20d6fbfb8..1f953a944f0 100644
--- a/source/blender/draw/engines/eevee/eevee_lut_gen.c
+++ b/source/blender/draw/engines/eevee/eevee_lut_gen.c
@@ -31,6 +31,8 @@
#include "BLI_rand.h"
#include "BLI_string_utils.h"
+#include "eevee_private.h"
+
extern char datatoc_bsdf_lut_frag_glsl[];
extern char datatoc_btdf_lut_frag_glsl[];
extern char datatoc_bsdf_common_lib_glsl[];
@@ -45,15 +47,13 @@ static struct GPUTexture *create_ggx_lut_texture(int UNUSED(w), int UNUSED(h))
static float samples_len = 8192.0f;
static float inv_samples_len = 1.0f / 8192.0f;
- char *lib_str = BLI_string_joinN(datatoc_bsdf_common_lib_glsl, datatoc_bsdf_sampling_lib_glsl);
+ DRWShaderLibrary *lib = EEVEE_shader_lib_get();
- struct GPUShader *sh = DRW_shader_create_with_lib(datatoc_lightprobe_vert_glsl,
- datatoc_lightprobe_geom_glsl,
- datatoc_bsdf_lut_frag_glsl,
- lib_str,
- "#define HAMMERSLEY_SIZE 8192\n"
- "#define BRDF_LUT_SIZE 64\n"
- "#define NOISE_SIZE 64\n");
+ struct GPUShader *sh = DRW_shader_create_with_shaderlib(datatoc_lightprobe_vert_glsl,
+ datatoc_lightprobe_geom_glsl,
+ datatoc_bsdf_lut_frag_glsl,
+ lib,
+ "#define HAMMERSLEY_SIZE 8192\n");
DRWPass *pass = DRW_pass_create("LightProbe Filtering", DRW_STATE_WRITE_COLOR);
DRWShadingGroup *grp = DRW_shgroup_create(sh, pass);
@@ -106,16 +106,10 @@ static struct GPUTexture *create_ggx_refraction_lut_texture(int w, int h)
static float a2 = 0.0f;
static float inv_samples_len = 1.0f / 8192.0f;
- char *frag_str = BLI_string_joinN(
- datatoc_bsdf_common_lib_glsl, datatoc_bsdf_sampling_lib_glsl, datatoc_btdf_lut_frag_glsl);
-
- struct GPUShader *sh = DRW_shader_create_fullscreen(frag_str,
- "#define HAMMERSLEY_SIZE 8192\n"
- "#define BRDF_LUT_SIZE 64\n"
- "#define NOISE_SIZE 64\n"
- "#define LUT_SIZE 64\n");
+ DRWShaderLibrary *lib = EEVEE_shader_lib_get();
- MEM_freeN(frag_str);
+ struct GPUShader *sh = DRW_shader_create_fullscreen_with_shaderlib(
+ datatoc_btdf_lut_frag_glsl, lib, "#define HAMMERSLEY_SIZE 8192\n");
DRWPass *pass = DRW_pass_create("LightProbe Filtering", DRW_STATE_WRITE_COLOR);
DRWShadingGroup *grp = DRW_shgroup_create(sh, pass);
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/en
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list