diff options
| author | Chris Forbes <chrisf@ijw.co.nz> | 2015-06-21 20:09:12 +1200 |
|---|---|---|
| committer | Chris Forbes <chrisf@ijw.co.nz> | 2015-07-07 11:54:54 +1200 |
| commit | c0ff6d2f78350922f81f9103496503662ca4df62 (patch) | |
| tree | 76edd05f0c2532eba7cc6d83c787db9f86a3cb65 /include | |
| parent | 57b23b4df68eb77e9a87057c396da571e9168a19 (diff) | |
| download | usermoji-c0ff6d2f78350922f81f9103496503662ca4df62.tar.xz | |
vulkan.h: Update features/limits structures (#12827, v125)
- Add infrastructure in vulkaninfo to dump features/limits. To be filled
out to dump everything interesting.
- Move existing limits from VkPhysicalDeviceInfo to
VkPhysicalDeviceLimits, and drop those that no longer exist.
- Adjust the drivers to fill out the above in their new location.
Other new features/limits still to be exposed by nulldrv and the intel
ICD.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Diffstat (limited to 'include')
| -rw-r--r-- | include/vulkan.h | 174 |
1 files changed, 133 insertions, 41 deletions
diff --git a/include/vulkan.h b/include/vulkan.h index f4644f5e..1517d4c8 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -1201,55 +1201,147 @@ typedef struct VkPhysicalDeviceProperties_ uint32_t deviceId; VkPhysicalDeviceType deviceType; char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME]; - uint32_t maxBoundDescriptorSets; - uint32_t maxThreadGroupSize; - uint64_t timestampFrequency; - bool32_t multiColorAttachmentClears; - uint32_t maxDescriptorSets; // at least 2? - uint32_t maxViewports; // at least 16? - uint32_t maxColorAttachments; // at least 8? } VkPhysicalDeviceProperties; typedef struct VkPhysicalDeviceFeatures_ { - // GFL_32 features - bool32_t supportsGeometryShader; - bool32_t supportsTessellationShader; - bool32_t supportsSampleRateShading; - bool32_t supportsFragmentSideEffects; - bool32_t supportsConstantStorageBufferArrayIdexing; - bool32_t supportsConstantStorageImageArrayIndexing; - bool32_t supportsConstantUniformBufferArrayIndexing; - bool32_t supportsDynamicSampledImageArrayIndexing; - // GFL_45 features - bool32_t supportsBlendSrc1; - bool32_t supportsClipAndCullDistance; - bool32_t supportsLogicOp; - bool32_t supportsInstancedDrawIndirect; - bool32_t supportsDepthClip; - bool32_t supportsFillMode; - bool32_t supportsStorageImageExtendedFormats; - bool32_t supportsStorageImageMultisample; - bool32_t supportsPipelineStatisticsQuery; - bool32_t supportsVTGSideEffects; - bool32_t supportsDynamicUniformBufferArrayIndexing; - // optional features - bool32_t supportsDynamicStorageBufferArrayIndexing; - bool32_t supportsDynamicStorageImageArrayIndexing; - bool32_t supportsShaderFloat64; - bool32_t supportsDepthBounds; - bool32_t supportsWideLines; - bool32_t supportsTextureCompressionETC2; - bool32_t supportsTextureCompressionASTC_LDR; - bool32_t supportsTextureCompressionBC; + bool32_t robustBufferAccess; + bool32_t fullDrawIndexUint32; + bool32_t imageCubeArray; + bool32_t independentBlend; + bool32_t geometryShader; + bool32_t tessellationShader; + bool32_t sampleRateShading; + bool32_t dualSourceBlend; + bool32_t logicOp; + bool32_t instancedDrawIndirect; + bool32_t depthClip; + bool32_t depthBiasClamp; + bool32_t fillModeNonSolid; + bool32_t depthBounds; + bool32_t wideLines; + bool32_t largePoints; + bool32_t textureCompressionETC2; + bool32_t textureCompressionASTC_LDR; + bool32_t textureCompressionBC; + bool32_t pipelineStatisticsQuery; + bool32_t vertexSideEffects; + bool32_t tessellationSideEffects; + bool32_t geometrySideEffects; + bool32_t fragmentSideEffects; + bool32_t shaderTessellationPointSize; + bool32_t shaderGeometryPointSize; + bool32_t shaderTextureGatherExtended; + bool32_t shaderStorageImageExtendedFormats; + bool32_t shaderStorageImageMultisample; + bool32_t shaderStorageBufferArrayConstantIndexing; + bool32_t shaderStorageImageArrayConstantIndexing; + bool32_t shaderUniformBufferArrayDynamicIndexing; + bool32_t shaderSampledImageArrayDynamicIndexing; + bool32_t shaderStorageBufferArrayDynamicIndexing; + bool32_t shaderStorageImageArrayDynamicIndexing; + bool32_t shaderClipDistance; + bool32_t shaderCullDistance; + bool32_t shaderFloat64; + bool32_t shaderInt64; + bool32_t shaderFloat16; + bool32_t shaderInt16; } VkPhysicalDeviceFeatures; typedef struct VkPhysicalDeviceLimits_ { - uint32_t maxImageDimensions; - uint32_t maxImageDepth; - uint32_t maxImageArrayLayers; - // <lots more> + uint32_t maxImageDimension1D; + uint32_t maxImageDimension2D; + uint32_t maxImageDimension3D; + uint32_t maxImageDimensionCube; + uint32_t maxImageArrayLayers; + uint32_t maxTexelBufferSize; + uint32_t maxUniformBufferSize; + uint32_t maxStorageBufferSize; + uint32_t maxPushConstantsSize; + uint32_t maxMemoryAllocationCount; + VkDeviceSize maxInlineMemoryUpdateSize; + uint32_t maxBoundDescriptorSets; + uint32_t maxDescriptorSets; + uint32_t maxPerStageDescriptorSamplers; + uint32_t maxPerStageDescriptorUniformBuffers; + uint32_t maxPerStageDescriptorStorageBuffers; + uint32_t maxPerStageDescriptorSampledImages; + uint32_t maxPerStageDescriptorStorageImages; + uint32_t maxDescriptorSetSamplers; + uint32_t maxDescriptorSetUniformBuffers; + uint32_t maxDescriptorSetStorageBuffers; + uint32_t maxDescriptorSetSampledImages; + uint32_t maxDescriptorSetStorageImages; + uint32_t maxVertexInputAttributes; + uint32_t maxVertexInputAttributeOffset; + uint32_t maxVertexInputBindingStride; + uint32_t maxVertexOutputComponents; + uint32_t maxTessGenLevel; + uint32_t maxTessPatchSize; + uint32_t maxTessControlPerVertexInputComponents; + uint32_t maxTessControlPerVertexOutputComponents; + uint32_t maxTessControlPerPatchOutputComponents; + uint32_t maxTessControlTotalOutputComponents; + uint32_t maxTessEvaluationInputComponents; + uint32_t maxTessEvaluationOutputComponents; + uint32_t maxGeometryShaderInvocations; + uint32_t maxGeometryInputComponents; + uint32_t maxGeometryOutputComponents; + uint32_t maxGeometryOutputVertices; + uint32_t maxGeometryTotalOutputComponents; + uint32_t maxFragmentInputComponents; + uint32_t maxFragmentOutputBuffers; + uint32_t maxFragmentDualSourceBuffers; + uint32_t maxFragmentCombinedOutputResources; + uint32_t maxComputeSharedMemorySize; + uint32_t maxComputeWorkGroupCount[3]; + uint32_t maxComputeWorkGroupInvocations; + uint32_t maxComputeWorkGroupSize[3]; + uint32_t subPixelPrecisionBits; + uint32_t subTexelPrecisionBits; + uint32_t mipmapPrecisionBits; + uint32_t maxDrawIndexedIndexValue; + uint32_t maxDrawIndirectInstanceCount; + bool32_t primitiveRestartForPatches; + float maxSamplerLodBias; + uint32_t maxSamplerAnisotropy; + uint32_t maxViewports; + uint32_t maxDynamicViewportStates; + uint32_t maxViewportDimensions[2]; + float viewportBoundsRange[2]; + uint32_t viewportSubPixelBits; + uint32_t minMemoryMapAlignment; + uint32_t minTexelBufferOffsetAlignment; + uint32_t minUniformBufferOffsetAlignment; + uint32_t minStorageBufferOffsetAlignment; + uint32_t minTexelOffset; + uint32_t maxTexelOffset; + uint32_t minTexelGatherOffset; + uint32_t maxTexelGatherOffset; + uint32_t minInterpolationOffset; + uint32_t maxInterpolationOffset; + uint32_t subPixelInterpolationOffsetBits; + uint32_t maxFramebufferWidth; + uint32_t maxFramebufferHeight; + uint32_t maxFramebufferLayers; + uint32_t maxFramebufferColorSamples; + uint32_t maxFramebufferDepthSamples; + uint32_t maxFramebufferStencilSamples; + uint32_t maxColorAttachments; + uint32_t maxSampledImageColorSamples; + uint32_t maxSampledImageDepthSamples; + uint32_t maxSampledImageIntegerSamples; + uint32_t maxStorageImageSamples; + uint32_t maxSampleMaskWords; + uint64_t timestampFrequency; + uint32_t maxClipDistances; + uint32_t maxCullDistances; + uint32_t maxCombinedClipAndCullDistances; + float pointSizeRange[2]; + float lineWidthRange[2]; + float pointSizeGranularity; + float lineWidthGranularity; } VkPhysicalDeviceLimits; |
