EEVEE: Port existing EEVEE shaders and generated materials to use GPUShaderCreateInfo.
commit6b8bb26c457446875e0782a1701ec35c78b33308
authorThomas Dinges <blender@dingto.org>
Thu, 8 Dec 2022 20:07:28 +0000 (8 21:07 +0100)
committerClément Foucault <foucault.clem@gmail.com>
Thu, 8 Dec 2022 20:12:19 +0000 (8 21:12 +0100)
tree3b8f8601adae4b3d5644547d541ddc57fec663f5
parent2efdbeb58bd172939edb3a01f25d119c821e6627
EEVEE: Port existing EEVEE shaders and generated materials to use GPUShaderCreateInfo.

Required by Metal backend for efficient shader compilation. EEVEE material
resource binding permutations now controlled via CreateInfo and selected
based on material options. Other existing CreateInfo's also modified to
ensure explicitness for depth-writing mode. Other missing bindings also
addressed to ensure full compliance with the Metal backend.

Authored by Apple: Michael Parkin-White

Ref T96261

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D16243
160 files changed:
source/blender/draw/CMakeLists.txt
source/blender/draw/engines/eevee/eevee_lightcache.c
source/blender/draw/engines/eevee/eevee_lut_gen.c
source/blender/draw/engines/eevee/eevee_private.h
source/blender/draw/engines/eevee/eevee_shaders.cc
source/blender/draw/engines/eevee/eevee_shaders_extra.cc
source/blender/draw/engines/eevee/engine_eevee_shared_defines.h [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
source/blender/draw/engines/eevee/shaders/background_vert.glsl
source/blender/draw/engines/eevee/shaders/bsdf_lut_frag.glsl
source/blender/draw/engines/eevee/shaders/btdf_lut_frag.glsl
source/blender/draw/engines/eevee/shaders/closure_type_lib.glsl
source/blender/draw/engines/eevee/shaders/common_uniforms_lib.glsl
source/blender/draw/engines/eevee/shaders/common_utiltex_lib.glsl
source/blender/draw/engines/eevee/shaders/cryptomatte_frag.glsl
source/blender/draw/engines/eevee/shaders/cryptomatte_lib.glsl [deleted file]
source/blender/draw/engines/eevee/shaders/cryptomatte_vert.glsl
source/blender/draw/engines/eevee/shaders/cubemap_lib.glsl
source/blender/draw/engines/eevee/shaders/effect_bloom_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_bokeh_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_dilate_tiles_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_downsample_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_filter_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_flatten_tiles_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_gather_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_lib.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_reduce_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_resolve_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_scatter_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_scatter_vert.glsl
source/blender/draw/engines/eevee/shaders/effect_dof_setup_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_downsample_cube_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_downsample_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_minmaxz_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_mist_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_motion_blur_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_reflection_lib.glsl
source/blender/draw/engines/eevee/shaders/effect_reflection_resolve_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_reflection_trace_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_subsurface_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_temporal_aa.glsl
source/blender/draw/engines/eevee/shaders/effect_translucency_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_velocity_resolve_frag.glsl
source/blender/draw/engines/eevee/shaders/effect_velocity_tile_frag.glsl
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_bloom_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_common_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_dof_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_effects_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_lightprobe_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_material_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_motion_blur_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_shadow_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/eevee_legacy_volume_info.hh [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/infos/engine_eevee_legacy_shared.h [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/irradiance_lib.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_vert.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_filter_diffuse_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_filter_glossy_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_filter_visibility_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_geom.glsl [copied from source/blender/draw/engines/eevee/shaders/effect_downsample_cube_frag.glsl with 69% similarity]
source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_grid_display_vert.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_grid_fill_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_lib.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_planar_display_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_planar_display_vert.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_frag.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_geom.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_vert.glsl
source/blender/draw/engines/eevee/shaders/lightprobe_vert_no_geom.glsl [new file with mode: 0644]
source/blender/draw/engines/eevee/shaders/lights_lib.glsl
source/blender/draw/engines/eevee/shaders/lookdev_world_frag.glsl
source/blender/draw/engines/eevee/shaders/ltc_lib.glsl
source/blender/draw/engines/eevee/shaders/object_motion_frag.glsl
source/blender/draw/engines/eevee/shaders/object_motion_vert.glsl
source/blender/draw/engines/eevee/shaders/prepass_frag.glsl
source/blender/draw/engines/eevee/shaders/raytrace_lib.glsl
source/blender/draw/engines/eevee/shaders/renderpass_lib.glsl
source/blender/draw/engines/eevee/shaders/renderpass_postprocess_frag.glsl
source/blender/draw/engines/eevee/shaders/shadow_accum_frag.glsl
source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
source/blender/draw/engines/eevee/shaders/ssr_lib.glsl
source/blender/draw/engines/eevee/shaders/surface_frag.glsl
source/blender/draw/engines/eevee/shaders/surface_lib.glsl
source/blender/draw/engines/eevee/shaders/surface_vert.glsl
source/blender/draw/engines/eevee/shaders/update_noise_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_accum_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_geom.glsl
source/blender/draw/engines/eevee/shaders/volumetric_integration_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
source/blender/draw/engines/eevee/shaders/volumetric_resolve_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_scatter_frag.glsl
source/blender/draw/engines/eevee/shaders/volumetric_vert.glsl
source/blender/draw/engines/eevee/shaders/world_vert.glsl
source/blender/draw/engines/eevee_next/eevee_shader_shared.hh
source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
source/blender/draw/engines/eevee_next/shaders/eevee_film_lib.glsl
source/blender/draw/engines/eevee_next/shaders/infos/eevee_film_info.hh
source/blender/draw/engines/overlay/shaders/infos/overlay_armature_info.hh
source/blender/draw/engines/workbench/shaders/workbench_cavity_lib.glsl
source/blender/draw/intern/DRW_render.h
source/blender/draw/intern/draw_manager.c
source/blender/draw/intern/draw_manager_shader.c
source/blender/draw/intern/draw_shader.cc
source/blender/draw/intern/draw_shader_shared.h
source/blender/draw/intern/shaders/common_attribute_lib.glsl
source/blender/draw/intern/shaders/common_hair_lib.glsl
source/blender/draw/intern/shaders/common_hair_refine_vert.glsl
source/blender/draw/intern/shaders/common_pointcloud_lib.glsl
source/blender/draw/intern/shaders/common_view_lib.glsl
source/blender/draw/intern/shaders/draw_hair_refine_info.hh
source/blender/draw/intern/shaders/draw_view_info.hh
source/blender/editors/animation/anim_markers.c
source/blender/editors/gpencil/annotate_paint.c
source/blender/editors/gpencil/gpencil_paint.c
source/blender/editors/gpencil/gpencil_utils.c
source/blender/editors/interface/interface_draw.cc
source/blender/editors/mask/mask_draw.c
source/blender/editors/sculpt_paint/paint_stroke.c
source/blender/editors/space_clip/clip_draw.c
source/blender/editors/space_graph/graph_draw.c
source/blender/editors/space_image/image_draw.c
source/blender/editors/space_nla/nla_draw.c
source/blender/editors/space_outliner/outliner_draw.cc
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/editors/space_view3d/view3d_cursor_snap.c
source/blender/editors/space_view3d/view3d_draw.cc
source/blender/editors/space_view3d/view3d_gizmo_ruler.c
source/blender/editors/transform/transform_constraints.c
source/blender/editors/transform/transform_draw_cursors.c
source/blender/editors/transform/transform_mode_vert_slide.c
source/blender/editors/util/ed_draw.c
source/blender/editors/uvedit/uvedit_draw.c
source/blender/gpu/CMakeLists.txt
source/blender/gpu/GPU_capabilities.h
source/blender/gpu/GPU_shader_shared.h
source/blender/gpu/intern/gpu_capabilities.cc
source/blender/gpu/intern/gpu_capabilities_private.hh
source/blender/gpu/intern/gpu_shader.cc
source/blender/gpu/intern/gpu_shader_create_info.cc
source/blender/gpu/intern/gpu_shader_create_info.hh
source/blender/gpu/intern/gpu_shader_dependency.cc
source/blender/gpu/metal/kernels/depth_2d_update_info.hh
source/blender/gpu/metal/mtl_backend.mm
source/blender/gpu/metal/mtl_shader_generator.hh
source/blender/gpu/metal/mtl_shader_generator.mm
source/blender/gpu/opengl/gl_backend.cc
source/blender/gpu/shaders/gpu_shader_2D_line_dashed_frag.glsl
source/blender/gpu/shaders/gpu_shader_3D_flat_color_vert.glsl
source/blender/gpu/shaders/gpu_shader_3D_point_uniform_size_aa_vert.glsl
source/blender/gpu/shaders/gpu_shader_3D_smooth_color_vert.glsl
source/blender/gpu/shaders/gpu_shader_3D_vert.glsl
source/blender/gpu/shaders/gpu_shader_diag_stripes_frag.glsl
source/blender/gpu/shaders/infos/gpu_shader_line_dashed_uniform_color_info.hh
source/blender/gpu/shaders/metal/mtl_shader_defines.msl
source/blender/windowmanager/intern/wm_gesture.c