//TEST(compute):COMPARE_COMPUTE: //TEST(compute):COMPARE_COMPUTE:-cpu // test specialization of nested generic functions //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer RWStructuredBuffer outputBuffer; interface IBRDF { float getF(); } interface ILight { float illum(B b); }; struct B0 : IBRDF { float getF() { return 1.0; } }; struct L0 : ILight { float illum(B b) { return b.getF(); } }; struct L1 : ILight { L l; float illum(BXX bxx) { return l.illum(bxx); } }; [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; L1 light; B0 b0; float outVal = light.illum(b0); outputBuffer[tid] = int(outVal); }