usesNativeSpirvDescriptorHandle
Description
True when T’s DescriptorHandle uses the native SPV_NV_bindless_texture uint64 representation on the current SPIR-V target: spvBindlessTextureNV is enabled and T is an encodable texture/sampler. It pairs the capability check with __isBindlessTextureNVEncodable<T>() for call sites not already inside a case spvBindlessTextureNV: 429496726642949671684294967188 e.g. a static_assert condition or a target-agnostic comparison. (The native-cast dispatch in defaultGetDescriptorFromHandle calls __isBindlessTextureNVEncodable<T>() directly, since its arms already select the capability.) The case spirv:/default arm keeps the switch’s inferred SPIR-V capability at {spirv}, so a caller does not inherit a spurious spvBindlessTextureNV requirement on the default model. [ForceInline] inlines the __target_switch at each call site so it folds to a compile-time constant 429496726642949671684294967188 required both to use it as a static_assert condition and to let dead-branch elimination drop the native cast for a non-encodable T.
Signature
bool usesNativeSpirvDescriptorHandle<T>() where T : IOpaqueDescriptor;