Quake II RTX doxygen  1.0 dev
global_textures.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2018 Christoph Schied
3 Copyright (C) 2019, NVIDIA CORPORATION. All rights reserved.
4 
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 #ifndef _TEXTURES_H_
21 #define _TEXTURES_H_
22 
23 #include "constants.h"
24 
25 #define IMG_WIDTH (qvk.extent_screen_images.width)
26 #define IMG_HEIGHT (qvk.extent_screen_images.height)
27 #define IMG_WIDTH_MGPU (qvk.extent_screen_images.width / qvk.device_count)
28 
29 #define IMG_WIDTH_GRAD ((qvk.extent_screen_images.width + GRAD_DWN - 1) / GRAD_DWN)
30 #define IMG_HEIGHT_GRAD ((qvk.extent_screen_images.height + GRAD_DWN - 1) / GRAD_DWN)
31 #define IMG_WIDTH_GRAD_MGPU ((qvk.extent_screen_images.width + GRAD_DWN - 1) / GRAD_DWN / qvk.device_count)
32 
33 /* These are images that are to be used as render targets and buffers, but not textures. */
34 #define LIST_IMAGES \
35  IMG_DO(PT_VISBUF, 0, R32G32B32A32_SFLOAT, rgba32f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
36  IMG_DO(PT_ALBEDO, 1, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
37  IMG_DO(PT_METALLIC, 2, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
38  IMG_DO(PT_MOTION, 3, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
39  IMG_DO(PT_TRANSPARENT, 4, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
40  IMG_DO(PT_TEX_GRADIENTS, 5, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
41  IMG_DO(ASVGF_HIST_COLOR_HF, 6, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
42  IMG_DO(ASVGF_ATROUS_PING_LF_SH, 7, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
43  IMG_DO(ASVGF_ATROUS_PONG_LF_SH, 8, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
44  IMG_DO(ASVGF_ATROUS_PING_LF_COCG, 9, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
45  IMG_DO(ASVGF_ATROUS_PONG_LF_COCG, 10, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
46  IMG_DO(ASVGF_ATROUS_PING_HF, 11, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
47  IMG_DO(ASVGF_ATROUS_PONG_HF, 12, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
48  IMG_DO(ASVGF_ATROUS_PING_SPEC, 13, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
49  IMG_DO(ASVGF_ATROUS_PONG_SPEC, 14, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
50  IMG_DO(ASVGF_ATROUS_PING_MOMENTS, 15, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
51  IMG_DO(ASVGF_ATROUS_PONG_MOMENTS, 16, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
52  IMG_DO(ASVGF_COLOR, 17, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
53  IMG_DO(ASVGF_TEX_GRADIENTS_FWD, 18, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
54  IMG_DO(ASVGF_POS_WS_FWD, 19, R32G32B32A32_SFLOAT, rgba32f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
55  IMG_DO(ASVGF_VISBUF_FWD, 20, R32G32B32A32_SFLOAT, rgba32f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
56  IMG_DO(ASVGF_GRAD_LF_PING, 21, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
57  IMG_DO(ASVGF_GRAD_LF_PONG, 22, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
58  IMG_DO(ASVGF_GRAD_HF_SPEC_PING, 23, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
59  IMG_DO(ASVGF_GRAD_HF_SPEC_PONG, 24, R16G16_SFLOAT, rg16f, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
60  IMG_DO(PT_SHADING_POSITION, 25, R32G32B32A32_SFLOAT, rgba32f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
61  IMG_DO(FLAT_COLOR, 26, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
62  IMG_DO(FLAT_MOTION, 27, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
63  IMG_DO(PT_GODRAYS_THROUGHPUT_DIST,28, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
64  IMG_DO(BLOOM_DOWNSCALE_MIP_1, 29, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH / 2, IMG_HEIGHT / 2 ) \
65  IMG_DO(BLOOM_HBLUR, 30, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH / 4, IMG_HEIGHT / 4 ) \
66  IMG_DO(BLOOM_VBLUR, 31, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH / 4, IMG_HEIGHT / 4 ) \
67  IMG_DO(TAA_OUTPUT, 32, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
68  IMG_DO(PT_VIEW_DIRECTION, 33, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
69  IMG_DO(PT_VIEW_DIRECTION2, 34, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
70  IMG_DO(PT_THROUGHPUT, 35, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
71  IMG_DO(PT_BOUNCE_THROUGHPUT, 36, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
72  IMG_DO(HQ_COLOR_INTERLEAVED, 37, R32G32B32A32_SFLOAT, rgba32f, IMG_WIDTH, IMG_HEIGHT ) \
73  IMG_DO(PT_COLOR_LF_SH, 38, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
74  IMG_DO(PT_COLOR_LF_COCG, 39, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
75  IMG_DO(PT_COLOR_HF, 40, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
76  IMG_DO(PT_COLOR_SPEC, 41, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
77  IMG_DO(PT_GEO_NORMAL, 42, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
78  IMG_DO(PT_GEO_NORMAL2, 43, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
79  IMG_DO(PT_CLUSTER, 44, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
80 
81 #define LIST_IMAGES_A_B \
82  IMG_DO(PT_VIEW_DEPTH_A, 45, R32_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
83  IMG_DO(PT_VIEW_DEPTH_B, 46, R32_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
84  IMG_DO(PT_NORMAL_A, 47, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
85  IMG_DO(PT_NORMAL_B, 48, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
86  IMG_DO(ASVGF_FILTERED_SPEC_A, 49, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
87  IMG_DO(ASVGF_FILTERED_SPEC_B, 50, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
88  IMG_DO(ASVGF_HIST_MOMENTS_HF_A, 51, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
89  IMG_DO(ASVGF_HIST_MOMENTS_HF_B, 52, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
90  IMG_DO(ASVGF_TAA_A, 53, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
91  IMG_DO(ASVGF_TAA_B, 54, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
92  IMG_DO(ASVGF_RNG_SEED_A, 55, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
93  IMG_DO(ASVGF_RNG_SEED_B, 56, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
94  IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, 57, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
95  IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, 58, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
96  IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,59, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
97  IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,60, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
98  IMG_DO(ASVGF_GRAD_SMPL_POS_A, 61, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
99  IMG_DO(ASVGF_GRAD_SMPL_POS_B, 62, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
100 
101 #define LIST_IMAGES_B_A \
102  IMG_DO(PT_VIEW_DEPTH_B, 45, R32_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
103  IMG_DO(PT_VIEW_DEPTH_A, 46, R32_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
104  IMG_DO(PT_NORMAL_B, 47, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
105  IMG_DO(PT_NORMAL_A, 48, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
106  IMG_DO(ASVGF_FILTERED_SPEC_B, 49, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
107  IMG_DO(ASVGF_FILTERED_SPEC_A, 50, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
108  IMG_DO(ASVGF_HIST_MOMENTS_HF_B, 51, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
109  IMG_DO(ASVGF_HIST_MOMENTS_HF_A, 52, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
110  IMG_DO(ASVGF_TAA_B, 53, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
111  IMG_DO(ASVGF_TAA_A, 54, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH, IMG_HEIGHT ) \
112  IMG_DO(ASVGF_RNG_SEED_B, 55, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
113  IMG_DO(ASVGF_RNG_SEED_A, 56, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
114  IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, 57, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
115  IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, 58, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
116  IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,59, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
117  IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,60, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
118  IMG_DO(ASVGF_GRAD_SMPL_POS_B, 61, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
119  IMG_DO(ASVGF_GRAD_SMPL_POS_A, 62, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
120 
121 #define NUM_IMAGES 63 /* this really sucks but I don't know how to fix it
122  counting with enum does not work in GLSL */
123 
124 // todo: make naming consistent!
125 #define GLOBAL_TEXTURES_TEX_ARR_BINDING_IDX 0
126 #define BINDING_OFFSET_IMAGES (1 + GLOBAL_TEXTURES_TEX_ARR_BINDING_IDX)
127 #define BINDING_OFFSET_TEXTURES (BINDING_OFFSET_IMAGES + NUM_IMAGES)
128 #define BINDING_OFFSET_BLUE_NOISE (BINDING_OFFSET_TEXTURES + NUM_IMAGES)
129 #define BINDING_OFFSET_ENVMAP (BINDING_OFFSET_BLUE_NOISE + 1)
130 #define BINDING_OFFSET_PHYSICAL_SKY (BINDING_OFFSET_ENVMAP + 1)
131 #define BINDING_OFFSET_PHYSICAL_SKY_IMG (BINDING_OFFSET_PHYSICAL_SKY + 1)
132 #define BINDING_OFFSET_SKY_TRANSMITTANCE (BINDING_OFFSET_PHYSICAL_SKY_IMG + 1)
133 #define BINDING_OFFSET_SKY_SCATTERING (BINDING_OFFSET_SKY_TRANSMITTANCE + 1)
134 #define BINDING_OFFSET_SKY_IRRADIANCE (BINDING_OFFSET_SKY_SCATTERING + 1)
135 #define BINDING_OFFSET_SKY_CLOUDS (BINDING_OFFSET_SKY_IRRADIANCE + 1)
136 #define BINDING_OFFSET_TERRAIN_ALBEDO (BINDING_OFFSET_SKY_CLOUDS + 1)
137 #define BINDING_OFFSET_TERRAIN_NORMALS (BINDING_OFFSET_TERRAIN_ALBEDO + 1)
138 #define BINDING_OFFSET_TERRAIN_DEPTH (BINDING_OFFSET_TERRAIN_NORMALS + 1)
139 #define BINDING_OFFSET_TERRAIN_SHADOWMAP (BINDING_OFFSET_TERRAIN_DEPTH + 1)
140 
141 
142 #ifndef VKPT_SHADER
143 /***************************************************************************/
144 /* HOST CODE */
145 /***************************************************************************/
146 
147 #if MAX_RIMAGES != NUM_GLOBAL_TEXTUES
148 #error need to fix the constant here as well
149 #endif
150 
151 
153 #define IMG_DO(_name, ...) \
154  VKPT_IMG_##_name,
157 #undef IMG_DO
159 };
160 
162 
163 #elif defined(GLOBAL_TEXTURES_DESC_SET_IDX)
164 /***************************************************************************/
165 /* SHADER CODE */
166 /***************************************************************************/
167 
168 /* general texture array for world, etc */
169 layout(
172 ) uniform sampler2D global_texture_descriptors[];
173 
174 #define SAMPLER_r16ui usampler2D
175 #define SAMPLER_r32ui usampler2D
176 #define SAMPLER_rg32ui usampler2D
177 #define SAMPLER_r32i isampler2D
178 #define SAMPLER_r32f sampler2D
179 #define SAMPLER_rg32f sampler2D
180 #define SAMPLER_rg16f sampler2D
181 #define SAMPLER_rgba32f sampler2D
182 #define SAMPLER_rgba16f sampler2D
183 #define SAMPLER_rgba8 sampler2D
184 #define SAMPLER_r8 sampler2D
185 #define SAMPLER_rg8 sampler2D
186 
187 #define IMAGE_r16ui uimage2D
188 #define IMAGE_r32ui uimage2D
189 #define IMAGE_rg32ui uimage2D
190 #define IMAGE_r32i iimage2D
191 #define IMAGE_r32f image2D
192 #define IMAGE_rg32f image2D
193 #define IMAGE_rg16f image2D
194 #define IMAGE_rgba32f image2D
195 #define IMAGE_rgba16f image2D
196 #define IMAGE_rgba8 image2D
197 #define IMAGE_r8 image2D
198 #define IMAGE_rg8 image2D
199 
200 /* framebuffer images */
201 #define IMG_DO(_name, _binding, _vkformat, _glslformat, _w, _h) \
202  layout(set = GLOBAL_TEXTURES_DESC_SET_IDX, binding = BINDING_OFFSET_IMAGES + _binding, _glslformat) \
203  uniform IMAGE_##_glslformat IMG_##_name;
206 #undef IMG_DO
207 
208 /* framebuffer textures */
209 #define IMG_DO(_name, _binding, _vkformat, _glslformat, _w, _h) \
210  layout(set = GLOBAL_TEXTURES_DESC_SET_IDX, binding = BINDING_OFFSET_TEXTURES + _binding) \
211  uniform SAMPLER_##_glslformat TEX_##_name;
214 #undef IMG_DO
215 
216 layout(
218  binding = BINDING_OFFSET_BLUE_NOISE
219 ) uniform sampler2DArray TEX_BLUE_NOISE;
220 
221 layout(
223  binding = BINDING_OFFSET_ENVMAP
224 ) uniform samplerCube TEX_ENVMAP;
225 
226 layout(
229 ) uniform samplerCube TEX_PHYSICAL_SKY;
230 
231 layout(
234  rgba16f
235 ) uniform imageCube IMG_PHYSICAL_SKY;
236 
237 //#precomputed_sky begin
238 
239 layout(
242 ) uniform sampler2D TEX_SKY_TRANSMITTANCE;
243 
244 layout(
247 ) uniform sampler3D TEX_SKY_SCATTERING;
248 
249 layout(
252 ) uniform sampler2D TEX_SKY_IRRADIANCE;
253 
254 layout(
256  binding = BINDING_OFFSET_SKY_CLOUDS
257 ) uniform sampler3D TEX_SKY_CLOUDS;
258 
259 layout(
262 ) uniform samplerCube IMG_TERRAIN_ALBEDO;
263 
264 layout(
267 ) uniform samplerCube IMG_TERRAIN_NORMALS;
268 
269 layout(
272 ) uniform samplerCube IMG_TERRAIN_DEPTH;
273 
274 layout(
277 ) uniform sampler2D TEX_TERRAIN_SHADOWMAP;
278 //#precomputed_sky end
279 
280 vec4
281 global_texture(uint idx, vec2 tex_coord)
282 {
283  if(idx >= NUM_GLOBAL_TEXTUES)
284  return vec4(1, 0, 1, 0);
285  return texture(global_texture_descriptors[nonuniformEXT(idx)], tex_coord);
286 }
287 
288 vec4
289 global_textureLod(uint idx, vec2 tex_coord, float lod)
290 {
291  if(idx >= NUM_GLOBAL_TEXTUES)
292  return vec4(1, 1, 0, 0);
293  return textureLod(global_texture_descriptors[nonuniformEXT(idx)], tex_coord, lod);
294 }
295 
296 vec4
297 global_textureGrad(uint idx, vec2 tex_coord, vec2 d_x, vec2 d_y)
298 {
299  if(idx >= NUM_GLOBAL_TEXTUES)
300  return vec4(1, 1, 0, 0);
301  return textureGrad(global_texture_descriptors[nonuniformEXT(idx)], tex_coord, d_x, d_y);
302 }
303 
304 ivec2
305 global_textureSize(uint idx, int level)
306 {
307  if(idx >= NUM_GLOBAL_TEXTUES)
308  return ivec2(0);
309  return textureSize(global_texture_descriptors[nonuniformEXT(idx)], level);
310 }
311 
312 
313 #endif
314 
315 
316 #endif /*_TEXTURES_H_*/
317 // vim: shiftwidth=4 noexpandtab tabstop=4 cindent
GLOBAL_TEXTURES_TEX_ARR_BINDING_IDX
#define GLOBAL_TEXTURES_TEX_ARR_BINDING_IDX
Definition: global_textures.h:124
GLOBAL_TEXTURES_DESC_SET_IDX
#define GLOBAL_TEXTURES_DESC_SET_IDX
Definition: path_tracer_rgen.h:27
compile_time_check_num_images
char compile_time_check_num_images[(NUM_IMAGES==NUM_VKPT_IMAGES) *2-1]
Definition: global_textures.h:160
NUM_GLOBAL_TEXTUES
#define NUM_GLOBAL_TEXTUES
Definition: constants.h:39
uint
uint32_t uint
Definition: global_ubo.h:233
BINDING_OFFSET_SKY_CLOUDS
#define BINDING_OFFSET_SKY_CLOUDS
Definition: global_textures.h:134
QVK_IMAGES
QVK_IMAGES
Definition: global_textures.h:151
BINDING_OFFSET_BLUE_NOISE
#define BINDING_OFFSET_BLUE_NOISE
Definition: global_textures.h:127
BINDING_OFFSET_TERRAIN_ALBEDO
#define BINDING_OFFSET_TERRAIN_ALBEDO
Definition: global_textures.h:135
layout
layout(set=GOD_RAYS_DESC_SET_IDX, binding=0) uniform sampler2DArray TEX_SHADOW_MAP
BINDING_OFFSET_SKY_SCATTERING
#define BINDING_OFFSET_SKY_SCATTERING
Definition: global_textures.h:132
NUM_IMAGES
#define NUM_IMAGES
Definition: global_textures.h:121
LIST_IMAGES
#define LIST_IMAGES
Definition: global_textures.h:34
BINDING_OFFSET_SKY_IRRADIANCE
#define BINDING_OFFSET_SKY_IRRADIANCE
Definition: global_textures.h:133
BINDING_OFFSET_PHYSICAL_SKY_IMG
#define BINDING_OFFSET_PHYSICAL_SKY_IMG
Definition: global_textures.h:130
BINDING_OFFSET_TERRAIN_DEPTH
#define BINDING_OFFSET_TERRAIN_DEPTH
Definition: global_textures.h:137
BINDING_OFFSET_PHYSICAL_SKY
#define BINDING_OFFSET_PHYSICAL_SKY
Definition: global_textures.h:129
BINDING_OFFSET_TERRAIN_NORMALS
#define BINDING_OFFSET_TERRAIN_NORMALS
Definition: global_textures.h:136
constants.h
level
level_locals_t level
Definition: g_main.c:22
NUM_VKPT_IMAGES
@ NUM_VKPT_IMAGES
Definition: global_textures.h:157
BINDING_OFFSET_ENVMAP
#define BINDING_OFFSET_ENVMAP
Definition: global_textures.h:128
LIST_IMAGES_A_B
#define LIST_IMAGES_A_B
Definition: global_textures.h:81
BINDING_OFFSET_TERRAIN_SHADOWMAP
#define BINDING_OFFSET_TERRAIN_SHADOWMAP
Definition: global_textures.h:138
BINDING_OFFSET_SKY_TRANSMITTANCE
#define BINDING_OFFSET_SKY_TRANSMITTANCE
Definition: global_textures.h:131