You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a templated struct (nbl::hlsl::bda::__ptr<T>) that uses vk::SpirvType internally to declare a PhysicalStoragePointer of another type T.
I put [[vk::ext_capability(spv::CapabilityStorageBuffer8BitAccess)]] in the typedef for a __ptr<uint16_t> (is supposed to be uint8_t later), and I expect the usage of that type to propagate the capability.
My argument for why I need extensions and capabilities to propagate is because for example CapabilityStorageBuffer8BitAccess is a specific capability of using a (u)int8 AND PhysicalStorageBuffer storage class, so I'd have to manually declare a fairly complicated SpirvType (two nested) just to be able to stick the capability on it.
This gets especially annoying for capabilities/extensions dealing with images, as an inline SPIR-V declaration for a combined image sampler or similar can be a chain of 4-5 SpirV types.
Description
I have a templated struct (
nbl::hlsl::bda::__ptr<T>
) that usesvk::SpirvType
internally to declare a PhysicalStoragePointer of another type T.I put
[[vk::ext_capability(spv::CapabilityStorageBuffer8BitAccess)]]
in the typedef for a__ptr<uint16_t>
(is supposed to beuint8_t
later), and I expect the usage of that type to propagate the capability.My argument for why I need extensions and capabilities to propagate is because for example
CapabilityStorageBuffer8BitAccess
is a specific capability of using a(u)int8
ANDPhysicalStorageBuffer
storage class, so I'd have to manually declare a fairly complicated SpirvType (two nested) just to be able to stick the capability on it.This gets especially annoying for capabilities/extensions dealing with images, as an inline SPIR-V declaration for a combined image sampler or similar can be a chain of 4-5 SpirV types.
Steps to Reproduce
My own Godbolt instance with a few more headers: https://tinyurl.com/ydhdncw3
Can produce preprocessed full source and make a repro on godbolt with vanilla DXC
Actual Behavior
No
OpCapability CapabilityStorageBuffer8BitAccess
emittedEnvironment
The text was updated successfully, but these errors were encountered: