Skip to content

Commit

Permalink
Minimally less hardcoding of image binding indices
Browse files Browse the repository at this point in the history
  • Loading branch information
res2k committed Sep 16, 2021
1 parent 8e73b63 commit 71a0991
Showing 1 changed file with 61 additions and 59 deletions.
120 changes: 61 additions & 59 deletions src/refresh/vkpt/shader/global_textures.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,68 +74,70 @@ with this program; if not, write to the Free Software Foundation, Inc.,
IMG_DO(PT_COLOR_SPEC, 34, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL2, 35, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \

#define NUM_IMAGES_BASE 36

#define LIST_IMAGES_A_B \
IMG_DO(PT_VISBUF_A, 36, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VISBUF_B, 37, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_A, 38, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_B, 39, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_A, 40, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_B, 41, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_A, 42, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_B, 43, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_A, 44, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_B, 45, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_A, 46, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_B, 47, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_A, 48, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_B, 49, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_A, 50, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_B, 51, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_A, 52, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_B, 53, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_TAA_A, 54, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_TAA_B, 55, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_RNG_SEED_A, 56, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_RNG_SEED_B, 57, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, 58, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, 59, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,60, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,61, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_GRAD_SMPL_POS_A, 62, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
IMG_DO(ASVGF_GRAD_SMPL_POS_B, 63, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
IMG_DO(PT_VISBUF_A, NUM_IMAGES_BASE + 0, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VISBUF_B, NUM_IMAGES_BASE + 1, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_A, NUM_IMAGES_BASE + 2, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_B, NUM_IMAGES_BASE + 3, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_A, NUM_IMAGES_BASE + 4, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_B, NUM_IMAGES_BASE + 5, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_A, NUM_IMAGES_BASE + 6, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_B, NUM_IMAGES_BASE + 7, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_A, NUM_IMAGES_BASE + 8, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_B, NUM_IMAGES_BASE + 9, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_A, NUM_IMAGES_BASE + 10, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_B, NUM_IMAGES_BASE + 11, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_A, NUM_IMAGES_BASE + 12, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_B, NUM_IMAGES_BASE + 13, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_A, NUM_IMAGES_BASE + 14, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_B, NUM_IMAGES_BASE + 15, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_A, NUM_IMAGES_BASE + 16, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_B, NUM_IMAGES_BASE + 17, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_TAA_A, NUM_IMAGES_BASE + 18, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_TAA_B, NUM_IMAGES_BASE + 19, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_RNG_SEED_A, NUM_IMAGES_BASE + 20, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_RNG_SEED_B, NUM_IMAGES_BASE + 21, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, NUM_IMAGES_BASE + 22, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, NUM_IMAGES_BASE + 23, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,NUM_IMAGES_BASE + 24, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,NUM_IMAGES_BASE + 25, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_GRAD_SMPL_POS_A, NUM_IMAGES_BASE + 26, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
IMG_DO(ASVGF_GRAD_SMPL_POS_B, NUM_IMAGES_BASE + 27, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \

#define LIST_IMAGES_B_A \
IMG_DO(PT_VISBUF_B, 36, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VISBUF_A, 37, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_B, 38, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_A, 39, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_B, 40, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_A, 41, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_B, 42, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_A, 43, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_B, 44, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_A, 45, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_B, 46, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_A, 47, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_B, 48, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_A, 49, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_B, 50, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_A, 51, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_B, 52, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_A, 53, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_TAA_B, 54, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_TAA_A, 55, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_RNG_SEED_B, 56, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_RNG_SEED_A, 57, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, 58, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, 59, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,60, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,61, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_GRAD_SMPL_POS_B, 62, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
IMG_DO(ASVGF_GRAD_SMPL_POS_A, 63, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \

#define NUM_IMAGES 64 /* this really sucks but I don't know how to fix it
counting with enum does not work in GLSL */
IMG_DO(PT_VISBUF_B, NUM_IMAGES_BASE + 0, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VISBUF_A, NUM_IMAGES_BASE + 1, R32G32_UINT, rg32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_B, NUM_IMAGES_BASE + 2, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_CLUSTER_A, NUM_IMAGES_BASE + 3, R16_UINT, r16ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_B, NUM_IMAGES_BASE + 4, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_BASE_COLOR_A, NUM_IMAGES_BASE + 5, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_B, NUM_IMAGES_BASE + 6, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_METALLIC_A, NUM_IMAGES_BASE + 7, R8G8_UNORM, rg8, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_B, NUM_IMAGES_BASE + 8, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_VIEW_DEPTH_A, NUM_IMAGES_BASE + 9, R16_SFLOAT, r32f, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_B, NUM_IMAGES_BASE + 10, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_NORMAL_A, NUM_IMAGES_BASE + 11, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_B, NUM_IMAGES_BASE + 12, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(PT_GEO_NORMAL_A, NUM_IMAGES_BASE + 13, R32_UINT, r32ui, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_B, NUM_IMAGES_BASE + 14, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_FILTERED_SPEC_A, NUM_IMAGES_BASE + 15, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_B, NUM_IMAGES_BASE + 16, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_MOMENTS_HF_A, NUM_IMAGES_BASE + 17, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_TAA_B, NUM_IMAGES_BASE + 18, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_TAA_A, NUM_IMAGES_BASE + 19, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_TAA, IMG_HEIGHT_TAA ) \
IMG_DO(ASVGF_RNG_SEED_B, NUM_IMAGES_BASE + 20, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_RNG_SEED_A, NUM_IMAGES_BASE + 21, R32_UINT, r32ui, IMG_WIDTH, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_B, NUM_IMAGES_BASE + 22, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_SH_A, NUM_IMAGES_BASE + 23, R16G16B16A16_SFLOAT, rgba16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_B,NUM_IMAGES_BASE + 24, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_HIST_COLOR_LF_COCG_A,NUM_IMAGES_BASE + 25, R16G16_SFLOAT, rg16f, IMG_WIDTH_MGPU, IMG_HEIGHT ) \
IMG_DO(ASVGF_GRAD_SMPL_POS_B, NUM_IMAGES_BASE + 26, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \
IMG_DO(ASVGF_GRAD_SMPL_POS_A, NUM_IMAGES_BASE + 27, R32_UINT, r32ui, IMG_WIDTH_GRAD_MGPU, IMG_HEIGHT_GRAD) \

#define NUM_IMAGES (NUM_IMAGES_BASE + 28) /* this really sucks but I don't know how to fix it
counting with enum does not work in GLSL */

// todo: make naming consistent!
#define GLOBAL_TEXTURES_TEX_ARR_BINDING_IDX 0
Expand Down

0 comments on commit 71a0991

Please sign in to comment.