//TEST(compute):COMPARE_COMPUTE: //TEST_INPUT: cbuffer(data=[1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0], stride=4):dxbinding(0),glbinding(0) //TEST_INPUT: ubuffer(data=[0], stride=4):dxbinding(0),glbinding(0),out //TEST_INPUT: type Pair, Pair , Base> > RWStructuredBuffer outputBuffer; import globalTypeParamArrayShared; __generic_param TImpl : IBase; ParameterBlock impl; float doCompute(T t) { return t.compute(1.0); } [numthreads(1, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; float outVal = doCompute(impl); outputBuffer[tid] = outVal; }