Blender V4.5
eevee_light_culling_info.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_glsl_cpp_stubs.hh"
8
10# include "draw_view_info.hh"
11# include "eevee_common_info.hh"
12# include "eevee_shader_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)
27ADDITIONAL_INFO(eevee_shared)
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)
42ADDITIONAL_INFO(eevee_shared)
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)
55ADDITIONAL_INFO(eevee_shared)
56ADDITIONAL_INFO(draw_view)
58STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
59STORAGE_BUF(1, read, LightData, light_buf[])
60STORAGE_BUF(2, write, uint, out_zbin_buf[])
61COMPUTE_SOURCE("eevee_light_culling_zbin_comp.glsl")
63
64GPU_SHADER_CREATE_INFO(eevee_light_culling_tile)
66ADDITIONAL_INFO(eevee_shared)
67ADDITIONAL_INFO(draw_view)
68ADDITIONAL_INFO(draw_view_culling)
70STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
71STORAGE_BUF(1, read, LightData, light_buf[])
72STORAGE_BUF(2, write, uint, out_light_tile_buf[])
73COMPUTE_SOURCE("eevee_light_culling_tile_comp.glsl")
75
76GPU_SHADER_CREATE_INFO(eevee_light_shadow_setup)
78ADDITIONAL_INFO(eevee_shared)
79ADDITIONAL_INFO(eevee_sampling_data)
80ADDITIONAL_INFO(eevee_global_ubo)
82STORAGE_BUF(0, read, LightCullingData, light_cull_buf)
83STORAGE_BUF(1, read_write, LightData, light_buf[])
84STORAGE_BUF(2, read_write, ShadowTileMapData, tilemaps_buf[])
85STORAGE_BUF(3, read_write, ShadowTileMapClip, tilemaps_clip_buf[])
86COMPUTE_SOURCE("eevee_light_shadow_setup_comp.glsl")
88
90
91/* -------------------------------------------------------------------- */
94
95GPU_SHADER_CREATE_INFO(eevee_light_culling_debug)
97FRAGMENT_OUT_DUAL(0, float4, out_debug_color_add, SRC_0)
98FRAGMENT_OUT_DUAL(0, float4, out_debug_color_mul, SRC_1)
99FRAGMENT_SOURCE("eevee_light_culling_debug_frag.glsl")
100ADDITIONAL_INFO(eevee_shared)
101ADDITIONAL_INFO(draw_view)
102ADDITIONAL_INFO(gpu_fullscreen)
103ADDITIONAL_INFO(eevee_light_data)
104ADDITIONAL_INFO(eevee_hiz_data)
106
unsigned int uint
#define CULLING_SELECT_GROUP_SIZE
#define CULLING_ZBIN_GROUP_SIZE
#define CULLING_SORT_GROUP_SIZE
#define CULLING_TILE_GROUP_SIZE
VecBase< float, 4 > float4
#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 STORAGE_BUF(slot, qualifiers, type_name, name)
#define GPU_SHADER_CREATE_INFO(_info)
#define LOCAL_GROUP_SIZE(...)
#define GPU_SHADER_CREATE_END()
#define COMPUTE_SOURCE(filename)
#define DO_STATIC_COMPILATION()
read