@@ -14,42 +14,305 @@ IPhysicalDevice::IPhysicalDevice(core::smart_refctd_ptr<system::ISystem>&& s, co
14
14
15
15
void IPhysicalDevice::addCommonGLSLDefines (std::ostringstream& pool, const bool runningInRenderdoc)
16
16
{
17
+ // uint32_t maxImageDimension1D = 0u;
18
+ // uint32_t maxImageDimension2D = 0u;
19
+ // uint32_t maxImageDimension3D = 0u;
20
+ // uint32_t maxImageDimensionCube = 0u;
21
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_IMAGE_ARRAY_LAYERS" , m_properties.limits .maxImageArrayLayers );
22
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_BUFFER_VIEW_TEXELS" , m_properties.limits .maxBufferViewTexels );
17
23
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_UBO_SIZE" ,m_properties.limits .maxUBOSize );
18
24
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_SSBO_SIZE" ,m_properties.limits .maxSSBOSize );
19
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_BUFFER_VIEW_TEXELS" ,m_properties.limits .maxBufferViewTexels );
20
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_BUFFER_SIZE" ,core::min (m_properties.limits .maxBufferSize , ~0u ));
21
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_IMAGE_ARRAY_LAYERS" ,m_properties.limits .maxImageArrayLayers );
25
+ // uint32_t maxPushConstantsSize = 0u;
26
+ // uint32_t maxMemoryAllocationCount = 0u;
27
+ // uint32_t maxSamplerAllocationCount = 0u;
28
+ // size_t bufferImageGranularity = 0ull;
22
29
30
+ // uint32_t maxPerStageDescriptorSamplers = 0u; // Descriptors with a type of EDT_COMBINED_IMAGE_SAMPLER count against this limit
31
+ // uint32_t maxPerStageDescriptorUBOs = 0u;
23
32
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_PER_STAGE_SSBO_COUNT" ,m_properties.limits .maxPerStageDescriptorSSBOs );
24
-
25
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_SSBO_COUNT" ,m_properties.limits .maxDescriptorSetSSBOs );
33
+ // uint32_t maxPerStageDescriptorImages = 0u; // Descriptors with a type of EDT_COMBINED_IMAGE_SAMPLER, EDT_UNIFORM_TEXEL_BUFFER count against this limit.
34
+ // uint32_t maxPerStageDescriptorStorageImages = 0u;
35
+ // uint32_t maxPerStageDescriptorInputAttachments = 0u;
36
+ // uint32_t maxPerStageResources = 0u;
37
+
38
+ // uint32_t maxDescriptorSetSamplers = 0u; // Descriptors with a type of EDT_COMBINED_IMAGE_SAMPLER count against this limit
26
39
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_UBO_COUNT" ,m_properties.limits .maxDescriptorSetUBOs );
40
+ // uint32_t maxDescriptorSetDynamicOffsetUBOs = 0u;
41
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_SSBO_COUNT" ,m_properties.limits .maxDescriptorSetSSBOs );
42
+ // uint32_t maxDescriptorSetDynamicOffsetSSBOs = 0u;
27
43
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_TEXTURE_COUNT" ,m_properties.limits .maxDescriptorSetImages );
28
44
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_STORAGE_IMAGE_COUNT" ,m_properties.limits .maxDescriptorSetStorageImages );
29
-
45
+ // uint32_t maxDescriptorSetInputAttachments = 0u;
46
+
47
+ // uint32_t maxTessellationGenerationLevel = 0u;
48
+ // uint32_t maxTessellationPatchSize = 0u;
49
+ // uint32_t maxTessellationControlPerVertexInputComponents = 0u;
50
+ // uint32_t maxTessellationControlPerVertexOutputComponents = 0u;
51
+ // uint32_t maxTessellationControlPerPatchOutputComponents = 0u;
52
+ // uint32_t maxTessellationControlTotalOutputComponents = 0u;
53
+ // uint32_t maxTessellationEvaluationInputComponents = 0u;
54
+ // uint32_t maxTessellationEvaluationOutputComponents = 0u;
55
+ // uint32_t maxGeometryShaderInvocations = 0u;
56
+ // uint32_t maxGeometryInputComponents = 0u;
57
+ // uint32_t maxGeometryOutputComponents = 0u;
58
+ // uint32_t maxGeometryOutputVertices = 0u;
59
+ // uint32_t maxGeometryTotalOutputComponents = 0u;
60
+ // uint32_t maxFragmentInputComponents = 0u;
61
+ // uint32_t maxFragmentOutputAttachments = 0u;
62
+ // uint32_t maxFragmentDualSrcAttachments = 0u;
63
+ // uint32_t maxFragmentCombinedOutputResources = 0u;
64
+ // uint32_t maxComputeSharedMemorySize;
65
+ // uint32_t maxComputeWorkGroupCount[3];
66
+ // uint32_t maxComputeWorkGroupInvocations = 0u;
67
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_X" ,m_properties.limits .maxWorkgroupSize [0 ]);
68
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_Y" ,m_properties.limits .maxWorkgroupSize [1 ]);
69
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_Z" ,m_properties.limits .maxWorkgroupSize [2 ]);
70
+ // uint32_t subPixelPrecisionBits = 0u;
30
71
addGLSLDefineToPool (pool," NBL_LIMIT_MAX_DRAW_INDIRECT_COUNT" ,m_properties.limits .maxDrawIndirectCount );
31
-
72
+ // float maxSamplerLodBias = 0.0f;
73
+ // uint8_t maxSamplerAnisotropyLog2 = 0.0f;
74
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORTS" ,m_properties.limits .maxViewports );
75
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORT_WIDTH" ,m_properties.limits .maxViewportDims [0 ]);
76
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORT_HEIGHT" ,m_properties.limits .maxViewportDims [1 ]);
77
+ // float viewportBoundsRange[2]; // [min, max]
78
+ // uint32_t viewportSubPixelBits = 0u;
79
+ // size_t minMemoryMapAlignment = 0ull;
80
+ // uint32_t bufferViewAlignment = 0u;
81
+ // uint32_t minUBOAlignment = 0u;
82
+ // uint32_t minSSBOAlignment = 0u;
83
+ // int32_t minTexelOffset = 0;
84
+ // uint32_t maxTexelOffset = 0u;
85
+ // int32_t minTexelGatherOffset = 0;
86
+ // uint32_t maxTexelGatherOffset = 0u;
87
+ // float minInterpolationOffset = 0.0f;
88
+ // float maxInterpolationOffset = 0.0f;
89
+ // uint32_t maxFramebufferWidth = 0u;
90
+ // uint32_t maxFramebufferHeight = 0u;
91
+ // uint32_t maxFramebufferLayers = 0u;
92
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> framebufferColorSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
93
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> framebufferDepthSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
94
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> framebufferStencilSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
95
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> framebufferNoAttachmentsSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
96
+ // uint32_t maxColorAttachments = 0u;
97
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> sampledImageColorSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
98
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> sampledImageIntegerSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
99
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> sampledImageDepthSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
100
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> sampledImageStencilSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
101
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> storageImageSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
102
+ // uint32_t maxSampleMaskWords = 0u;
103
+ // bool timestampComputeAndGraphics = false;
104
+ // float timestampPeriodInNanoSeconds = 0.0f; // timestampPeriod is the number of nanoseconds required for a timestamp query to be incremented by 1 (a float because vulkan reports), use core::rational in the future
105
+ // uint32_t maxClipDistances = 0u;
106
+ // uint32_t maxCullDistances = 0u;
107
+ // uint32_t maxCombinedClipAndCullDistances = 0u;
108
+ // uint32_t discreteQueuePriorities = 0u;
32
109
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MIN_POINT_SIZE" ,m_properties.limits .pointSizeRange [0 ]);
33
110
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_POINT_SIZE" ,m_properties.limits .pointSizeRange [1 ]);
34
111
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MIN_LINE_WIDTH" ,m_properties.limits .lineWidthRange [0 ]);
35
112
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_LINE_WIDTH" ,m_properties.limits .lineWidthRange [1 ]);
113
+ // float pointSizeGranularity = 0.f;
114
+ // float lineWidthGranularity = 0.f;
115
+ // bool strictLines = false;
116
+ // bool standardSampleLocations = false;
117
+ // uint64_t optimalBufferCopyOffsetAlignment = 0ull;
118
+ // uint64_t optimalBufferCopyRowPitchAlignment = 0ull;
119
+ // uint64_t nonCoherentAtomSize = 0ull;
120
+
121
+ // uint32_t maxVertexOutputComponents = 0u;
122
+
123
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_SUBGROUP_SIZE" ,m_properties.limits .subgroupSize );
124
+ // core::bitflag<asset::IShader::E_SHADER_STAGE> subgroupOpsShaderStages = asset::IShader::ESS_UNKNOWN;
125
+ // bool shaderSubgroupBasic = false;
126
+ // bool shaderSubgroupVote = false;
127
+ // bool shaderSubgroupArithmetic = false;
128
+ // bool shaderSubgroupBallot = false;
129
+ // bool shaderSubgroupShuffle = false;
130
+ // bool shaderSubgroupShuffleRelative = false;
131
+ // bool shaderSubgroupClustered = false;
132
+ // bool shaderSubgroupQuad = false;
133
+ // bool shaderSubgroupQuadAllStages = false;
134
+
135
+ // E_POINT_CLIPPING_BEHAVIOR pointClippingBehavior = EPCB_USER_CLIP_PLANES_ONLY;
136
+
137
+ // uint32_t maxPerSetDescriptors = 0u;
138
+ // size_t maxMemoryAllocationSize = 0ull;
139
+
140
+ // E_TRI_BOOLEAN shaderSignedZeroInfNanPreserveFloat16 = ETB_DONT_KNOW;
141
+ // E_TRI_BOOLEAN shaderSignedZeroInfNanPreserveFloat32 = ETB_DONT_KNOW;
142
+ // E_TRI_BOOLEAN shaderSignedZeroInfNanPreserveFloat64 = ETB_DONT_KNOW;
143
+ // E_TRI_BOOLEAN shaderDenormPreserveFloat16 = ETB_DONT_KNOW;
144
+ // E_TRI_BOOLEAN shaderDenormPreserveFloat32 = ETB_DONT_KNOW;
145
+ // E_TRI_BOOLEAN shaderDenormPreserveFloat64 = ETB_DONT_KNOW;
146
+ // E_TRI_BOOLEAN shaderDenormFlushToZeroFloat16 = ETB_DONT_KNOW;
147
+ // E_TRI_BOOLEAN shaderDenormFlushToZeroFloat32 = ETB_DONT_KNOW;
148
+ // E_TRI_BOOLEAN shaderDenormFlushToZeroFloat64 = ETB_DONT_KNOW;
149
+ // E_TRI_BOOLEAN shaderRoundingModeRTEFloat16 = ETB_DONT_KNOW;
150
+ // E_TRI_BOOLEAN shaderRoundingModeRTEFloat32 = ETB_DONT_KNOW;
151
+ // E_TRI_BOOLEAN shaderRoundingModeRTEFloat64 = ETB_DONT_KNOW;
152
+ // E_TRI_BOOLEAN shaderRoundingModeRTZFloat16 = ETB_DONT_KNOW;
153
+ // E_TRI_BOOLEAN shaderRoundingModeRTZFloat32 = ETB_DONT_KNOW;
154
+ // E_TRI_BOOLEAN shaderRoundingModeRTZFloat64 = ETB_DONT_KNOW;
155
+
156
+ // uint32_t maxUpdateAfterBindDescriptorsInAllPools = ~0u;
157
+ // bool shaderUniformBufferArrayNonUniformIndexingNative = false;
158
+ // bool shaderSampledImageArrayNonUniformIndexingNative = false;
159
+ // bool shaderStorageBufferArrayNonUniformIndexingNative = false;
160
+ // bool shaderStorageImageArrayNonUniformIndexingNative = false;
161
+ // bool shaderInputAttachmentArrayNonUniformIndexingNative = false;
162
+ // bool robustBufferAccessUpdateAfterBind = false;
163
+ // bool quadDivergentImplicitLod = false;
164
+ // uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = 0u;
165
+ // uint32_t maxPerStageDescriptorUpdateAfterBindUBOs = 0u;
166
+ // uint32_t maxPerStageDescriptorUpdateAfterBindSSBOs = 0u;
167
+ // uint32_t maxPerStageDescriptorUpdateAfterBindImages = 0u;
168
+ // uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = 0u;
169
+ // uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = 0u;
170
+ // uint32_t maxPerStageUpdateAfterBindResources = 0u;
171
+ // uint32_t maxDescriptorSetUpdateAfterBindSamplers = 0u;
172
+ // uint32_t maxDescriptorSetUpdateAfterBindUBOs = 0u;
173
+ // uint32_t maxDescriptorSetUpdateAfterBindDynamicOffsetUBOs = 0u;
174
+ // uint32_t maxDescriptorSetUpdateAfterBindSSBOs = 0u;
175
+ // uint32_t maxDescriptorSetUpdateAfterBindDynamicOffsetSSBOs = 0u;
176
+ // uint32_t maxDescriptorSetUpdateAfterBindImages = 0u;
177
+ // uint32_t maxDescriptorSetUpdateAfterBindStorageImages = 0u;
178
+ // uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = 0u;
179
+
180
+ // bool filterMinmaxSingleComponentFormats = false;
181
+ // bool filterMinmaxImageComponentMapping = false;
182
+
183
+ // uint32_t minSubgroupSize = 0u;
184
+ // uint32_t maxSubgroupSize = 0u;
185
+ // uint32_t maxComputeWorkgroupSubgroups = 0u;
186
+ // core::bitflag<asset::IShader::E_SHADER_STAGE> requiredSubgroupSizeStages = core::bitflag<asset::IShader::E_SHADER_STAGE>(0u);
187
+
188
+ // size_t storageTexelBufferOffsetAlignmentBytes = 0ull;
189
+ // size_t uniformTexelBufferOffsetAlignmentBytes = 0ull;
36
190
37
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORTS" ,m_properties.limits .maxViewports );
38
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORT_WIDTH" ,m_properties.limits .maxViewportDims [0 ]);
39
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_VIEWPORT_HEIGHT" ,m_properties.limits .maxViewportDims [1 ]);
191
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_BUFFER_SIZE" ,core::min (m_properties.limits .maxBufferSize , ~0u ));
40
192
41
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_X" ,m_properties.limits .maxWorkgroupSize [0 ]);
42
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_Y" ,m_properties.limits .maxWorkgroupSize [1 ]);
43
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_WORKGROUP_SIZE_Z" ,m_properties.limits .maxWorkgroupSize [2 ]);
193
+ // float primitiveOverestimationSize = 0.0f;
194
+ // float maxExtraPrimitiveOverestimationSize = 0.0f;
195
+ // float extraPrimitiveOverestimationSizeGranularity = 0.0f;
196
+ // bool primitiveUnderestimation = false;
197
+ // bool conservativePointAndLineRasterization = false;
198
+ // bool degenerateTrianglesRasterized = false;
199
+ // bool degenerateLinesRasterized = false;
200
+ // bool fullyCoveredFragmentShaderInputVariable = false;
201
+ // bool conservativeRasterizationPostDepthCoverage = false;
202
+
203
+ // uint32_t maxDiscardRectangles = 0u;
204
+ // uint32_t lineSubPixelPrecisionBits = 0;
205
+ // uint32_t maxVertexAttribDivisor = 0;
206
+ // uint32_t maxSubpassShadingWorkgroupSizeAspectRatio = 0;
207
+
208
+ // bool integerDotProduct8BitUnsignedAccelerated;
209
+ // bool integerDotProduct8BitSignedAccelerated;
210
+ // bool integerDotProduct8BitMixedSignednessAccelerated;
211
+ // bool integerDotProduct4x8BitPackedUnsignedAccelerated;
212
+ // bool integerDotProduct4x8BitPackedSignedAccelerated;
213
+ // bool integerDotProduct4x8BitPackedMixedSignednessAccelerated;
214
+ // bool integerDotProduct16BitUnsignedAccelerated;
215
+ // bool integerDotProduct16BitSignedAccelerated;
216
+ // bool integerDotProduct16BitMixedSignednessAccelerated;
217
+ // bool integerDotProduct32BitUnsignedAccelerated;
218
+ // bool integerDotProduct32BitSignedAccelerated;
219
+ // bool integerDotProduct32BitMixedSignednessAccelerated;
220
+ // bool integerDotProduct64BitUnsignedAccelerated;
221
+ // bool integerDotProduct64BitSignedAccelerated;
222
+ // bool integerDotProduct64BitMixedSignednessAccelerated;
223
+ // bool integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
224
+ // bool integerDotProductAccumulatingSaturating8BitSignedAccelerated;
225
+ // bool integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
226
+ // bool integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
227
+ // bool integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
228
+ // bool integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
229
+ // bool integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
230
+ // bool integerDotProductAccumulatingSaturating16BitSignedAccelerated;
231
+ // bool integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
232
+ // bool integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
233
+ // bool integerDotProductAccumulatingSaturating32BitSignedAccelerated;
234
+ // bool integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
235
+ // bool integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
236
+ // bool integerDotProductAccumulatingSaturating64BitSignedAccelerated;
237
+ // bool integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
238
+
239
+ // uint64_t maxGeometryCount = 0ull;
240
+ // uint64_t maxInstanceCount = 0ull;
241
+ // uint64_t maxPrimitiveCount = 0ull;
242
+ // uint32_t maxPerStageDescriptorAccelerationStructures = 0u;
243
+ // uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 0u;
244
+ // uint32_t maxDescriptorSetAccelerationStructures = 0u;
245
+ // uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = 0u;
246
+ // uint32_t minAccelerationStructureScratchOffsetAlignment = 0u;
247
+
248
+ // bool variableSampleLocations = false;
249
+ // uint32_t sampleLocationSubPixelBits = 0;
250
+ // core::bitflag<asset::IImage::E_SAMPLE_COUNT_FLAGS> sampleLocationSampleCounts = asset::IImage::E_SAMPLE_COUNT_FLAGS(0u);
251
+ // VkExtent2D maxSampleLocationGridSize = { 0u, 0u };
252
+ // float sampleLocationCoordinateRange[2];
253
+
254
+ // size_t minImportedHostPointerAlignment = 0x1ull<<63u;
255
+
256
+ // VkExtent2D minFragmentDensityTexelSize = {0u, 0u};
257
+ // VkExtent2D maxFragmentDensityTexelSize = {0u, 0u};
258
+ // bool fragmentDensityInvocations = false;
259
+
260
+ // bool subsampledLoads = false;
261
+ // bool subsampledCoarseReconstructionEarlyAccess = false;
262
+ // uint32_t maxSubsampledArrayLayers = 0u;
263
+ // uint32_t maxDescriptorSetSubsampledSamplers = 0u;
264
+
265
+ // uint32_t pciDomain = ~0u;
266
+ // uint32_t pciBus = ~0u;
267
+ // uint32_t pciDevice = ~0u;
268
+ // uint32_t pciFunction = ~0u;
269
+
270
+ // uint32_t shaderGroupHandleSize = 0u;
271
+ // uint32_t maxRayRecursionDepth = 0u;
272
+ // uint32_t maxShaderGroupStride = 0u;
273
+ // uint32_t shaderGroupBaseAlignment = 0u;
274
+ // uint32_t shaderGroupHandleCaptureReplaySize = 0u;
275
+ // uint32_t maxRayDispatchInvocationCount = 0u;
276
+ // uint32_t shaderGroupHandleAlignment = 0u;
277
+ // uint32_t maxRayHitAttributeSize = 0u;
278
+
279
+ // core::bitflag<asset::IShader::E_SHADER_STAGE> cooperativeMatrixSupportedStages = asset::IShader::ESS_UNKNOWN;
280
+
281
+ // bool shaderOutputViewportIndex = false; // ALIAS: VK_EXT_shader_viewport_index_layer
282
+ // bool shaderOutputLayer = false; // ALIAS: VK_EXT_shader_viewport_index_layer
283
+ // bool shaderIntegerFunctions2 = false;
284
+ // bool shaderSubgroupClock = false;
285
+ // bool imageFootprint = false;
286
+ // bool texelBufferAlignment = false;
287
+ // bool shaderSMBuiltins = false;
288
+ // bool shaderSubgroupPartitioned = false; /* VK_NV_shader_subgroup_partitioned */
289
+ // bool gcnShader = false; /* VK_AMD_gcn_shader */
290
+ // bool gpuShaderHalfFloat = false; /* VK_AMD_gpu_shader_half_float */
291
+ // bool gpuShaderInt16 = false; /* VK_AMD_gpu_shader_int16 */
292
+ // bool shaderBallot = false; /* VK_AMD_shader_ballot */
293
+ // bool shaderImageLoadStoreLod = false; /* VK_AMD_shader_image_load_store_lod */
294
+ // bool shaderTrinaryMinmax = false; /* VK_AMD_shader_trinary_minmax */
295
+ // bool postDepthCoverage = false; /* VK_EXT_post_depth_coverage */
296
+ // bool shaderStencilExport = false; /* VK_EXT_shader_stencil_export */
297
+ // bool decorateString = false; /* VK_GOOGLE_decorate_string */
298
+ // bool externalFence = false; /* VK_KHR_external_fence_fd */ /* VK_KHR_external_fence_win32 */
299
+ // bool externalMemory = false; /* VK_KHR_external_memory_fd */ /* VK_KHR_external_memory_win32 */
300
+ // bool externalSemaphore = false; /* VK_KHR_external_semaphore_fd */ /* VK_KHR_external_semaphore_win32 */
301
+ // bool shaderNonSemanticInfo = false; /* VK_KHR_shader_non_semantic_info */
302
+ // bool fragmentShaderBarycentric = false; /* VK_KHR_fragment_shader_barycentric */
303
+ // bool geometryShaderPassthrough = false; /* VK_NV_geometry_shader_passthrough */
304
+ // bool viewportSwizzle = false; /* VK_NV_viewport_swizzle */
305
+
306
+ // uint32_t computeUnits = 0u;
307
+ // bool dispatchBase = false; // true in Vk, false in GL
308
+ // bool allowCommandBufferQueryCopies = false;
44
309
addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_OPTIMALLY_RESIDENT_WORKGROUP_INVOCATIONS" ,m_properties.limits .maxOptimallyResidentWorkgroupInvocations );
310
+ addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_RESIDENT_INVOCATIONS" ,m_properties.limits .maxResidentInvocations );
311
+ // asset::IGLSLCompiler::E_SPIRV_VERSION spirvVersion;
312
+
45
313
46
- // TODO: Need upper and lower bounds on workgroup sizes!
47
- // TODO: Need to know if subgroup size is constant/known
48
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_SUBGROUP_SIZE" ,m_properties.limits .subgroupSize );
49
314
// TODO: @achal test examples 14 and 48 on all APIs and GPUs
50
315
51
- addGLSLDefineToPool (pool," NBL_GLSL_LIMIT_MAX_RESIDENT_INVOCATIONS" ,m_properties.limits .maxResidentInvocations );
52
-
53
316
54
317
// TODO: Add feature defines
55
318
0 commit comments