[Mesa-dev] [PATCH 1/5] nir/spirv: Complete the list of capabilities
Jason Ekstrand
jason at jlekstrand.net
Thu Jun 2 21:39:16 UTC 2016
Previously we supported a subset of capabilities and just left a default
case for the others. It's time to stop being lazy and actually audit the
capabilities. This should bring them up-to-date with reality.
Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
Cc: "12.0" <mesa-stable at lists.freedesktop.org>
---
src/compiler/spirv/spirv_to_nir.c | 48 ++++++++++++++++++++++++++++++++++++---
1 file changed, 45 insertions(+), 3 deletions(-)
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index cece645..d51089f 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -2266,7 +2266,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
case SpvCapabilityMatrix:
case SpvCapabilityShader:
case SpvCapabilityGeometry:
- case SpvCapabilityTessellationPointSize:
case SpvCapabilityGeometryPointSize:
case SpvCapabilityUniformBufferArrayDynamicIndexing:
case SpvCapabilitySampledImageArrayDynamicIndexing:
@@ -2280,14 +2279,57 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
case SpvCapabilitySampledBuffer:
case SpvCapabilityImageBuffer:
case SpvCapabilityImageQuery:
+ case SpvCapabilityDerivativeControl:
+ case SpvCapabilityInterpolationFunction:
+ case SpvCapabilityMultiViewport:
break;
case SpvCapabilityClipDistance:
case SpvCapabilityCullDistance:
case SpvCapabilityGeometryStreams:
+ /* glslang sometimes throws these at us even though it doesn't
+ * actually use the associated variable.
+ */
fprintf(stderr, "WARNING: Unsupported SPIR-V Capability\n");
break;
- default:
- assert(!"Unsupported capability");
+ case SpvCapabilityTessellation:
+ case SpvCapabilityTessellationPointSize:
+ case SpvCapabilityLinkage:
+ case SpvCapabilityVector16:
+ case SpvCapabilityFloat16Buffer:
+ case SpvCapabilityFloat16:
+ case SpvCapabilityFloat64:
+ case SpvCapabilityInt64:
+ case SpvCapabilityInt64Atomics:
+ case SpvCapabilityAtomicStorage:
+ case SpvCapabilityInt16:
+ case SpvCapabilityImageGatherExtended:
+ case SpvCapabilityStorageImageMultisample:
+ case SpvCapabilityImageCubeArray:
+ case SpvCapabilitySampleRateShading:
+ case SpvCapabilityInt8:
+ case SpvCapabilityInputAttachment:
+ case SpvCapabilitySparseResidency:
+ case SpvCapabilityMinLod:
+ case SpvCapabilityImageMSArray:
+ case SpvCapabilityStorageImageExtendedFormats:
+ case SpvCapabilityTransformFeedback:
+ case SpvCapabilityStorageImageReadWithoutFormat:
+ case SpvCapabilityStorageImageWriteWithoutFormat:
+ unreachable("Unsupported SPIR-V Capability");
+ break;
+
+ case SpvCapabilityAddresses:
+ case SpvCapabilityKernel:
+ case SpvCapabilityImageBasic:
+ case SpvCapabilityImageReadWrite:
+ case SpvCapabilityImageMipmap:
+ case SpvCapabilityPipes:
+ case SpvCapabilityGroups:
+ case SpvCapabilityDeviceEnqueue:
+ case SpvCapabilityLiteralSampler:
+ case SpvCapabilityGenericPointer:
+ unreachable("Unsupported OpenCL-style Capability");
+ break;
}
break;
}
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list