diff options
| author | Yong He <yonghe@outlook.com> | 2025-04-30 16:38:57 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-30 16:38:57 -0700 |
| commit | a8d7bb9f781fd77080f07bfaab54fbbcf3a3686d (patch) | |
| tree | 3bda97cf2a0d9a7800e7201e948354962e13d2a4 /source | |
| parent | 7f1df9d0b31413e59846cc955d2a955d3f361e2a (diff) | |
Add `IOpaqueDescriptor::descriptorAccess`. (#6967)
* Add `IOpaqueHandle::descriptorAccess`.
* Update doc.
* fix.
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index a6e1196e3..3d83e33c1 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -21966,6 +21966,16 @@ enum DescriptorKind AccelerationStructure, /// A ray tracing acceleration structure descriptor. } +enum DescriptorAccess +{ + Unknown = -1, + Read = $(kCoreModule_ResourceAccessReadOnly), + Write = $(kCoreModule_ResourceAccessWriteOnly), + ReadWrite = $(kCoreModule_ResourceAccessReadWrite), + RasterizerOrdered = $(kCoreModule_ResourceAccessRasterizerOrdered), + Feedback = $(kCoreModule_ResourceAccessFeedback), +} + /// Represents an opaque descriptor type, such as textures, samplers, and buffers etc, /// whose size may be undefined and can't be directly accessed as ordinary data. [sealed] @@ -21974,6 +21984,7 @@ interface IOpaqueDescriptor { /// The kind of the descriptor. static const DescriptorKind kind; + static const DescriptorAccess descriptorAccess; } __magic_type(DynamicResourceType) @@ -22005,7 +22016,8 @@ extension _Texture<T, Shape, isArray, isMS, sampleCount, access, isShadow, isCom typealias Handle = DescriptorHandle<This>; - static const DescriptorKind kind = isCombined!=0 ? DescriptorKind.CombinedTextureSampler : DescriptorKind.Texture; + static const DescriptorKind kind = isCombined != 0 ? DescriptorKind.CombinedTextureSampler : DescriptorKind.Texture; + static const DescriptorAccess descriptorAccess = (DescriptorAccess)access; __implicit_conversion($(kConversionCost_ImplicitDereference)) [ForceInline] @@ -22021,28 +22033,30 @@ struct DynamicResourceTypeInfo const char* name; const char* kind; const char* dynamicKind; + const char* access; }; const DynamicResourceTypeInfo kDynamicResourceCastableTypes[] = { - {"StructuredBuffer<T, L>", "Buffer", "General"}, - {"RWStructuredBuffer<T, L>", "Buffer", "General"}, - {"AppendStructuredBuffer<T, L>", "Buffer", "General"}, - {"ConsumeStructuredBuffer<T, L>", "Buffer", "General"}, - {"RasterizerOrderedStructuredBuffer<T, L>", "Buffer", "General"}, - {"ByteAddressBuffer", "Buffer", "General"}, - {"RWByteAddressBuffer", "Buffer", "General"}, - {"RasterizerOrderedByteAddressBuffer", "Buffer", "General"}, - {"SamplerState", "Sampler", "Sampler"}, - {"SamplerComparisonState", "Sampler", "Sampler"}, - {"ConstantBuffer<T, L>", "Buffer", "General"}, - {"TextureBuffer<T>", "Buffer", "General"}, - {"RaytracingAccelerationStructure", "AccelerationStructure", "General"}, + { "StructuredBuffer<T, L>", "Buffer", "General", "Read" }, + { "RWStructuredBuffer<T, L>", "Buffer", "General", "ReadWrite" }, + { "AppendStructuredBuffer<T, L>", "Buffer", "General", "ReadWrite" }, + { "ConsumeStructuredBuffer<T, L>", "Buffer", "General", "ReadWrite" }, + { "RasterizerOrderedStructuredBuffer<T, L>", "Buffer", "General", "ReadWrite" }, + { "ByteAddressBuffer", "Buffer", "General", "Read" }, + { "RWByteAddressBuffer", "Buffer", "General", "ReadWrite" }, + { "RasterizerOrderedByteAddressBuffer", "Buffer", "General", "ReadWrite" }, + { "SamplerState", "Sampler", "Sampler", "Unknown" }, + { "SamplerComparisonState", "Sampler", "Sampler", "Unknown" }, + { "ConstantBuffer<T, L>", "Buffer", "General", "Read"}, + { "TextureBuffer<T>", "Buffer", "General", "Read"}, + { "RaytracingAccelerationStructure", "AccelerationStructure", "General", "Read"}, }; for (auto type : kDynamicResourceCastableTypes) { auto dynamicKind = type.dynamicKind; auto kind = type.kind; auto typeName = type.name; + auto access = type.access; if (strstr(typeName, "<T, L>")) sb << "__generic<T, L : IBufferDataLayout>\n"; else if (strstr(typeName, "<T>")) @@ -22056,6 +22070,7 @@ extension $(typeName) : __IDynamicResourceCastable<__DynamicResourceKind.$(dynam __init(__DynamicResource res); static const DescriptorKind kind = DescriptorKind.$(kind); + static const DescriptorAccess descriptorAccess = DescriptorAccess.$(access); typealias Handle = DescriptorHandle<$(typeName)>; |
