yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a8d7bb9f7
master
1//TEST:INTERPRET(filecheck=CHECK): 2 3#define CHECK(x) if (!(x)) return false 4 5DescriptorAccess getAccess<T : IOpaqueDescriptor>() 6{ 7 return T.descriptorAccess; 8} 9 10bool test() 11{ 12 CHECK(getAccess<Texture2D>() == DescriptorAccess.Read); 13 CHECK(getAccess<SamplerState>() == DescriptorAccess.Unknown); 14 CHECK(getAccess<RasterizerOrderedStructuredBuffer<int>>() == DescriptorAccess.RasterizerOrdered); 15 CHECK(getAccess<RWStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); 16 CHECK(getAccess<AppendStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); 17 CHECK(getAccess<ConsumeStructuredBuffer<int>>() == DescriptorAccess.ReadWrite); 18 CHECK(getAccess<StructuredBuffer<int>>() == DescriptorAccess.Read); 19 CHECK(getAccess<ConstantBuffer<int>>() == DescriptorAccess.Read); 20 CHECK(getAccess<RWByteAddressBuffer>() == DescriptorAccess.ReadWrite); 21 CHECK(getAccess<ByteAddressBuffer>() == DescriptorAccess.Read); 22 CHECK(getAccess<RaytracingAccelerationStructure>() == DescriptorAccess.Read); 23 CHECK(getAccess<WTexture2DArray>() == DescriptorAccess.Write); 24 return true; 25} 26 27void main() 28{ 29 // CHECK: pass 30 if (test()) 31 printf("pass\n"); 32 else 33 printf("fail\n"); 34}