yum-mirror/slang

Making it easier to work with shaders

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

kaizhangNVbitcast require the input has same width with result type (#7018)ccdb2e39d

master
658 B32 linesraw
1//TEST(compute, vulkan):COMPARE_COMPUTE(filecheck-buffer=BUF):-vk
2
3struct MyStruct
4{
5    half a;
6    half b;
7}
8
9
10
11//TEST_INPUT:set inputBuffer = ubuffer(data=[1.0 3.0 4.0], stride=4)
12RWStructuredBuffer<float> inputBuffer;
13
14
15//TEST_INPUT:ubuffer(data=[0 0], stride=4):out,name=outputBuffer
16RWStructuredBuffer<uint> outputBuffer;
17
18[shader("compute")]
19void computeMain()
20{
21    vector<float, 1> a = {inputBuffer[0]};
22
23    outputBuffer[0] = bit_cast<uint>(a);
24    // BUF: 3F800000
25
26    MyStruct s = MyStruct(half(inputBuffer[1]), half(inputBuffer[2]));
27    outputBuffer[1] = bit_cast<uint>(s);
28    // 2.0 : 0x4000
29    // 3.0 : 0x4200
30    // BUF-NEXT: 44004200
31
32}