yum-mirror/slang

Making it easier to work with shaders

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

Tim FoleyConvert more tests to use shader objects (#1659)2a5d5b323

master
654 B38 linesraw
1//TEST(compute):COMPARE_COMPUTE: -shaderobj
2//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj
3
4// Check that user code can declare and use a generic
5// `struct` type.
6
7//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
8RWStructuredBuffer<int> outputBuffer;
9
10__generic<T>
11struct GenStruct
12{
13	T x;
14	T y;
15};
16
17__generic<T>
18T test(T val)
19{
20	GenStruct<T> gs;
21	gs.x = val;
22	gs.y = val;
23	return gs.x;
24}
25
26
27[numthreads(4, 1, 1)]
28void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
29{
30	uint tid = dispatchThreadID.x;
31
32	float outVal = 0;
33
34	outVal += test<uint>(tid);
35	outVal += test<float>(tid * 16.0f);
36
37	outputBuffer[tid] = int(outVal);
38}