yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a23adc221
master
1// rw-texture.hlsl 2 3//TEST:COMPARE_HLSL: -profile ps_5_0 -entry main 4 5// Ensure that we implement the `Load` operations on 6// `RWTexture*` types with the correct signature. 7 8#ifdef __SLANG__ 9#define R ( X ) /**/ 10#define BEGIN_CBUFFER ( NAME ) cbuffer NAME 11#define END_CBUFFER ( NAME , REG ) /**/ 12#define CBUFFER_REF ( NAME , FIELD ) FIELD 13#else 14#define R ( X ) : register(X) 15#define BEGIN_CBUFFER ( NAME ) struct SLANG_ParameterGroup_##NAME 16#define END_CBUFFER ( NAME , REG ) ; cbuffer NAME : REG { SLANG_ParameterGroup_##NAME NAME; } 17#define CBUFFER_REF ( NAME , FIELD ) NAME.FIELD 18#define C C_0 19#define SV_Target SV_TARGET 20#define u2 u2_0 21#define u3 u3_0 22#define t2 t2_0 23#define t2a t2a_0 24#define t3 t3_0 25#endif 26 27 28BEGIN_CBUFFER ( C ) 29{ 30uint2 u2 ; 31uint3 u3 ; 32} 33END_CBUFFER ( C , register ( b0 )) 34 35RWTexture2D < float4 > t2 R ( u1 ); 36RWTexture2DArray < float4 > t2a R ( u2 ); 37RWTexture3D < float4 > t3 R ( u3 ); 38 39float4 main () : SV_Target 40{ 41return t2 . Load ( int2 ( CBUFFER_REF ( C , u2 ))) 42+ t2a . Load ( int3 ( CBUFFER_REF ( C , u3 ))) 43+ t3 . Load ( int3 ( CBUFFER_REF ( C , u3 ))); 44}