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 /tests/language-feature/descriptor-handle | |
| parent | 7f1df9d0b31413e59846cc955d2a955d3f361e2a (diff) | |
Add `IOpaqueDescriptor::descriptorAccess`. (#6967)
* Add `IOpaqueHandle::descriptorAccess`.
* Update doc.
* fix.
Diffstat (limited to 'tests/language-feature/descriptor-handle')
| -rw-r--r-- | tests/language-feature/descriptor-handle/desc-handle-4.slang | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/language-feature/descriptor-handle/desc-handle-4.slang b/tests/language-feature/descriptor-handle/desc-handle-4.slang new file mode 100644 index 000000000..d04db3175 --- /dev/null +++ b/tests/language-feature/descriptor-handle/desc-handle-4.slang @@ -0,0 +1,34 @@ +//TEST:INTERPRET(filecheck=CHECK): + +#define CHECK(x) if (!(x)) return false + +DescriptorAccess getAccess<T : IOpaqueDescriptor>() +{ + return T.descriptorAccess; +} + +bool test() +{ + CHECK(getAccess<Texture2D>() == DescriptorAccess.Read); + CHECK(getAccess<SamplerState>() == DescriptorAccess.Unknown); + CHECK(getAccess<RasterizerOrderedStructuredBuffer<int>>() == DescriptorAccess.RasterizerOrdered); + CHECK(getAccess<RWStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); + CHECK(getAccess<AppendStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); + CHECK(getAccess<ConsumeStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); + CHECK(getAccess<StructuredBuffer<int>>() == DescriptorAccess.Read); + CHECK(getAccess<ConstantBuffer<int>>() == DescriptorAccess.Read); + CHECK(getAccess<RWByteAddressBuffer>() == DescriptorAccess.ReadWrite); + CHECK(getAccess<ByteAddressBuffer>() == DescriptorAccess.Read); + CHECK(getAccess<RaytracingAccelerationStructure>() == DescriptorAccess.Read); + CHECK(getAccess<WTexture2DArray>() == DescriptorAccess.Write); + return true; +} + +void main() +{ + // CHECK: pass + if (test()) + printf("pass\n"); + else + printf("fail\n"); +}
\ No newline at end of file |
