yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
e1c6fecd9
master
1// For some reason CI fails this compute test by not loading data correctly 2//IGNORE_TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-vk -compute -xslang -fvk-use-dx-layout 3//TEST:SIMPLE(filecheck=SPIRV): -target spirv -entry computeMain -stage compute -fvk-use-dx-layout 4 5//TEST_INPUT: set Test.v0 = 1; 6//TEST_INPUT: set Test.v1 = {2,3}; 7//TEST_INPUT: set Test.v2 = 4; 8 9struct Int_wrapper 10{ 11//SPIRV: Offset 0 12 uint v0; 13//SPIRV: Offset 4 14 uint v1; 15}; 16 17cbuffer Test 18{ 19//SPIRV: Offset 0 20 uint v0; 21 22//SPIRV: Offset 16 23// struct's always start on a new register 24 Int_wrapper v1; 25//SPIRV: Offset 24 26// Non-struct can pack with a partially filled register 27 uint v2; 28}; 29 30//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name outputBuffer 31RWStructuredBuffer<int> outputBuffer; 32 33[shader("compute")] 34[numthreads(2, 2, 1)] 35void computeMain() 36{ 37 // CHECK: 64 38 39 outputBuffer[1] = v0; 40 outputBuffer[2] = v1.v0; 41 outputBuffer[3] = v1.v1; 42 outputBuffer[4] = v2; 43 44 45 46 outputBuffer[0] = (true 47 && v0 == 1 48 && v1.v0 == 2 49 && v1.v1 == 3 50 && v2 == 4 51 ) ? 100 : 0; 52}