yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a23adc221
master
1//TEST:COMPARE_HLSL: -profile ps_4_0 -entry main 2 3// Let's first confirm that Slang can reproduce what the 4// HLSL compiler would already do in the simple case (when 5// all shader parameters are actually used). 6 7#ifdef __SLANG__ 8#define R ( X ) /**/ 9#define BEGIN_CBUFFER ( NAME ) cbuffer NAME 10#define END_CBUFFER ( NAME , REG ) /**/ 11#define CBUFFER_REF ( NAME , FIELD ) FIELD 12 13#else 14#define R ( X ) 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 19#define C C_0 20#define t t_0 21#define s s_0 22#define c c_0 23 24#endif 25 26float4 use ( float4 val ) { return val ; }; 27float4 use ( Texture2D tex , SamplerState samp ) { return tex . Sample ( samp , 0.0 ); } 28 29Texture2D t R ( :register ( t0 )); 30SamplerState s R ( :register ( s0 )); 31 32BEGIN_CBUFFER ( C ) 33{ 34float c ; 35} 36END_CBUFFER ( C , register ( b0 )) 37 38float4 main () : SV_TARGET 39{ 40return use ( t , s ) + use ( CBUFFER_REF ( C , c )); 41}