Blender V5.0
eevee_light_culling_infos.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#ifdef GPU_SHADER
6# pragma once
7# include "gpu_shader_compat.hh"
8
10# include "draw_view_infos.hh"
11# include "eevee_common_infos.hh"
12# include "eevee_light_shared.hh"
14
15# define SPHERE_PROBE
16#endif
17
18#include "eevee_defines.hh"
20
21/* -------------------------------------------------------------------- */
24
25GPU_SHADER_CREATE_INFO(eevee_light_culling_select)
27TYPEDEF_SOURCE("eevee_light_shared.hh")
28ADDITIONAL_INFO(draw_view)
29ADDITIONAL_INFO(draw_view_culling)
31STORAGE_BUF(0, read_write, LightCullingData, light_cull_buf)
32STORAGE_BUF(1, read, LightData, in_light_buf[])
33STORAGE_BUF(2, write, LightData, out_light_buf[])
34STORAGE_BUF(3, write, float, out_zdist_buf[])
35STORAGE_BUF(4, write, uint, out_key_buf[])
36UNIFORM_BUF(0, LightData, sunlight_buf)
37COMPUTE_SOURCE("eevee_light_culling_select_comp.glsl")
39
40GPU_SHADER_CREATE_INFO(eevee_light_culling_sort)
42TYPEDEF_SOURCE("eevee_light_shared.hh")
43ADDITIONAL_INFO(draw_view)
44STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
45STORAGE_BUF(1, read, LightData, in_light_buf[])
46STORAGE_BUF(2, write, LightData, out_light_buf[])
47STORAGE_BUF(3, read, float, in_zdist_buf[])
48STORAGE_BUF(4, read, uint, in_key_buf[])
50COMPUTE_SOURCE("eevee_light_culling_sort_comp.glsl")
52
53GPU_SHADER_CREATE_INFO(eevee_light_culling_zbin)
55TYPEDEF_SOURCE("eevee_light_shared.hh")
56ADDITIONAL_INFO(draw_view)
58/* Fits the limit of 32KB. */
61STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
62STORAGE_BUF(1, read, LightData, light_buf[])
63STORAGE_BUF(2, write, uint, out_zbin_buf[])
64COMPUTE_SOURCE("eevee_light_culling_zbin_comp.glsl")
66
67GPU_SHADER_CREATE_INFO(eevee_light_culling_tile)
69TYPEDEF_SOURCE("eevee_light_shared.hh")
70ADDITIONAL_INFO(draw_view)
71ADDITIONAL_INFO(draw_view_culling)
73STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
74STORAGE_BUF(1, read, LightData, light_buf[])
75STORAGE_BUF(2, write, uint, out_light_tile_buf[])
76COMPUTE_SOURCE("eevee_light_culling_tile_comp.glsl")
78
79GPU_SHADER_CREATE_INFO(eevee_light_shadow_setup)
81TYPEDEF_SOURCE("eevee_light_shared.hh")
82TYPEDEF_SOURCE("eevee_shadow_shared.hh")
83ADDITIONAL_INFO(eevee_sampling_data)
84ADDITIONAL_INFO(eevee_global_ubo)
86STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
87STORAGE_BUF(1, read_write, LightData, light_buf[])
88STORAGE_BUF(2, read_write, ShadowTileMapData, tilemaps_buf[])
89STORAGE_BUF(3, read_write, ShadowTileMapClip, tilemaps_clip_buf[])
90COMPUTE_SOURCE("eevee_light_shadow_setup_comp.glsl")
92
94
95/* -------------------------------------------------------------------- */
98
99GPU_SHADER_CREATE_INFO(eevee_light_culling_debug)
101FRAGMENT_OUT_DUAL(0, float4, out_debug_color_add, SRC_0)
102FRAGMENT_OUT_DUAL(0, float4, out_debug_color_mul, SRC_1)
103FRAGMENT_SOURCE("eevee_light_culling_debug_frag.glsl")
104TYPEDEF_SOURCE("eevee_defines.hh")
105ADDITIONAL_INFO(draw_view)
106ADDITIONAL_INFO(gpu_fullscreen)
107ADDITIONAL_INFO(eevee_light_data)
108ADDITIONAL_INFO(eevee_hiz_data)
110
unsigned int uint
#define CULLING_SELECT_GROUP_SIZE
#define CULLING_ZBIN_GROUP_SIZE
#define CULLING_SORT_GROUP_SIZE
#define CULLING_TILE_GROUP_SIZE
#define CULLING_ZBIN_COUNT
#define GPU_SHADER_CREATE_INFO(_info)
#define GPU_SHADER_CREATE_END()
#define TYPEDEF_SOURCE(filename)
#define FRAGMENT_OUT_DUAL(slot, type, name, blend)
#define UNIFORM_BUF(slot, type_name, name)
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define GROUP_SHARED(type, name)
#define STORAGE_BUF(slot, qualifiers, type_name, name)
#define LOCAL_GROUP_SIZE(...)
#define COMPUTE_SOURCE(filename)
#define DO_STATIC_COMPILATION()