Lugdunum  0.1.0
Core.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <lug/Config.hpp>
4 
5 namespace lug {
6 namespace Graphics {
7 namespace Vulkan {
8 namespace Requirements {
9 namespace Core {
10 
12  // mandatoryInstanceExtensions
13  {
14  VK_KHR_SURFACE_EXTENSION_NAME,
15  LUG_VK_KHR_PLATFORM_SURFACE_EXTENSION_NAME
16  },
17 
18  // mandatoryInstanceLayers
19  {},
20 
21  // mandatoryDeviceExtensions
22  {
23  VK_KHR_SWAPCHAIN_EXTENSION_NAME
24  },
25 
26  // optionalInstanceExtensions
27  {
28 #if defined(LUG_DEBUG)
29  VK_EXT_DEBUG_REPORT_EXTENSION_NAME
30 #endif
31  },
32 
33  // optionalInstanceLayers
34  {
35 #if defined(LUG_DEBUG)
36  "VK_LAYER_LUNARG_standard_validation"
37 #endif
38  },
39 
40  // optionalDeviceExtensions
41  {},
42 
43  // mandatoryFeatures
44  {
45  VK_FALSE, // robustBufferAccess
46  VK_FALSE, // fullDrawIndexUint32
47  VK_FALSE, // imageCubeArray
48  VK_FALSE, // independentBlend
49  VK_FALSE, // geometryShader
50  VK_FALSE, // tessellationShader
51  VK_FALSE, // sampleRateShading
52  VK_FALSE, // dualSrcBlend
53  VK_FALSE, // logicOp
54  VK_FALSE, // multiDrawIndirect
55  VK_FALSE, // drawIndirectFirstInstance
56  VK_FALSE, // depthClamp
57  VK_FALSE, // depthBiasClamp
58  VK_FALSE, // fillModeNonSolid
59  VK_FALSE, // depthBounds
60  VK_FALSE, // wideLines
61  VK_FALSE, // largePoints
62  VK_FALSE, // alphaToOne
63  VK_FALSE, // multiViewport
64  VK_FALSE, // samplerAnisotropy
65  VK_FALSE, // textureCompressionETC2
66  VK_FALSE, // textureCompressionASTC_LDR
67  VK_FALSE, // textureCompressionBC
68  VK_FALSE, // occlusionQueryPrecise
69  VK_FALSE, // pipelineStatisticsQuery
70  VK_FALSE, // vertexPipelineStoresAndAtomics
71  VK_FALSE, // fragmentStoresAndAtomics
72  VK_FALSE, // shaderTessellationAndGeometryPointSize
73  VK_FALSE, // shaderImageGatherExtended
74  VK_FALSE, // shaderStorageImageExtendedFormats
75  VK_FALSE, // shaderStorageImageMultisample
76  VK_FALSE, // shaderStorageImageReadWithoutFormat
77  VK_FALSE, // shaderStorageImageWriteWithoutFormat
78  VK_FALSE, // shaderUniformBufferArrayDynamicIndexing
79  VK_FALSE, // shaderSampledImageArrayDynamicIndexing
80  VK_FALSE, // shaderStorageBufferArrayDynamicIndexing
81  VK_FALSE, // shaderStorageImageArrayDynamicIndexing
82  VK_FALSE, // shaderClipDistance
83  VK_FALSE, // shaderCullDistance
84  VK_FALSE, // shaderFloat64
85  VK_FALSE, // shaderInt64
86  VK_FALSE, // shaderInt16
87  VK_FALSE, // shaderResourceResidency
88  VK_FALSE, // shaderResourceMinLod
89  VK_FALSE, // sparseBinding
90  VK_FALSE, // sparseResidencyBuffer
91  VK_FALSE, // sparseResidencyImage2D
92  VK_FALSE, // sparseResidencyImage3D
93  VK_FALSE, // sparseResidency2Samples
94  VK_FALSE, // sparseResidency4Samples
95  VK_FALSE, // sparseResidency8Samples
96  VK_FALSE, // sparseResidency16Samples
97  VK_FALSE, // sparseResidencyAliased
98  VK_FALSE, // variableMultisampleRate
99  VK_FALSE, // inheritedQueries
100  },
101 
102  // optionalFeatures
103  {
104  VK_FALSE, // robustBufferAccess
105  VK_FALSE, // fullDrawIndexUint32
106  VK_FALSE, // imageCubeArray
107  VK_FALSE, // independentBlend
108  VK_FALSE, // geometryShader
109  VK_FALSE, // tessellationShader
110  VK_FALSE, // sampleRateShading
111  VK_FALSE, // dualSrcBlend
112  VK_FALSE, // logicOp
113  VK_FALSE, // multiDrawIndirect
114  VK_FALSE, // drawIndirectFirstInstance
115  VK_FALSE, // depthClamp
116  VK_FALSE, // depthBiasClamp
117  VK_FALSE, // fillModeNonSolid
118  VK_FALSE, // depthBounds
119  VK_FALSE, // wideLines
120  VK_FALSE, // largePoints
121  VK_FALSE, // alphaToOne
122  VK_FALSE, // multiViewport
123  VK_FALSE, // samplerAnisotropy
124  VK_FALSE, // textureCompressionETC2
125  VK_FALSE, // textureCompressionASTC_LDR
126  VK_FALSE, // textureCompressionBC
127  VK_FALSE, // occlusionQueryPrecise
128  VK_FALSE, // pipelineStatisticsQuery
129  VK_FALSE, // vertexPipelineStoresAndAtomics
130  VK_FALSE, // fragmentStoresAndAtomics
131  VK_FALSE, // shaderTessellationAndGeometryPointSize
132  VK_FALSE, // shaderImageGatherExtended
133  VK_FALSE, // shaderStorageImageExtendedFormats
134  VK_FALSE, // shaderStorageImageMultisample
135  VK_FALSE, // shaderStorageImageReadWithoutFormat
136  VK_FALSE, // shaderStorageImageWriteWithoutFormat
137  VK_FALSE, // shaderUniformBufferArrayDynamicIndexing
138  VK_FALSE, // shaderSampledImageArrayDynamicIndexing
139  VK_FALSE, // shaderStorageBufferArrayDynamicIndexing
140  VK_FALSE, // shaderStorageImageArrayDynamicIndexing
141  VK_FALSE, // shaderClipDistance
142  VK_FALSE, // shaderCullDistance
143  VK_FALSE, // shaderFloat64
144  VK_FALSE, // shaderInt64
145  VK_FALSE, // shaderInt16
146  VK_FALSE, // shaderResourceResidency
147  VK_FALSE, // shaderResourceMinLod
148  VK_FALSE, // sparseBinding
149  VK_FALSE, // sparseResidencyBuffer
150  VK_FALSE, // sparseResidencyImage2D
151  VK_FALSE, // sparseResidencyImage3D
152  VK_FALSE, // sparseResidency2Samples
153  VK_FALSE, // sparseResidency4Samples
154  VK_FALSE, // sparseResidency8Samples
155  VK_FALSE, // sparseResidency16Samples
156  VK_FALSE, // sparseResidencyAliased
157  VK_FALSE, // variableMultisampleRate
158  VK_FALSE, // inheritedQueries
159  }
160 };
161 
162 } // Core
163 } // Requirements
164 } // Vulkan
165 } // Graphics
166 } // lug
const Renderer::Requirements requirements
Definition: Core.hpp:11