// default-initializer.slang // Confirm that a type with a default initializer gets // default-initialized where appropriate. //TEST(compute):COMPARE_COMPUTE: -shaderobj //TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj struct Stuff { int value; __init() { value = 16; } } int test(int value) { Stuff s; return value * s.value + value; } //TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer RWStructuredBuffer outputBuffer : register(u0); [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; int inVal = outputBuffer[tid]; int outVal = test(inVal); outputBuffer[tid] = outVal; }