//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-slang -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-vk -compute -shaderobj -output-using-type //TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-mtl -compute -shaderobj -output-using-type -render-features argument-buffer-tier-2 struct TestStruct { Format f; }; Format testFunction(TestStruct data) { return data.f + __int_cast(count); } //TEST_INPUT: set testBlock = new TestStruct{1} ParameterBlock> testBlock; //TEST_INPUT: set testBlock2 = new TestStruct{2} ConstantBuffer> testBlock2; //TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0], stride=4) RWStructuredBuffer outputBuffer; [numthreads(1, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { // CHECK: 13 outputBuffer[0] = testFunction(testBlock); // CHECK: 13 outputBuffer[1] = testFunction(testBlock); // CHECK: 4 outputBuffer[2] = testFunction(testBlock2); }