From 9da4eb4a4e7ef50fb058973261b91512c805a506 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 2 Sep 2025 11:48:48 +0200 Subject: [PATCH] panvk: explicitly list unsupported features We already do this many places, let's add the missing ones for the core Vulkan versions. Reviewed-by: Yiwei Zhang Reviewed-by: Christoph Pillmayer Part-of: --- .../vulkan/panvk_vX_physical_device.c | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c index 7762dccce68..b96772afb95 100644 --- a/src/panfrost/vulkan/panvk_vX_physical_device.c +++ b/src/panfrost/vulkan/panvk_vX_physical_device.c @@ -245,6 +245,8 @@ panvk_per_arch(get_physical_device_features)( .fullDrawIndexUint32 = true, .imageCubeArray = true, .independentBlend = true, + .geometryShader = false, + .tessellationShader = false, .sampleRateShading = true, .dualSrcBlend = true, .logicOp = true, @@ -252,13 +254,18 @@ panvk_per_arch(get_physical_device_features)( .drawIndirectFirstInstance = true, .depthClamp = true, .depthBiasClamp = true, + .fillModeNonSolid = false, + .depthBounds = false, .wideLines = true, .largePoints = true, + .alphaToOne = false, + .multiViewport = false, .samplerAnisotropy = true, .textureCompressionETC2 = has_texture_compression_etc2(device), .textureCompressionASTC_LDR = has_texture_compression_astc_ldr(device), .textureCompressionBC = has_texture_compression_bc(device), .occlusionQueryPrecise = true, + .pipelineStatisticsQuery = false, /* On v13+, the hardware isn't speculatively referencing to invalid indices anymore. */ .vertexPipelineStoresAndAtomics = @@ -266,16 +273,34 @@ panvk_per_arch(get_physical_device_features)( instance->force_enable_shader_atomics, .fragmentStoresAndAtomics = (PAN_ARCH >= 10) || instance->force_enable_shader_atomics, + .shaderTessellationAndGeometryPointSize = false, .shaderImageGatherExtended = true, .shaderStorageImageExtendedFormats = true, + .shaderStorageImageMultisample = false, .shaderStorageImageReadWithoutFormat = true, .shaderStorageImageWriteWithoutFormat = true, .shaderUniformBufferArrayDynamicIndexing = true, .shaderSampledImageArrayDynamicIndexing = true, .shaderStorageBufferArrayDynamicIndexing = true, .shaderStorageImageArrayDynamicIndexing = true, + .shaderClipDistance = false, + .shaderCullDistance = false, + .shaderFloat64 = false, .shaderInt64 = true, .shaderInt16 = true, + .shaderResourceResidency = false, + .shaderResourceMinLod = false, + .sparseBinding = false, + .sparseResidencyBuffer = false, + .sparseResidencyImage2D = false, + .sparseResidencyImage3D = false, + .sparseResidency2Samples = false, + .sparseResidency4Samples = false, + .sparseResidency8Samples = false, + .sparseResidency16Samples = false, + .sparseResidencyAliased = false, + .variableMultisampleRate = false, + .inheritedQueries = false, /* Vulkan 1.1 */ .storageBuffer16BitAccess = true, @@ -368,12 +393,17 @@ panvk_per_arch(get_physical_device_features)( .shaderExpectAssume = true, .rectangularLines = true, .bresenhamLines = true, + .smoothLines = false, + .stippledRectangularLines = false, + .stippledBresenhamLines = false, + .stippledSmoothLines = false, .vertexAttributeInstanceRateDivisor = true, .vertexAttributeInstanceRateZeroDivisor = true, .indexTypeUint8 = true, .dynamicRenderingLocalRead = true, .maintenance5 = true, .maintenance6 = true, + .pipelineProtectedAccess = false, .pipelineRobustness = true, .hostImageCopy = true, .pushDescriptor = true, @@ -893,8 +923,34 @@ panvk_per_arch(get_physical_device_properties)( MAX_INLINE_UNIFORM_BLOCK_DESCRIPTORS * MAX_INLINE_UNIFORM_BLOCK_SIZE, .integerDotProduct8BitUnsignedAccelerated = true, .integerDotProduct8BitSignedAccelerated = true, + .integerDotProduct8BitMixedSignednessAccelerated = false, .integerDotProduct4x8BitPackedUnsignedAccelerated = true, .integerDotProduct4x8BitPackedSignedAccelerated = true, + .integerDotProduct4x8BitPackedSignedAccelerated = false, + .integerDotProduct16BitUnsignedAccelerated = false, + .integerDotProduct16BitSignedAccelerated = false, + .integerDotProduct16BitMixedSignednessAccelerated = false, + .integerDotProduct32BitUnsignedAccelerated = false, + .integerDotProduct32BitSignedAccelerated = false, + .integerDotProduct32BitMixedSignednessAccelerated = false, + .integerDotProduct64BitUnsignedAccelerated = false, + .integerDotProduct64BitSignedAccelerated = false, + .integerDotProduct64BitMixedSignednessAccelerated = false, + .integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = false, + .integerDotProductAccumulatingSaturating8BitSignedAccelerated = false, + .integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = false, + .integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = false, + .integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = false, + .integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false, + .integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = false, + .integerDotProductAccumulatingSaturating16BitSignedAccelerated = false, + .integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = false, + .integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = false, + .integerDotProductAccumulatingSaturating32BitSignedAccelerated = false, + .integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = false, + .integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false, + .integerDotProductAccumulatingSaturating64BitSignedAccelerated = false, + .integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false, .storageTexelBufferOffsetAlignmentBytes = 64, .storageTexelBufferOffsetSingleTexelAlignment = false, .uniformTexelBufferOffsetAlignmentBytes = 64, @@ -907,8 +963,14 @@ panvk_per_arch(get_physical_device_properties)( .maxVertexAttribDivisor = UINT32_MAX, .supportsNonZeroFirstInstance = true, .maxPushDescriptors = MAX_PUSH_DESCS, + .dynamicRenderingLocalReadDepthStencilAttachments = false, + .dynamicRenderingLocalReadMultisampledAttachments = false, .earlyFragmentMultisampleCoverageAfterSampleCounting = true, .earlyFragmentSampleMaskTestBeforeSampleCounting = true, + .depthStencilSwizzleOneSupport = false, + .polygonModePointSize = false, + .nonStrictSinglePixelWideLinesUseParallelogram = false, + .nonStrictWideLinesUseParallelogram = false, .blockTexelViewCompatibleMultipleLayers = true, .maxCombinedImageSamplerDescriptorCount = 1, /* We don't implement VK_KHR_fragment_shading_rate */