Skip to content

Commit 5375f81

Browse files
committed
Include all the limits as comments
1 parent 7581376 commit 5375f81

File tree

1 file changed

+281
-18
lines changed

1 file changed

+281
-18
lines changed

src/nbl/video/IPhysicalDevice.cpp

Lines changed: 281 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,305 @@ IPhysicalDevice::IPhysicalDevice(core::smart_refctd_ptr<system::ISystem>&& s, co
1414

1515
void IPhysicalDevice::addCommonGLSLDefines(std::ostringstream& pool, const bool runningInRenderdoc)
1616
{
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);
1723
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MAX_UBO_SIZE",m_properties.limits.maxUBOSize);
1824
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;
2229

30+
// uint32_t maxPerStageDescriptorSamplers = 0u; // Descriptors with a type of EDT_COMBINED_IMAGE_SAMPLER count against this limit
31+
// uint32_t maxPerStageDescriptorUBOs = 0u;
2332
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
2639
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;
2743
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MAX_TEXTURE_COUNT",m_properties.limits.maxDescriptorSetImages);
2844
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;
3071
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;
32109
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MIN_POINT_SIZE",m_properties.limits.pointSizeRange[0]);
33110
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MAX_POINT_SIZE",m_properties.limits.pointSizeRange[1]);
34111
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MIN_LINE_WIDTH",m_properties.limits.lineWidthRange[0]);
35112
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;
36190

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));
40192

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;
44309
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+
45313

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);
49314
// TODO: @achal test examples 14 and 48 on all APIs and GPUs
50315

51-
addGLSLDefineToPool(pool,"NBL_GLSL_LIMIT_MAX_RESIDENT_INVOCATIONS",m_properties.limits.maxResidentInvocations);
52-
53316

54317
// TODO: Add feature defines
55318

0 commit comments

Comments
 (0)