GPU: Make create info list not runtime generated

This avoid cmake shenanigans to try to make proper
dependency tracking.

The previous code was not tracking changes inside
the create info files.

There is no real benefit for having these headers listed in
the cmakefile itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/129027
This commit is contained in:
Clément Foucault
2024-10-15 16:31:37 +02:00
committed by Clément Foucault
parent 43d7558e5b
commit 86f442df95
4 changed files with 186 additions and 190 deletions

View File

@@ -309,75 +309,6 @@ list(APPEND INC ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(bf_compositor_shaders PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
set(SRC_SHADER_CREATE_INFOS
shaders/infos/compositor_alpha_crop_info.hh
shaders/infos/compositor_bilateral_blur_info.hh
shaders/infos/compositor_bokeh_blur_info.hh
shaders/infos/compositor_bokeh_blur_variable_size_info.hh
shaders/infos/compositor_bokeh_image_info.hh
shaders/infos/compositor_box_mask_info.hh
shaders/infos/compositor_compute_preview_info.hh
shaders/infos/compositor_convert_info.hh
shaders/infos/compositor_cryptomatte_info.hh
shaders/infos/compositor_defocus_info.hh
shaders/infos/compositor_deriche_gaussian_blur_info.hh
shaders/infos/compositor_despeckle_info.hh
shaders/infos/compositor_directional_blur_info.hh
shaders/infos/compositor_displace_info.hh
shaders/infos/compositor_double_edge_mask_info.hh
shaders/infos/compositor_edge_filter_info.hh
shaders/infos/compositor_ellipse_mask_info.hh
shaders/infos/compositor_filter_info.hh
shaders/infos/compositor_flip_info.hh
shaders/infos/compositor_glare_info.hh
shaders/infos/compositor_id_mask_info.hh
shaders/infos/compositor_image_crop_info.hh
shaders/infos/compositor_inpaint_info.hh
shaders/infos/compositor_jump_flooding_info.hh
shaders/infos/compositor_keying_info.hh
shaders/infos/compositor_keying_screen_info.hh
shaders/infos/compositor_kuwahara_info.hh
shaders/infos/compositor_map_uv_info.hh
shaders/infos/compositor_morphological_blur_info.hh
shaders/infos/compositor_morphological_distance_feather_info.hh
shaders/infos/compositor_morphological_distance_info.hh
shaders/infos/compositor_morphological_distance_threshold_info.hh
shaders/infos/compositor_morphological_step_info.hh
shaders/infos/compositor_motion_blur_info.hh
shaders/infos/compositor_movie_distortion_info.hh
shaders/infos/compositor_normalize_info.hh
shaders/infos/compositor_parallel_reduction_info.hh
shaders/infos/compositor_pixelate_info.hh
shaders/infos/compositor_plane_deform_info.hh
shaders/infos/compositor_premultiply_alpha_info.hh
shaders/infos/compositor_projector_lens_distortion_info.hh
shaders/infos/compositor_read_input_info.hh
shaders/infos/compositor_realize_on_domain_info.hh
shaders/infos/compositor_scale_variable_info.hh
shaders/infos/compositor_screen_lens_distortion_info.hh
shaders/infos/compositor_smaa_info.hh
shaders/infos/compositor_split_info.hh
shaders/infos/compositor_summed_area_table_info.hh
shaders/infos/compositor_sun_beams_info.hh
shaders/infos/compositor_symmetric_blur_info.hh
shaders/infos/compositor_symmetric_blur_variable_size_info.hh
shaders/infos/compositor_symmetric_separable_blur_info.hh
shaders/infos/compositor_symmetric_separable_blur_variable_size_info.hh
shaders/infos/compositor_tone_map_photoreceptor_info.hh
shaders/infos/compositor_tone_map_simple_info.hh
shaders/infos/compositor_van_vliet_gaussian_blur_info.hh
shaders/infos/compositor_write_output_info.hh
shaders/infos/compositor_z_combine_info.hh
)
set(SHADER_CREATE_INFOS_CONTENT "")
foreach(DESCRIPTOR_FILE ${SRC_SHADER_CREATE_INFOS})
string(APPEND SHADER_CREATE_INFOS_CONTENT "#include \"${DESCRIPTOR_FILE}\"\n")
endforeach()
set(shader_create_info_list_file "${CMAKE_CURRENT_BINARY_DIR}/compositor_shader_create_info_list.hh")
file(GENERATE OUTPUT ${shader_create_info_list_file} CONTENT "${SHADER_CREATE_INFOS_CONTENT}")
if(WITH_TBB)
if(WIN32)
# TBB includes Windows.h which will define min/max macros

View File

@@ -19,12 +19,22 @@ set(INC
../editors/include
# For `*_info.hh` includes.
../compositor/realtime_compositor
../compositor/realtime_compositor/shaders/infos
../draw/engines/basic/shaders/infos
../draw/engines/eevee_next
../draw/engines/eevee_next/shaders/infos
../draw/engines/gpencil
../draw/engines/gpencil/shaders/infos
../draw/engines/image/shaders/infos
../draw/engines/overlay/shaders/infos
../draw/engines/select
../draw/engines/select/shaders/infos
../draw/engines/workbench
../draw/engines/workbench/shaders/infos
../draw/intern
../draw/intern/shaders
metal/kernels
shaders/infos
# For node muting stuff.
../nodes
@@ -729,124 +739,6 @@ file(GENERATE OUTPUT ${glsl_source_list_file} CONTENT "${GLSL_SOURCE_CONTENT}")
list(APPEND SRC ${glsl_source_list_file})
list(APPEND INC ${CMAKE_CURRENT_BINARY_DIR})
set(SRC_SHADER_CREATE_INFOS
../draw/engines/basic/shaders/infos/basic_depth_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_ambient_occlusion_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_deferred_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_depth_of_field_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_film_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_hiz_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_light_culling_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_lightprobe_sphere_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_lightprobe_volume_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_lookdev_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_lut_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_material_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_motion_blur_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_shadow_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_subsurface_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_tracing_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_velocity_info.hh
../draw/engines/eevee_next/shaders/infos/eevee_volume_info.hh
../draw/engines/gpencil/shaders/infos/gpencil_info.hh
../draw/engines/gpencil/shaders/infos/gpencil_vfx_info.hh
../draw/engines/overlay/shaders/infos/overlay_antialiasing_info.hh
../draw/engines/overlay/shaders/infos/overlay_armature_info.hh
../draw/engines/overlay/shaders/infos/overlay_background_info.hh
../draw/engines/overlay/shaders/infos/overlay_edit_mode_info.hh
../draw/engines/overlay/shaders/infos/overlay_extra_info.hh
../draw/engines/overlay/shaders/infos/overlay_facing_info.hh
../draw/engines/overlay/shaders/infos/overlay_grid_info.hh
../draw/engines/overlay/shaders/infos/overlay_outline_info.hh
../draw/engines/overlay/shaders/infos/overlay_paint_info.hh
../draw/engines/overlay/shaders/infos/overlay_sculpt_curves_info.hh
../draw/engines/overlay/shaders/infos/overlay_sculpt_info.hh
../draw/engines/overlay/shaders/infos/overlay_viewer_attribute_info.hh
../draw/engines/overlay/shaders/infos/overlay_volume_info.hh
../draw/engines/overlay/shaders/infos/overlay_wireframe_info.hh
../draw/engines/select/shaders/infos/select_id_info.hh
../draw/engines/workbench/shaders/infos/workbench_composite_info.hh
../draw/engines/workbench/shaders/infos/workbench_depth_info.hh
../draw/engines/workbench/shaders/infos/workbench_effect_antialiasing_info.hh
../draw/engines/workbench/shaders/infos/workbench_effect_dof_info.hh
../draw/engines/workbench/shaders/infos/workbench_effect_outline_info.hh
../draw/engines/workbench/shaders/infos/workbench_prepass_info.hh
../draw/engines/workbench/shaders/infos/workbench_shadow_info.hh
../draw/engines/workbench/shaders/infos/workbench_transparent_resolve_info.hh
../draw/engines/workbench/shaders/infos/workbench_volume_info.hh
../draw/engines/image/shaders/infos/engine_image_info.hh
../draw/intern/shaders/draw_debug_info.hh
../draw/intern/shaders/draw_fullscreen_info.hh
../draw/intern/shaders/draw_hair_refine_info.hh
../draw/intern/shaders/draw_object_infos_info.hh
../draw/intern/shaders/draw_view_info.hh
shaders/infos/gpu_clip_planes_info.hh
shaders/infos/gpu_index_load_info.hh
shaders/infos/gpu_shader_2D_area_borders_info.hh
shaders/infos/gpu_shader_2D_checker_info.hh
shaders/infos/gpu_shader_2D_diag_stripes_info.hh
shaders/infos/gpu_shader_2D_image_desaturate_color_info.hh
shaders/infos/gpu_shader_2D_image_info.hh
shaders/infos/gpu_shader_2D_image_overlays_merge_info.hh
shaders/infos/gpu_shader_2D_image_overlays_stereo_merge_info.hh
shaders/infos/gpu_shader_2D_image_rect_color_info.hh
shaders/infos/gpu_shader_2D_image_shuffle_color_info.hh
shaders/infos/gpu_shader_2D_nodelink_info.hh
shaders/infos/gpu_shader_2D_point_uniform_size_uniform_color_aa_info.hh
shaders/infos/gpu_shader_2D_point_uniform_size_uniform_color_outline_aa_info.hh
shaders/infos/gpu_shader_2D_point_varying_size_varying_color_info.hh
shaders/infos/gpu_shader_2D_widget_info.hh
shaders/infos/gpu_shader_3D_depth_only_info.hh
shaders/infos/gpu_shader_3D_flat_color_info.hh
shaders/infos/gpu_shader_3D_image_info.hh
shaders/infos/gpu_shader_3D_point_info.hh
shaders/infos/gpu_shader_3D_polyline_info.hh
shaders/infos/gpu_shader_3D_smooth_color_info.hh
shaders/infos/gpu_shader_3D_uniform_color_info.hh
shaders/infos/gpu_shader_gpencil_stroke_info.hh
shaders/infos/gpu_shader_icon_info.hh
shaders/infos/gpu_shader_index_info.hh
shaders/infos/gpu_shader_instance_varying_color_varying_size_info.hh
shaders/infos/gpu_shader_keyframe_shape_info.hh
shaders/infos/gpu_shader_line_dashed_uniform_color_info.hh
shaders/infos/gpu_shader_print_info.hh
shaders/infos/gpu_shader_sequencer_info.hh
shaders/infos/gpu_shader_simple_lighting_info.hh
shaders/infos/gpu_shader_text_info.hh
shaders/infos/gpu_srgb_to_framebuffer_space_info.hh
)
set(SRC_SHADER_CREATE_INFOS_TEST
shaders/infos/gpu_shader_test_info.hh
)
set(SRC_SHADER_CREATE_INFOS_MTL
metal/kernels/depth_2d_update_info.hh
metal/kernels/gpu_shader_fullscreen_blit_info.hh
)
if(WITH_GTESTS)
if(WITH_GPU_DRAW_TESTS)
list(APPEND SRC_SHADER_CREATE_INFOS ${SRC_SHADER_CREATE_INFOS_TEST})
endif()
endif()
if(WITH_METAL_BACKEND)
list(APPEND SRC_SHADER_CREATE_INFOS ${SRC_SHADER_CREATE_INFOS_MTL})
endif()
set(SHADER_CREATE_INFOS_CONTENT "")
foreach(DESCRIPTOR_FILE ${SRC_SHADER_CREATE_INFOS})
string(APPEND SHADER_CREATE_INFOS_CONTENT "#include \"${DESCRIPTOR_FILE}\"\n")
endforeach()
set(shader_create_info_list_file "${CMAKE_CURRENT_BINARY_DIR}/gpu_shader_create_info_list.hh")
file(GENERATE OUTPUT ${shader_create_info_list_file} CONTENT "${SHADER_CREATE_INFOS_CONTENT}")
if(WITH_MOD_FLUID)
add_definitions(-DWITH_FLUID)
endif()
@@ -893,7 +785,6 @@ if(WITH_GPU_BUILDTIME_SHADER_BUILDER)
add_executable(shader_builder
intern/gpu_shader_builder.cc
intern/gpu_shader_builder_stubs.cc
${shader_create_info_list_file}
${_manifest}
)
unset(_manifest)

View File

@@ -474,7 +474,6 @@ void gpu_shader_create_info_init()
_info
/* Declare, register and construct the infos. */
#include "compositor_shader_create_info_list.hh"
#include "gpu_shader_create_info_list.hh"
/* Baked shader data appended to create infos. */

View File

@@ -0,0 +1,175 @@
/* SPDX-FileCopyrightText: 2024 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/* GPU module. */
#include "gpu_clip_planes_info.hh"
#include "gpu_index_load_info.hh"
#include "gpu_shader_2D_area_borders_info.hh"
#include "gpu_shader_2D_checker_info.hh"
#include "gpu_shader_2D_diag_stripes_info.hh"
#include "gpu_shader_2D_image_desaturate_color_info.hh"
#include "gpu_shader_2D_image_info.hh"
#include "gpu_shader_2D_image_overlays_merge_info.hh"
#include "gpu_shader_2D_image_overlays_stereo_merge_info.hh"
#include "gpu_shader_2D_image_rect_color_info.hh"
#include "gpu_shader_2D_image_shuffle_color_info.hh"
#include "gpu_shader_2D_nodelink_info.hh"
#include "gpu_shader_2D_point_uniform_size_uniform_color_aa_info.hh"
#include "gpu_shader_2D_point_uniform_size_uniform_color_outline_aa_info.hh"
#include "gpu_shader_2D_point_varying_size_varying_color_info.hh"
#include "gpu_shader_2D_widget_info.hh"
#include "gpu_shader_3D_depth_only_info.hh"
#include "gpu_shader_3D_flat_color_info.hh"
#include "gpu_shader_3D_image_info.hh"
#include "gpu_shader_3D_point_info.hh"
#include "gpu_shader_3D_polyline_info.hh"
#include "gpu_shader_3D_smooth_color_info.hh"
#include "gpu_shader_3D_uniform_color_info.hh"
#include "gpu_shader_gpencil_stroke_info.hh"
#include "gpu_shader_icon_info.hh"
#include "gpu_shader_index_info.hh"
#include "gpu_shader_instance_varying_color_varying_size_info.hh"
#include "gpu_shader_keyframe_shape_info.hh"
#include "gpu_shader_line_dashed_uniform_color_info.hh"
#include "gpu_shader_print_info.hh"
#include "gpu_shader_sequencer_info.hh"
#include "gpu_shader_simple_lighting_info.hh"
#include "gpu_shader_text_info.hh"
#include "gpu_srgb_to_framebuffer_space_info.hh"
#ifdef WITH_GPU_DRAW_TESTS
# include "gpu_shader_test_info.hh"
#endif
#ifdef WITH_METAL_BACKEND
/* Metal */
# include "depth_2d_update_info.hh"
# include "gpu_shader_fullscreen_blit_info.hh"
#endif
/* Realtime compositor. */
#include "compositor_alpha_crop_info.hh"
#include "compositor_bilateral_blur_info.hh"
#include "compositor_bokeh_blur_info.hh"
#include "compositor_bokeh_blur_variable_size_info.hh"
#include "compositor_bokeh_image_info.hh"
#include "compositor_box_mask_info.hh"
#include "compositor_compute_preview_info.hh"
#include "compositor_convert_info.hh"
#include "compositor_cryptomatte_info.hh"
#include "compositor_defocus_info.hh"
#include "compositor_deriche_gaussian_blur_info.hh"
#include "compositor_despeckle_info.hh"
#include "compositor_directional_blur_info.hh"
#include "compositor_displace_info.hh"
#include "compositor_double_edge_mask_info.hh"
#include "compositor_edge_filter_info.hh"
#include "compositor_ellipse_mask_info.hh"
#include "compositor_filter_info.hh"
#include "compositor_flip_info.hh"
#include "compositor_glare_info.hh"
#include "compositor_id_mask_info.hh"
#include "compositor_image_crop_info.hh"
#include "compositor_inpaint_info.hh"
#include "compositor_jump_flooding_info.hh"
#include "compositor_keying_info.hh"
#include "compositor_keying_screen_info.hh"
#include "compositor_kuwahara_info.hh"
#include "compositor_map_uv_info.hh"
#include "compositor_morphological_blur_info.hh"
#include "compositor_morphological_distance_feather_info.hh"
#include "compositor_morphological_distance_info.hh"
#include "compositor_morphological_distance_threshold_info.hh"
#include "compositor_morphological_step_info.hh"
#include "compositor_motion_blur_info.hh"
#include "compositor_movie_distortion_info.hh"
#include "compositor_normalize_info.hh"
#include "compositor_parallel_reduction_info.hh"
#include "compositor_pixelate_info.hh"
#include "compositor_plane_deform_info.hh"
#include "compositor_premultiply_alpha_info.hh"
#include "compositor_projector_lens_distortion_info.hh"
#include "compositor_read_input_info.hh"
#include "compositor_realize_on_domain_info.hh"
#include "compositor_scale_variable_info.hh"
#include "compositor_screen_lens_distortion_info.hh"
#include "compositor_smaa_info.hh"
#include "compositor_split_info.hh"
#include "compositor_summed_area_table_info.hh"
#include "compositor_sun_beams_info.hh"
#include "compositor_symmetric_blur_info.hh"
#include "compositor_symmetric_blur_variable_size_info.hh"
#include "compositor_symmetric_separable_blur_info.hh"
#include "compositor_symmetric_separable_blur_variable_size_info.hh"
#include "compositor_tone_map_photoreceptor_info.hh"
#include "compositor_tone_map_simple_info.hh"
#include "compositor_van_vliet_gaussian_blur_info.hh"
#include "compositor_write_output_info.hh"
#include "compositor_z_combine_info.hh"
/* DRW module. */
#include "draw_debug_info.hh"
#include "draw_fullscreen_info.hh"
#include "draw_hair_refine_info.hh"
#include "draw_object_infos_info.hh"
#include "draw_view_info.hh"
/* Basic engine. */
#include "basic_depth_info.hh"
/* EEVEE engine. */
#include "eevee_ambient_occlusion_info.hh"
#include "eevee_deferred_info.hh"
#include "eevee_depth_of_field_info.hh"
#include "eevee_film_info.hh"
#include "eevee_hiz_info.hh"
#include "eevee_light_culling_info.hh"
#include "eevee_lightprobe_sphere_info.hh"
#include "eevee_lightprobe_volume_info.hh"
#include "eevee_lookdev_info.hh"
#include "eevee_lut_info.hh"
#include "eevee_material_info.hh"
#include "eevee_motion_blur_info.hh"
#include "eevee_shadow_info.hh"
#include "eevee_subsurface_info.hh"
#include "eevee_tracing_info.hh"
#include "eevee_velocity_info.hh"
#include "eevee_volume_info.hh"
/* Image engine. */
#include "engine_image_info.hh"
/* Grease Pencil engine. */
#include "gpencil_info.hh"
#include "gpencil_vfx_info.hh"
/* Overlay engine. */
#include "overlay_antialiasing_info.hh"
#include "overlay_armature_info.hh"
#include "overlay_background_info.hh"
#include "overlay_edit_mode_info.hh"
#include "overlay_extra_info.hh"
#include "overlay_facing_info.hh"
#include "overlay_grid_info.hh"
#include "overlay_outline_info.hh"
#include "overlay_paint_info.hh"
#include "overlay_sculpt_curves_info.hh"
#include "overlay_sculpt_info.hh"
#include "overlay_viewer_attribute_info.hh"
#include "overlay_volume_info.hh"
#include "overlay_wireframe_info.hh"
/* Selection engine. */
#include "select_id_info.hh"
/* Workbench engine. */
#include "workbench_composite_info.hh"
#include "workbench_depth_info.hh"
#include "workbench_effect_antialiasing_info.hh"
#include "workbench_effect_dof_info.hh"
#include "workbench_effect_outline_info.hh"
#include "workbench_prepass_info.hh"
#include "workbench_shadow_info.hh"
#include "workbench_transparent_resolve_info.hh"
#include "workbench_volume_info.hh"