mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
vk/0.210.0: Rework device features and limits
This commit is contained in:
parent
74c4c4acb6
commit
d689745303
2 changed files with 105 additions and 79 deletions
|
|
@ -1123,29 +1123,31 @@ typedef struct VkPhysicalDeviceFeatures {
|
||||||
VkBool32 geometryShader;
|
VkBool32 geometryShader;
|
||||||
VkBool32 tessellationShader;
|
VkBool32 tessellationShader;
|
||||||
VkBool32 sampleRateShading;
|
VkBool32 sampleRateShading;
|
||||||
VkBool32 dualSourceBlend;
|
VkBool32 dualSrcBlend;
|
||||||
VkBool32 logicOp;
|
VkBool32 logicOp;
|
||||||
VkBool32 multiDrawIndirect;
|
VkBool32 multiDrawIndirect;
|
||||||
VkBool32 depthClip;
|
VkBool32 depthClamp;
|
||||||
VkBool32 depthBiasClamp;
|
VkBool32 depthBiasClamp;
|
||||||
VkBool32 fillModeNonSolid;
|
VkBool32 fillModeNonSolid;
|
||||||
VkBool32 depthBounds;
|
VkBool32 depthBounds;
|
||||||
VkBool32 wideLines;
|
VkBool32 wideLines;
|
||||||
VkBool32 largePoints;
|
VkBool32 largePoints;
|
||||||
|
VkBool32 alphaToOne;
|
||||||
|
VkBool32 multiViewport;
|
||||||
|
VkBool32 samplerAnisotropy;
|
||||||
VkBool32 textureCompressionETC2;
|
VkBool32 textureCompressionETC2;
|
||||||
VkBool32 textureCompressionASTC_LDR;
|
VkBool32 textureCompressionASTC_LDR;
|
||||||
VkBool32 textureCompressionBC;
|
VkBool32 textureCompressionBC;
|
||||||
VkBool32 occlusionQueryNonConservative;
|
VkBool32 occlusionQueryPrecise;
|
||||||
VkBool32 pipelineStatisticsQuery;
|
VkBool32 pipelineStatisticsQuery;
|
||||||
VkBool32 vertexSideEffects;
|
VkBool32 vertexPipelineStoresAndAtomics;
|
||||||
VkBool32 tessellationSideEffects;
|
VkBool32 fragmentStoresAndAtomics;
|
||||||
VkBool32 geometrySideEffects;
|
VkBool32 shaderTessellationAndGeometryPointSize;
|
||||||
VkBool32 fragmentSideEffects;
|
|
||||||
VkBool32 shaderTessellationPointSize;
|
|
||||||
VkBool32 shaderGeometryPointSize;
|
|
||||||
VkBool32 shaderImageGatherExtended;
|
VkBool32 shaderImageGatherExtended;
|
||||||
VkBool32 shaderStorageImageExtendedFormats;
|
VkBool32 shaderStorageImageExtendedFormats;
|
||||||
VkBool32 shaderStorageImageMultisample;
|
VkBool32 shaderStorageImageMultisample;
|
||||||
|
VkBool32 shaderStorageImageReadWithoutFormat;
|
||||||
|
VkBool32 shaderStorageImageWriteWithoutFormat;
|
||||||
VkBool32 shaderUniformBufferArrayDynamicIndexing;
|
VkBool32 shaderUniformBufferArrayDynamicIndexing;
|
||||||
VkBool32 shaderSampledImageArrayDynamicIndexing;
|
VkBool32 shaderSampledImageArrayDynamicIndexing;
|
||||||
VkBool32 shaderStorageBufferArrayDynamicIndexing;
|
VkBool32 shaderStorageBufferArrayDynamicIndexing;
|
||||||
|
|
@ -1156,8 +1158,7 @@ typedef struct VkPhysicalDeviceFeatures {
|
||||||
VkBool32 shaderInt64;
|
VkBool32 shaderInt64;
|
||||||
VkBool32 shaderInt16;
|
VkBool32 shaderInt16;
|
||||||
VkBool32 shaderResourceResidency;
|
VkBool32 shaderResourceResidency;
|
||||||
VkBool32 shaderResourceMinLOD;
|
VkBool32 shaderResourceMinLod;
|
||||||
VkBool32 alphaToOne;
|
|
||||||
VkBool32 sparseBinding;
|
VkBool32 sparseBinding;
|
||||||
VkBool32 sparseResidencyBuffer;
|
VkBool32 sparseResidencyBuffer;
|
||||||
VkBool32 sparseResidencyImage2D;
|
VkBool32 sparseResidencyImage2D;
|
||||||
|
|
@ -1167,6 +1168,7 @@ typedef struct VkPhysicalDeviceFeatures {
|
||||||
VkBool32 sparseResidency8Samples;
|
VkBool32 sparseResidency8Samples;
|
||||||
VkBool32 sparseResidency16Samples;
|
VkBool32 sparseResidency16Samples;
|
||||||
VkBool32 sparseResidencyAliased;
|
VkBool32 sparseResidencyAliased;
|
||||||
|
VkBool32 variableMultisampleRate;
|
||||||
} VkPhysicalDeviceFeatures;
|
} VkPhysicalDeviceFeatures;
|
||||||
|
|
||||||
typedef struct VkFormatProperties {
|
typedef struct VkFormatProperties {
|
||||||
|
|
@ -1195,21 +1197,22 @@ typedef struct VkPhysicalDeviceLimits {
|
||||||
uint32_t maxImageDimension3D;
|
uint32_t maxImageDimension3D;
|
||||||
uint32_t maxImageDimensionCube;
|
uint32_t maxImageDimensionCube;
|
||||||
uint32_t maxImageArrayLayers;
|
uint32_t maxImageArrayLayers;
|
||||||
VkSampleCountFlags sampleCounts;
|
uint32_t maxTexelBufferElements;
|
||||||
uint32_t maxTexelBufferSize;
|
uint32_t maxUniformBufferRange;
|
||||||
uint32_t maxUniformBufferSize;
|
uint32_t maxStorageBufferRange;
|
||||||
uint32_t maxStorageBufferSize;
|
|
||||||
uint32_t maxPushConstantsSize;
|
uint32_t maxPushConstantsSize;
|
||||||
uint32_t maxMemoryAllocationCount;
|
uint32_t maxMemoryAllocationCount;
|
||||||
|
uint32_t maxSamplerAllocationCount;
|
||||||
VkDeviceSize bufferImageGranularity;
|
VkDeviceSize bufferImageGranularity;
|
||||||
VkDeviceSize sparseAddressSpaceSize;
|
VkDeviceSize sparseAddressSpaceSize;
|
||||||
uint32_t maxBoundDescriptorSets;
|
uint32_t maxBoundDescriptorSets;
|
||||||
uint32_t maxDescriptorSets;
|
|
||||||
uint32_t maxPerStageDescriptorSamplers;
|
uint32_t maxPerStageDescriptorSamplers;
|
||||||
uint32_t maxPerStageDescriptorUniformBuffers;
|
uint32_t maxPerStageDescriptorUniformBuffers;
|
||||||
uint32_t maxPerStageDescriptorStorageBuffers;
|
uint32_t maxPerStageDescriptorStorageBuffers;
|
||||||
uint32_t maxPerStageDescriptorSampledImages;
|
uint32_t maxPerStageDescriptorSampledImages;
|
||||||
uint32_t maxPerStageDescriptorStorageImages;
|
uint32_t maxPerStageDescriptorStorageImages;
|
||||||
|
uint32_t maxPerStageDescriptorInputAttachments;
|
||||||
|
uint32_t maxPerStageResources;
|
||||||
uint32_t maxDescriptorSetSamplers;
|
uint32_t maxDescriptorSetSamplers;
|
||||||
uint32_t maxDescriptorSetUniformBuffers;
|
uint32_t maxDescriptorSetUniformBuffers;
|
||||||
uint32_t maxDescriptorSetUniformBuffersDynamic;
|
uint32_t maxDescriptorSetUniformBuffersDynamic;
|
||||||
|
|
@ -1217,27 +1220,28 @@ typedef struct VkPhysicalDeviceLimits {
|
||||||
uint32_t maxDescriptorSetStorageBuffersDynamic;
|
uint32_t maxDescriptorSetStorageBuffersDynamic;
|
||||||
uint32_t maxDescriptorSetSampledImages;
|
uint32_t maxDescriptorSetSampledImages;
|
||||||
uint32_t maxDescriptorSetStorageImages;
|
uint32_t maxDescriptorSetStorageImages;
|
||||||
|
uint32_t maxDescriptorSetInputAttachments;
|
||||||
uint32_t maxVertexInputAttributes;
|
uint32_t maxVertexInputAttributes;
|
||||||
uint32_t maxVertexInputBindings;
|
uint32_t maxVertexInputBindings;
|
||||||
uint32_t maxVertexInputAttributeOffset;
|
uint32_t maxVertexInputAttributeOffset;
|
||||||
uint32_t maxVertexInputBindingStride;
|
uint32_t maxVertexInputBindingStride;
|
||||||
uint32_t maxVertexOutputComponents;
|
uint32_t maxVertexOutputComponents;
|
||||||
uint32_t maxTessGenLevel;
|
uint32_t maxTessellationGenerationLevel;
|
||||||
uint32_t maxTessPatchSize;
|
uint32_t maxTessellationPatchSize;
|
||||||
uint32_t maxTessControlPerVertexInputComponents;
|
uint32_t maxTessellationControlPerVertexInputComponents;
|
||||||
uint32_t maxTessControlPerVertexOutputComponents;
|
uint32_t maxTessellationControlPerVertexOutputComponents;
|
||||||
uint32_t maxTessControlPerPatchOutputComponents;
|
uint32_t maxTessellationControlPerPatchOutputComponents;
|
||||||
uint32_t maxTessControlTotalOutputComponents;
|
uint32_t maxTessellationControlTotalOutputComponents;
|
||||||
uint32_t maxTessEvaluationInputComponents;
|
uint32_t maxTessellationEvaluationInputComponents;
|
||||||
uint32_t maxTessEvaluationOutputComponents;
|
uint32_t maxTessellationEvaluationOutputComponents;
|
||||||
uint32_t maxGeometryShaderInvocations;
|
uint32_t maxGeometryShaderInvocations;
|
||||||
uint32_t maxGeometryInputComponents;
|
uint32_t maxGeometryInputComponents;
|
||||||
uint32_t maxGeometryOutputComponents;
|
uint32_t maxGeometryOutputComponents;
|
||||||
uint32_t maxGeometryOutputVertices;
|
uint32_t maxGeometryOutputVertices;
|
||||||
uint32_t maxGeometryTotalOutputComponents;
|
uint32_t maxGeometryTotalOutputComponents;
|
||||||
uint32_t maxFragmentInputComponents;
|
uint32_t maxFragmentInputComponents;
|
||||||
uint32_t maxFragmentOutputBuffers;
|
uint32_t maxFragmentOutputAttachments;
|
||||||
uint32_t maxFragmentDualSourceBuffers;
|
uint32_t maxFragmentDualSrcAttachments;
|
||||||
uint32_t maxFragmentCombinedOutputResources;
|
uint32_t maxFragmentCombinedOutputResources;
|
||||||
uint32_t maxComputeSharedMemorySize;
|
uint32_t maxComputeSharedMemorySize;
|
||||||
uint32_t maxComputeWorkGroupCount[3];
|
uint32_t maxComputeWorkGroupCount[3];
|
||||||
|
|
@ -1247,21 +1251,20 @@ typedef struct VkPhysicalDeviceLimits {
|
||||||
uint32_t subTexelPrecisionBits;
|
uint32_t subTexelPrecisionBits;
|
||||||
uint32_t mipmapPrecisionBits;
|
uint32_t mipmapPrecisionBits;
|
||||||
uint32_t maxDrawIndexedIndexValue;
|
uint32_t maxDrawIndexedIndexValue;
|
||||||
uint32_t maxDrawIndirectInstanceCount;
|
uint32_t maxDrawIndirectCount;
|
||||||
VkBool32 primitiveRestartForPatches;
|
|
||||||
float maxSamplerLodBias;
|
float maxSamplerLodBias;
|
||||||
float maxSamplerAnisotropy;
|
float maxSamplerAnisotropy;
|
||||||
uint32_t maxViewports;
|
uint32_t maxViewports;
|
||||||
uint32_t maxViewportDimensions[2];
|
uint32_t maxViewportDimensions[2];
|
||||||
float viewportBoundsRange[2];
|
float viewportBoundsRange[2];
|
||||||
uint32_t viewportSubPixelBits;
|
uint32_t viewportSubPixelBits;
|
||||||
uint32_t minMemoryMapAlignment;
|
size_t minMemoryMapAlignment;
|
||||||
uint32_t minTexelBufferOffsetAlignment;
|
VkDeviceSize minTexelBufferOffsetAlignment;
|
||||||
uint32_t minUniformBufferOffsetAlignment;
|
VkDeviceSize minUniformBufferOffsetAlignment;
|
||||||
uint32_t minStorageBufferOffsetAlignment;
|
VkDeviceSize minStorageBufferOffsetAlignment;
|
||||||
uint32_t minTexelOffset;
|
int32_t minTexelOffset;
|
||||||
uint32_t maxTexelOffset;
|
uint32_t maxTexelOffset;
|
||||||
uint32_t minTexelGatherOffset;
|
int32_t minTexelGatherOffset;
|
||||||
uint32_t maxTexelGatherOffset;
|
uint32_t maxTexelGatherOffset;
|
||||||
float minInterpolationOffset;
|
float minInterpolationOffset;
|
||||||
float maxInterpolationOffset;
|
float maxInterpolationOffset;
|
||||||
|
|
@ -1269,23 +1272,31 @@ typedef struct VkPhysicalDeviceLimits {
|
||||||
uint32_t maxFramebufferWidth;
|
uint32_t maxFramebufferWidth;
|
||||||
uint32_t maxFramebufferHeight;
|
uint32_t maxFramebufferHeight;
|
||||||
uint32_t maxFramebufferLayers;
|
uint32_t maxFramebufferLayers;
|
||||||
uint32_t maxFramebufferColorSamples;
|
VkSampleCountFlags framebufferColorSampleCounts;
|
||||||
uint32_t maxFramebufferDepthSamples;
|
VkSampleCountFlags framebufferDepthSampleCounts;
|
||||||
uint32_t maxFramebufferStencilSamples;
|
VkSampleCountFlags framebufferStencilSampleCounts;
|
||||||
|
VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
|
||||||
uint32_t maxColorAttachments;
|
uint32_t maxColorAttachments;
|
||||||
uint32_t maxSampledImageColorSamples;
|
VkSampleCountFlags sampledImageColorSampleCounts;
|
||||||
uint32_t maxSampledImageDepthSamples;
|
VkSampleCountFlags sampledImageIntegerSampleCounts;
|
||||||
uint32_t maxSampledImageIntegerSamples;
|
VkSampleCountFlags sampledImageDepthSampleCounts;
|
||||||
uint32_t maxStorageImageSamples;
|
VkSampleCountFlags sampledImageStencilSampleCounts;
|
||||||
|
VkSampleCountFlags storageImageSampleCounts;
|
||||||
uint32_t maxSampleMaskWords;
|
uint32_t maxSampleMaskWords;
|
||||||
uint64_t timestampFrequency;
|
float timestampPeriod;
|
||||||
uint32_t maxClipDistances;
|
uint32_t maxClipDistances;
|
||||||
uint32_t maxCullDistances;
|
uint32_t maxCullDistances;
|
||||||
uint32_t maxCombinedClipAndCullDistances;
|
uint32_t maxCombinedClipAndCullDistances;
|
||||||
|
uint32_t discreteQueuePriorities;
|
||||||
float pointSizeRange[2];
|
float pointSizeRange[2];
|
||||||
float lineWidthRange[2];
|
float lineWidthRange[2];
|
||||||
float pointSizeGranularity;
|
float pointSizeGranularity;
|
||||||
float lineWidthGranularity;
|
float lineWidthGranularity;
|
||||||
|
VkBool32 strictLines;
|
||||||
|
VkBool32 standardSampleLocations;
|
||||||
|
VkDeviceSize optimalBufferCopyOffsetAlignment;
|
||||||
|
VkDeviceSize optimalBufferCopyRowPitchAlignment;
|
||||||
|
VkDeviceSize nonCoherentAtomSize;
|
||||||
} VkPhysicalDeviceLimits;
|
} VkPhysicalDeviceLimits;
|
||||||
|
|
||||||
typedef struct VkPhysicalDeviceSparseProperties {
|
typedef struct VkPhysicalDeviceSparseProperties {
|
||||||
|
|
|
||||||
|
|
@ -324,26 +324,26 @@ void anv_GetPhysicalDeviceFeatures(
|
||||||
.geometryShader = true,
|
.geometryShader = true,
|
||||||
.tessellationShader = false,
|
.tessellationShader = false,
|
||||||
.sampleRateShading = false,
|
.sampleRateShading = false,
|
||||||
.dualSourceBlend = true,
|
.dualSrcBlend = true,
|
||||||
.logicOp = true,
|
.logicOp = true,
|
||||||
.multiDrawIndirect = true,
|
.multiDrawIndirect = true,
|
||||||
.depthClip = false,
|
.depthClamp = false,
|
||||||
.depthBiasClamp = false,
|
.depthBiasClamp = false,
|
||||||
.fillModeNonSolid = true,
|
.fillModeNonSolid = true,
|
||||||
.depthBounds = false,
|
.depthBounds = false,
|
||||||
.wideLines = true,
|
.wideLines = true,
|
||||||
.largePoints = true,
|
.largePoints = true,
|
||||||
|
.alphaToOne = true,
|
||||||
|
.multiViewport = true,
|
||||||
|
.samplerAnisotropy = false, /* FINISHME */
|
||||||
.textureCompressionETC2 = true,
|
.textureCompressionETC2 = true,
|
||||||
.textureCompressionASTC_LDR = true,
|
.textureCompressionASTC_LDR = true,
|
||||||
.textureCompressionBC = true,
|
.textureCompressionBC = true,
|
||||||
.occlusionQueryNonConservative = false, /* FINISHME */
|
.occlusionQueryPrecise = false, /* FINISHME */
|
||||||
.pipelineStatisticsQuery = true,
|
.pipelineStatisticsQuery = true,
|
||||||
.vertexSideEffects = false,
|
.vertexPipelineStoresAndAtomics = false,
|
||||||
.tessellationSideEffects = false,
|
.fragmentStoresAndAtomics = true,
|
||||||
.geometrySideEffects = false,
|
.shaderTessellationAndGeometryPointSize = true,
|
||||||
.fragmentSideEffects = false,
|
|
||||||
.shaderTessellationPointSize = false,
|
|
||||||
.shaderGeometryPointSize = true,
|
|
||||||
.shaderImageGatherExtended = true,
|
.shaderImageGatherExtended = true,
|
||||||
.shaderStorageImageExtendedFormats = false,
|
.shaderStorageImageExtendedFormats = false,
|
||||||
.shaderStorageImageMultisample = false,
|
.shaderStorageImageMultisample = false,
|
||||||
|
|
@ -351,12 +351,15 @@ void anv_GetPhysicalDeviceFeatures(
|
||||||
.shaderSampledImageArrayDynamicIndexing = false,
|
.shaderSampledImageArrayDynamicIndexing = false,
|
||||||
.shaderStorageBufferArrayDynamicIndexing = false,
|
.shaderStorageBufferArrayDynamicIndexing = false,
|
||||||
.shaderStorageImageArrayDynamicIndexing = false,
|
.shaderStorageImageArrayDynamicIndexing = false,
|
||||||
|
.shaderStorageImageReadWithoutFormat = false,
|
||||||
|
.shaderStorageImageWriteWithoutFormat = true,
|
||||||
.shaderClipDistance = false,
|
.shaderClipDistance = false,
|
||||||
.shaderCullDistance = false,
|
.shaderCullDistance = false,
|
||||||
.shaderFloat64 = false,
|
.shaderFloat64 = false,
|
||||||
.shaderInt64 = false,
|
.shaderInt64 = false,
|
||||||
.shaderInt16 = false,
|
.shaderInt16 = false,
|
||||||
.alphaToOne = true,
|
.alphaToOne = true,
|
||||||
|
.variableMultisampleRate = false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -369,30 +372,34 @@ void anv_GetPhysicalDeviceProperties(
|
||||||
|
|
||||||
anv_finishme("Get correct values for VkPhysicalDeviceLimits");
|
anv_finishme("Get correct values for VkPhysicalDeviceLimits");
|
||||||
|
|
||||||
|
VkSampleCountFlags sample_counts =
|
||||||
|
VK_SAMPLE_COUNT_1_BIT |
|
||||||
|
VK_SAMPLE_COUNT_2_BIT |
|
||||||
|
VK_SAMPLE_COUNT_4_BIT |
|
||||||
|
VK_SAMPLE_COUNT_8_BIT;
|
||||||
|
|
||||||
VkPhysicalDeviceLimits limits = {
|
VkPhysicalDeviceLimits limits = {
|
||||||
.maxImageDimension1D = (1 << 14),
|
.maxImageDimension1D = (1 << 14),
|
||||||
.maxImageDimension2D = (1 << 14),
|
.maxImageDimension2D = (1 << 14),
|
||||||
.maxImageDimension3D = (1 << 10),
|
.maxImageDimension3D = (1 << 10),
|
||||||
.maxImageDimensionCube = (1 << 14),
|
.maxImageDimensionCube = (1 << 14),
|
||||||
.maxImageArrayLayers = (1 << 10),
|
.maxImageArrayLayers = (1 << 10),
|
||||||
|
.maxTexelBufferElements = (1 << 14),
|
||||||
/* Broadwell supports 1, 2, 4, and 8 samples. */
|
.maxUniformBufferRange = UINT32_MAX,
|
||||||
.sampleCounts = 4,
|
.maxStorageBufferRange = UINT32_MAX,
|
||||||
|
|
||||||
.maxTexelBufferSize = (1 << 14),
|
|
||||||
.maxUniformBufferSize = UINT32_MAX,
|
|
||||||
.maxStorageBufferSize = UINT32_MAX,
|
|
||||||
.maxPushConstantsSize = MAX_PUSH_CONSTANTS_SIZE,
|
.maxPushConstantsSize = MAX_PUSH_CONSTANTS_SIZE,
|
||||||
.maxMemoryAllocationCount = UINT32_MAX,
|
.maxMemoryAllocationCount = UINT32_MAX,
|
||||||
|
.maxSamplerAllocationCount = UINT32_MAX,
|
||||||
.bufferImageGranularity = 64, /* A cache line */
|
.bufferImageGranularity = 64, /* A cache line */
|
||||||
.sparseAddressSpaceSize = 0,
|
.sparseAddressSpaceSize = 0,
|
||||||
.maxBoundDescriptorSets = MAX_SETS,
|
.maxBoundDescriptorSets = MAX_SETS,
|
||||||
.maxDescriptorSets = UINT32_MAX,
|
|
||||||
.maxPerStageDescriptorSamplers = 64,
|
.maxPerStageDescriptorSamplers = 64,
|
||||||
.maxPerStageDescriptorUniformBuffers = 64,
|
.maxPerStageDescriptorUniformBuffers = 64,
|
||||||
.maxPerStageDescriptorStorageBuffers = 64,
|
.maxPerStageDescriptorStorageBuffers = 64,
|
||||||
.maxPerStageDescriptorSampledImages = 64,
|
.maxPerStageDescriptorSampledImages = 64,
|
||||||
.maxPerStageDescriptorStorageImages = 64,
|
.maxPerStageDescriptorStorageImages = 64,
|
||||||
|
.maxPerStageDescriptorInputAttachments = 64,
|
||||||
|
.maxPerStageResources = 128,
|
||||||
.maxDescriptorSetSamplers = 256,
|
.maxDescriptorSetSamplers = 256,
|
||||||
.maxDescriptorSetUniformBuffers = 256,
|
.maxDescriptorSetUniformBuffers = 256,
|
||||||
.maxDescriptorSetUniformBuffersDynamic = 256,
|
.maxDescriptorSetUniformBuffersDynamic = 256,
|
||||||
|
|
@ -400,27 +407,28 @@ void anv_GetPhysicalDeviceProperties(
|
||||||
.maxDescriptorSetStorageBuffersDynamic = 256,
|
.maxDescriptorSetStorageBuffersDynamic = 256,
|
||||||
.maxDescriptorSetSampledImages = 256,
|
.maxDescriptorSetSampledImages = 256,
|
||||||
.maxDescriptorSetStorageImages = 256,
|
.maxDescriptorSetStorageImages = 256,
|
||||||
|
.maxDescriptorSetInputAttachments = 256,
|
||||||
.maxVertexInputAttributes = 32,
|
.maxVertexInputAttributes = 32,
|
||||||
.maxVertexInputBindings = 32,
|
.maxVertexInputBindings = 32,
|
||||||
.maxVertexInputAttributeOffset = 256,
|
.maxVertexInputAttributeOffset = 256,
|
||||||
.maxVertexInputBindingStride = 256,
|
.maxVertexInputBindingStride = 256,
|
||||||
.maxVertexOutputComponents = 32,
|
.maxVertexOutputComponents = 32,
|
||||||
.maxTessGenLevel = 0,
|
.maxTessellationGenerationLevel = 0,
|
||||||
.maxTessPatchSize = 0,
|
.maxTessellationPatchSize = 0,
|
||||||
.maxTessControlPerVertexInputComponents = 0,
|
.maxTessellationControlPerVertexInputComponents = 0,
|
||||||
.maxTessControlPerVertexOutputComponents = 0,
|
.maxTessellationControlPerVertexOutputComponents = 0,
|
||||||
.maxTessControlPerPatchOutputComponents = 0,
|
.maxTessellationControlPerPatchOutputComponents = 0,
|
||||||
.maxTessControlTotalOutputComponents = 0,
|
.maxTessellationControlTotalOutputComponents = 0,
|
||||||
.maxTessEvaluationInputComponents = 0,
|
.maxTessellationEvaluationInputComponents = 0,
|
||||||
.maxTessEvaluationOutputComponents = 0,
|
.maxTessellationEvaluationOutputComponents = 0,
|
||||||
.maxGeometryShaderInvocations = 6,
|
.maxGeometryShaderInvocations = 6,
|
||||||
.maxGeometryInputComponents = 16,
|
.maxGeometryInputComponents = 16,
|
||||||
.maxGeometryOutputComponents = 16,
|
.maxGeometryOutputComponents = 16,
|
||||||
.maxGeometryOutputVertices = 16,
|
.maxGeometryOutputVertices = 16,
|
||||||
.maxGeometryTotalOutputComponents = 16,
|
.maxGeometryTotalOutputComponents = 16,
|
||||||
.maxFragmentInputComponents = 16,
|
.maxFragmentInputComponents = 16,
|
||||||
.maxFragmentOutputBuffers = 8,
|
.maxFragmentOutputAttachments = 8,
|
||||||
.maxFragmentDualSourceBuffers = 2,
|
.maxFragmentDualSrcAttachments = 2,
|
||||||
.maxFragmentCombinedOutputResources = 8,
|
.maxFragmentCombinedOutputResources = 8,
|
||||||
.maxComputeSharedMemorySize = 1024,
|
.maxComputeSharedMemorySize = 1024,
|
||||||
.maxComputeWorkGroupCount = {
|
.maxComputeWorkGroupCount = {
|
||||||
|
|
@ -438,8 +446,7 @@ void anv_GetPhysicalDeviceProperties(
|
||||||
.subTexelPrecisionBits = 4 /* FIXME */,
|
.subTexelPrecisionBits = 4 /* FIXME */,
|
||||||
.mipmapPrecisionBits = 4 /* FIXME */,
|
.mipmapPrecisionBits = 4 /* FIXME */,
|
||||||
.maxDrawIndexedIndexValue = UINT32_MAX,
|
.maxDrawIndexedIndexValue = UINT32_MAX,
|
||||||
.maxDrawIndirectInstanceCount = UINT32_MAX,
|
.maxDrawIndirectCount = UINT32_MAX,
|
||||||
.primitiveRestartForPatches = UINT32_MAX,
|
|
||||||
.maxSamplerLodBias = 16,
|
.maxSamplerLodBias = 16,
|
||||||
.maxSamplerAnisotropy = 16,
|
.maxSamplerAnisotropy = 16,
|
||||||
.maxViewports = MAX_VIEWPORTS,
|
.maxViewports = MAX_VIEWPORTS,
|
||||||
|
|
@ -460,23 +467,31 @@ void anv_GetPhysicalDeviceProperties(
|
||||||
.maxFramebufferWidth = (1 << 14),
|
.maxFramebufferWidth = (1 << 14),
|
||||||
.maxFramebufferHeight = (1 << 14),
|
.maxFramebufferHeight = (1 << 14),
|
||||||
.maxFramebufferLayers = (1 << 10),
|
.maxFramebufferLayers = (1 << 10),
|
||||||
.maxFramebufferColorSamples = 8,
|
.framebufferColorSampleCounts = sample_counts,
|
||||||
.maxFramebufferDepthSamples = 8,
|
.framebufferDepthSampleCounts = sample_counts,
|
||||||
.maxFramebufferStencilSamples = 8,
|
.framebufferStencilSampleCounts = sample_counts,
|
||||||
|
.framebufferNoAttachmentsSampleCounts = sample_counts,
|
||||||
.maxColorAttachments = MAX_RTS,
|
.maxColorAttachments = MAX_RTS,
|
||||||
.maxSampledImageColorSamples = 8,
|
.sampledImageColorSampleCounts = sample_counts,
|
||||||
.maxSampledImageDepthSamples = 8,
|
.sampledImageIntegerSampleCounts = VK_SAMPLE_COUNT_1_BIT,
|
||||||
.maxSampledImageIntegerSamples = 1,
|
.sampledImageDepthSampleCounts = sample_counts,
|
||||||
.maxStorageImageSamples = 1,
|
.sampledImageStencilSampleCounts = sample_counts,
|
||||||
|
.storageImageSampleCounts = VK_SAMPLE_COUNT_1_BIT,
|
||||||
.maxSampleMaskWords = 1,
|
.maxSampleMaskWords = 1,
|
||||||
.timestampFrequency = 1000 * 1000 * 1000 / 80,
|
.timestampPeriod = 80.0 / (1000 * 1000 * 1000),
|
||||||
.maxClipDistances = 0 /* FIXME */,
|
.maxClipDistances = 0 /* FIXME */,
|
||||||
.maxCullDistances = 0 /* FIXME */,
|
.maxCullDistances = 0 /* FIXME */,
|
||||||
.maxCombinedClipAndCullDistances = 0 /* FIXME */,
|
.maxCombinedClipAndCullDistances = 0 /* FIXME */,
|
||||||
|
.discreteQueuePriorities = 1,
|
||||||
.pointSizeRange = { 0.125, 255.875 },
|
.pointSizeRange = { 0.125, 255.875 },
|
||||||
.lineWidthRange = { 0.0, 7.9921875 },
|
.lineWidthRange = { 0.0, 7.9921875 },
|
||||||
.pointSizeGranularity = (1.0 / 8.0),
|
.pointSizeGranularity = (1.0 / 8.0),
|
||||||
.lineWidthGranularity = (1.0 / 128.0),
|
.lineWidthGranularity = (1.0 / 128.0),
|
||||||
|
.strictLines = false, /* FINISHME */
|
||||||
|
.standardSampleLocations = true, /* FINISHME */
|
||||||
|
.optimalBufferCopyOffsetAlignment = 128,
|
||||||
|
.optimalBufferCopyRowPitchAlignment = 128,
|
||||||
|
.nonCoherentAtomSize = 64,
|
||||||
};
|
};
|
||||||
|
|
||||||
*pProperties = (VkPhysicalDeviceProperties) {
|
*pProperties = (VkPhysicalDeviceProperties) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue