diff options
Diffstat (limited to 'tests/language-feature')
| -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 |
