forked from vv/efemra
1
0
Fork 0
efemra/src/shaders/r_config.h

109 lines
4.0 KiB
C

#ifndef R_CONFIG_H
#define R_CONFIG_H
// TODO: See if we can generate this from zig, or pass this to zig... avoid duplication.
// ----------------------------------------------------------------------------
// number of swapchain images
#define R_MaxSwapchainLen (3)
#define R_DesiredSwapchainLen (2)
// number of resources for dynamic buffers and images
#define R_ResourceSets (2)
#define R_CmdsPerQueue (64)
#define R_AnisotropySamples (4)
// ----------------------------------------------------------------------------
// resource bindings
// texture tables
#define bid_TextureTable1D (0)
#define bid_TextureTable1D_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_TextureTable1D_COUNT (64)
#define bid_TextureTable1D_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_TextureTable2D (bid_TextureTable1D + 1)
#define bid_TextureTable2D_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_TextureTable2D_COUNT (512)
#define bid_TextureTable2D_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_TextureTable3D (bid_TextureTable2D + 1)
#define bid_TextureTable3D_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_TextureTable3D_COUNT (64)
#define bid_TextureTable3D_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_TextureTableCube (bid_TextureTable3D + 1)
#define bid_TextureTableCube_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_TextureTableCube_COUNT (64)
#define bid_TextureTableCube_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_TextureTable2DArray (bid_TextureTableCube + 1)
#define bid_TextureTable2DArray_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_TextureTable2DArray_COUNT (64)
#define bid_TextureTable2DArray_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
// loose bindings
#define bid_Globals (bid_TextureTable2DArray + 1)
#define bid_Globals_TYPE (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER)
#define bid_Globals_STAGES (VK_SHADER_STAGE_ALL)
#define bid_SceneLuminance (bid_Globals + 1)
#define bid_SceneLuminance_TYPE (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
#define bid_SceneLuminance_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_RWSceneLuminance (bid_SceneLuminance + 1)
#define bid_RWSceneLuminance_TYPE (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE)
#define bid_RWSceneLuminance_STAGES (VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_HistogramBuffer (bid_RWSceneLuminance + 1)
#define bid_HistogramBuffer_TYPE (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)
#define bid_HistogramBuffer_STAGES (VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_ExposureBuffer (bid_HistogramBuffer + 1)
#define bid_ExposureBuffer_TYPE (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)
#define bid_ExposureBuffer_STAGES (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)
#define bid_COUNT (bid_ExposureBuffer + 1)
// descriptor pool sizes
// bid_Globals
#define DescPool_UniformBuffer_COUNT (1)
// bid_RWSceneLuminance
#define DescPool_StorageImage_COUNT (1)
// bid_HistogramBuffer
// bid_ExposureBuffer
#define DescPool_StorageBuffer_COUNT (2)
// bid_TextureTable1D
// bid_TextureTable2D
// bid_TextureTable3D
// bid_TextureTableCube
// bid_TextureTable2DArray
// bid_SceneLuminance
#define DescPool_CombinedImageSampler_COUNT (\
bid_TextureTable1D_COUNT + \
bid_TextureTable2D_COUNT + \
bid_TextureTable3D_COUNT + \
bid_TextureTableCube_COUNT + \
bid_TextureTable2DArray_COUNT + \
bid_SceneLuminance)
// ----------------------------------------------------------------------------
// colorspace
//#define COLOR_SCENE_REC709 1
//#define COLOR_SCENE_REC2020 1
#define COLOR_SCENE_AP1 1
//#define COLOR_SCENE_AP0 1
// packed emission range
#define kEmissionScale 100.0f
#endif // R_CONFIG_H