[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