mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 20:48:08 +02:00
nvk: add some limits/features from binary driver.
These are just copied from nvidia vulkaninfo for my tu104. I've left geom/tess stuff out for now. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
ba2faab08c
commit
8017ac0e79
1 changed files with 86 additions and 1 deletions
|
|
@ -31,6 +31,29 @@ nvk_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
||||||
|
|
||||||
pFeatures->features = (VkPhysicalDeviceFeatures) {
|
pFeatures->features = (VkPhysicalDeviceFeatures) {
|
||||||
.robustBufferAccess = true,
|
.robustBufferAccess = true,
|
||||||
|
.fullDrawIndexUint32 = true,
|
||||||
|
.independentBlend = true,
|
||||||
|
.logicOp = true,
|
||||||
|
.multiViewport = true,
|
||||||
|
.samplerAnisotropy = true,
|
||||||
|
.shaderClipDistance = true,
|
||||||
|
.shaderCullDistance = true,
|
||||||
|
.shaderResourceMinLod = true,
|
||||||
|
.imageCubeArray = true,
|
||||||
|
.dualSrcBlend = true,
|
||||||
|
.multiDrawIndirect = true,
|
||||||
|
.drawIndirectFirstInstance = true,
|
||||||
|
.depthClamp = true,
|
||||||
|
.depthBiasClamp = true,
|
||||||
|
.fillModeNonSolid = true,
|
||||||
|
.depthBounds = true,
|
||||||
|
.fragmentStoresAndAtomics = true,
|
||||||
|
.alphaToOne = true,
|
||||||
|
.occlusionQueryPrecise = true,
|
||||||
|
.sampleRateShading = true,
|
||||||
|
.textureCompressionBC = true,
|
||||||
|
.vertexPipelineStoresAndAtomics = true,
|
||||||
|
.wideLines = true,
|
||||||
/* More features */
|
/* More features */
|
||||||
.shaderStorageImageExtendedFormats = true,
|
.shaderStorageImageExtendedFormats = true,
|
||||||
.shaderStorageImageWriteWithoutFormat = true,
|
.shaderStorageImageWriteWithoutFormat = true,
|
||||||
|
|
@ -104,7 +127,8 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
||||||
VkPhysicalDeviceProperties2 *pProperties)
|
VkPhysicalDeviceProperties2 *pProperties)
|
||||||
{
|
{
|
||||||
VK_FROM_HANDLE(nvk_physical_device, pdevice, physicalDevice);
|
VK_FROM_HANDLE(nvk_physical_device, pdevice, physicalDevice);
|
||||||
|
VkSampleCountFlagBits sample_count = VK_SAMPLE_COUNT_1_BIT |
|
||||||
|
VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT;
|
||||||
pProperties->properties = (VkPhysicalDeviceProperties) {
|
pProperties->properties = (VkPhysicalDeviceProperties) {
|
||||||
.apiVersion = VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION),
|
.apiVersion = VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION),
|
||||||
.driverVersion = vk_get_driver_version(),
|
.driverVersion = vk_get_driver_version(),
|
||||||
|
|
@ -116,8 +140,38 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
||||||
.maxImageArrayLayers = 2048,
|
.maxImageArrayLayers = 2048,
|
||||||
.maxImageDimension1D = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
.maxImageDimension1D = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
||||||
.maxImageDimension2D = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
.maxImageDimension2D = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
||||||
|
.maxImageDimension3D = 0x4000,
|
||||||
|
.maxImageDimensionCube = 0x8000,
|
||||||
.maxPushConstantsSize = NVK_MAX_PUSH_SIZE,
|
.maxPushConstantsSize = NVK_MAX_PUSH_SIZE,
|
||||||
|
.maxFramebufferHeight = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
||||||
|
.maxFramebufferWidth = pdevice->dev->chipset >= 0x130 ? 0x8000 : 0x4000,
|
||||||
|
.maxFramebufferLayers = 2048,
|
||||||
|
.maxColorAttachments = NVK_MAX_RTS,
|
||||||
|
.maxClipDistances = 8,
|
||||||
|
.maxCullDistances = 8,
|
||||||
|
.maxCombinedClipAndCullDistances = 8,
|
||||||
|
.maxFragmentCombinedOutputResources = 16,
|
||||||
|
.maxFragmentInputComponents = 128,
|
||||||
|
.maxFragmentOutputAttachments = NVK_MAX_RTS,
|
||||||
|
.maxFragmentDualSrcAttachments = 1,
|
||||||
.maxSamplerAllocationCount = 4096,
|
.maxSamplerAllocationCount = 4096,
|
||||||
|
.maxSamplerLodBias = 15,
|
||||||
|
.maxSamplerAnisotropy = 16,
|
||||||
|
.maxSampleMaskWords = 1,
|
||||||
|
.minTexelGatherOffset = -32,
|
||||||
|
.minTexelOffset = -8,
|
||||||
|
.maxTexelGatherOffset = 31,
|
||||||
|
.maxTexelOffset = 7,
|
||||||
|
.minInterpolationOffset = -0.5,
|
||||||
|
.maxInterpolationOffset = 0.4375,
|
||||||
|
.mipmapPrecisionBits = 8,
|
||||||
|
.subPixelInterpolationOffsetBits = 4,
|
||||||
|
.subPixelPrecisionBits = 8,
|
||||||
|
.subTexelPrecisionBits = 8,
|
||||||
|
.viewportSubPixelBits = 8,
|
||||||
|
.maxUniformBufferRange = 65536,
|
||||||
|
.maxStorageBufferRange = UINT32_MAX,
|
||||||
|
.maxTexelBufferElements = 128 * 1024 * 1024,
|
||||||
.maxBoundDescriptorSets = NVK_MAX_SETS,
|
.maxBoundDescriptorSets = NVK_MAX_SETS,
|
||||||
.maxPerStageDescriptorSamplers = UINT32_MAX,
|
.maxPerStageDescriptorSamplers = UINT32_MAX,
|
||||||
.maxPerStageDescriptorUniformBuffers = UINT32_MAX,
|
.maxPerStageDescriptorUniformBuffers = UINT32_MAX,
|
||||||
|
|
@ -139,8 +193,39 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
||||||
.maxComputeWorkGroupInvocations = 1024,
|
.maxComputeWorkGroupInvocations = 1024,
|
||||||
.maxComputeWorkGroupSize = {1024, 1024, 64},
|
.maxComputeWorkGroupSize = {1024, 1024, 64},
|
||||||
.maxStorageBufferRange = UINT32_MAX,
|
.maxStorageBufferRange = UINT32_MAX,
|
||||||
|
.maxViewports = NVK_MAX_VIEWPORTS,
|
||||||
|
.maxViewportDimensions = { 32768, 32768 },
|
||||||
|
.viewportBoundsRange = { -65536, 65536 },
|
||||||
|
.pointSizeRange = { 1.0, 2047.94 },
|
||||||
|
.pointSizeGranularity = 0.0625,
|
||||||
|
.lineWidthRange = { 1, 64 },
|
||||||
|
.lineWidthGranularity = 0.0625,
|
||||||
.nonCoherentAtomSize = 64,
|
.nonCoherentAtomSize = 64,
|
||||||
|
.minMemoryMapAlignment = 64,
|
||||||
.minUniformBufferOffsetAlignment = NVK_MIN_UBO_ALIGNMENT,
|
.minUniformBufferOffsetAlignment = NVK_MIN_UBO_ALIGNMENT,
|
||||||
|
.minTexelBufferOffsetAlignment = NVK_MIN_UBO_ALIGNMENT,
|
||||||
|
.minStorageBufferOffsetAlignment = NVK_MIN_UBO_ALIGNMENT,
|
||||||
|
.maxVertexInputAttributeOffset = 2047,
|
||||||
|
.maxVertexInputAttributes = 32,
|
||||||
|
.maxVertexInputBindingStride = 2048,
|
||||||
|
.maxVertexInputBindings = 32,
|
||||||
|
.maxVertexOutputComponents = 128,
|
||||||
|
.maxDrawIndexedIndexValue = UINT32_MAX,
|
||||||
|
.maxDrawIndirectCount = UINT32_MAX,
|
||||||
|
.timestampComputeAndGraphics = true,
|
||||||
|
.timestampPeriod = 1,
|
||||||
|
.framebufferColorSampleCounts = sample_count,
|
||||||
|
.framebufferDepthSampleCounts = sample_count,
|
||||||
|
.framebufferNoAttachmentsSampleCounts = sample_count | VK_SAMPLE_COUNT_16_BIT,
|
||||||
|
.framebufferStencilSampleCounts = sample_count,
|
||||||
|
.sampledImageColorSampleCounts = sample_count,
|
||||||
|
.sampledImageDepthSampleCounts = sample_count,
|
||||||
|
.sampledImageIntegerSampleCounts = sample_count,
|
||||||
|
.sampledImageStencilSampleCounts = sample_count,
|
||||||
|
.storageImageSampleCounts = sample_count,
|
||||||
|
.standardSampleLocations = true,
|
||||||
|
.optimalBufferCopyOffsetAlignment = 1,
|
||||||
|
.optimalBufferCopyRowPitchAlignment = 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* More properties */
|
/* More properties */
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue