yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeMake `-no-mangle` option work, add `-no-hlsl-binding`. (#3817)a23adc221

master
969 B41 linesraw
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{
34	float c;
35}
36END_CBUFFER(C, register(b0))
37
38float4 main() : SV_TARGET
39{
40	return use(t,s) + use(CBUFFER_REF(C,c));
41}