aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2015-06-21 20:09:12 +1200
committerChris Forbes <chrisf@ijw.co.nz>2015-07-07 11:54:54 +1200
commitc0ff6d2f78350922f81f9103496503662ca4df62 (patch)
tree76edd05f0c2532eba7cc6d83c787db9f86a3cb65 /include
parent57b23b4df68eb77e9a87057c396da571e9168a19 (diff)
downloadusermoji-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.h174
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;