n kernels with deliberately parameter-rich signatures (nested constant buffers, arrays, textures, samplers) so that walking each compiled program's layout — the reflection query pattern every API client uses to build binding tables — has realistic work per program. Used with the driver's --reflect option, which walks the layout after each compile.
bucket: api_overhead · compile mode: api · flags: (none) · default N: 40
Full sub-counter decomposition of compileInner — named leaf timers plus (self) residuals (a parent's time not covered by a named child, e.g. the autodiff transform in linkAndOptimizeIR (self)). Topmost band traces compileInner; hover a band for its phase.
Overall apiTotal: 590.3 → 564.1 ms -4.4% (2026-07-30 7c58a326b → 2026-08-29 28c755b09)
Contributors — the mutually-exclusive phase buckets (named leaves + (self) residuals) that tile apiTotal; the pp column sums to the overall %. Buckets moving the total by ≥0.2% are listed, the rest fold into the remainder row. Below them, every other reported counter (nested/overlapping, e.g. serialized-module reads — own change only):
| counter | Δ | own % | of total |
|---|---|---|---|
| apiGetCode | -17.6 ms | -7.7% | -3.0pp |
| apiTotal (self) | -3.7 ms | -48.0% | -0.6pp |
| apiCreateGlobalSession | -2.9 ms | -2.9% | -0.5pp |
| apiLoadModule | -1.9 ms | -0.7% | -0.3pp |
| (remaining 5 buckets) | -0.1 ms | – | -0.0pp |
Largest day steps (≥5% of the previous day, both directions; bisect with git log <c0>..<c1> -- source/):
| boundary | % vs prev day | commits | top buckets (own %) |
|---|---|---|---|
| none | |||
Run from the slang repo root. This regenerates the sources below and re-runs this workload's measurement; --gen-dir keeps the generated files (they go to a tempdir and are deleted otherwise).
python3 tools/compile-perf/bench.py --slangc /path/to/slangc --only api_reflection --label repro --gen-dir repro-api_reflection
the complete compiled source (N = 40), shown in full
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_0
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_0
{
Inner_0 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_0> cb_0;
StructuredBuffer<float4> inBuf_0;
RWStructuredBuffer<float4> outBuf_0;
Texture2D tex_0;
SamplerState samp_0;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_0[tid.x];
v += tex_0.SampleLevel(samp_0, v.xy, 0);
v *= mul(cb_0.xf, v);
v.x += cb_0.inner[tid.x % 3].a.x + cb_0.blend[0];
outBuf_0[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_1
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_1
{
Inner_1 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_1> cb_1;
StructuredBuffer<float4> inBuf_1;
RWStructuredBuffer<float4> outBuf_1;
Texture2D tex_1;
SamplerState samp_1;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_1[tid.x];
v += tex_1.SampleLevel(samp_1, v.xy, 0);
v *= mul(cb_1.xf, v);
v.x += cb_1.inner[tid.x % 3].a.x + cb_1.blend[0];
outBuf_1[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_2
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_2
{
Inner_2 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_2> cb_2;
StructuredBuffer<float4> inBuf_2;
RWStructuredBuffer<float4> outBuf_2;
Texture2D tex_2;
SamplerState samp_2;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_2[tid.x];
v += tex_2.SampleLevel(samp_2, v.xy, 0);
v *= mul(cb_2.xf, v);
v.x += cb_2.inner[tid.x % 3].a.x + cb_2.blend[0];
outBuf_2[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_3
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_3
{
Inner_3 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_3> cb_3;
StructuredBuffer<float4> inBuf_3;
RWStructuredBuffer<float4> outBuf_3;
Texture2D tex_3;
SamplerState samp_3;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_3[tid.x];
v += tex_3.SampleLevel(samp_3, v.xy, 0);
v *= mul(cb_3.xf, v);
v.x += cb_3.inner[tid.x % 3].a.x + cb_3.blend[0];
outBuf_3[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_4
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_4
{
Inner_4 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_4> cb_4;
StructuredBuffer<float4> inBuf_4;
RWStructuredBuffer<float4> outBuf_4;
Texture2D tex_4;
SamplerState samp_4;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_4[tid.x];
v += tex_4.SampleLevel(samp_4, v.xy, 0);
v *= mul(cb_4.xf, v);
v.x += cb_4.inner[tid.x % 3].a.x + cb_4.blend[0];
outBuf_4[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_5
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_5
{
Inner_5 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_5> cb_5;
StructuredBuffer<float4> inBuf_5;
RWStructuredBuffer<float4> outBuf_5;
Texture2D tex_5;
SamplerState samp_5;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_5[tid.x];
v += tex_5.SampleLevel(samp_5, v.xy, 0);
v *= mul(cb_5.xf, v);
v.x += cb_5.inner[tid.x % 3].a.x + cb_5.blend[0];
outBuf_5[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_6
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_6
{
Inner_6 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_6> cb_6;
StructuredBuffer<float4> inBuf_6;
RWStructuredBuffer<float4> outBuf_6;
Texture2D tex_6;
SamplerState samp_6;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_6[tid.x];
v += tex_6.SampleLevel(samp_6, v.xy, 0);
v *= mul(cb_6.xf, v);
v.x += cb_6.inner[tid.x % 3].a.x + cb_6.blend[0];
outBuf_6[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_7
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_7
{
Inner_7 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_7> cb_7;
StructuredBuffer<float4> inBuf_7;
RWStructuredBuffer<float4> outBuf_7;
Texture2D tex_7;
SamplerState samp_7;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_7[tid.x];
v += tex_7.SampleLevel(samp_7, v.xy, 0);
v *= mul(cb_7.xf, v);
v.x += cb_7.inner[tid.x % 3].a.x + cb_7.blend[0];
outBuf_7[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_8
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_8
{
Inner_8 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_8> cb_8;
StructuredBuffer<float4> inBuf_8;
RWStructuredBuffer<float4> outBuf_8;
Texture2D tex_8;
SamplerState samp_8;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_8[tid.x];
v += tex_8.SampleLevel(samp_8, v.xy, 0);
v *= mul(cb_8.xf, v);
v.x += cb_8.inner[tid.x % 3].a.x + cb_8.blend[0];
outBuf_8[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_9
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_9
{
Inner_9 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_9> cb_9;
StructuredBuffer<float4> inBuf_9;
RWStructuredBuffer<float4> outBuf_9;
Texture2D tex_9;
SamplerState samp_9;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_9[tid.x];
v += tex_9.SampleLevel(samp_9, v.xy, 0);
v *= mul(cb_9.xf, v);
v.x += cb_9.inner[tid.x % 3].a.x + cb_9.blend[0];
outBuf_9[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_10
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_10
{
Inner_10 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_10> cb_10;
StructuredBuffer<float4> inBuf_10;
RWStructuredBuffer<float4> outBuf_10;
Texture2D tex_10;
SamplerState samp_10;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_10[tid.x];
v += tex_10.SampleLevel(samp_10, v.xy, 0);
v *= mul(cb_10.xf, v);
v.x += cb_10.inner[tid.x % 3].a.x + cb_10.blend[0];
outBuf_10[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_11
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_11
{
Inner_11 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_11> cb_11;
StructuredBuffer<float4> inBuf_11;
RWStructuredBuffer<float4> outBuf_11;
Texture2D tex_11;
SamplerState samp_11;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_11[tid.x];
v += tex_11.SampleLevel(samp_11, v.xy, 0);
v *= mul(cb_11.xf, v);
v.x += cb_11.inner[tid.x % 3].a.x + cb_11.blend[0];
outBuf_11[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_12
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_12
{
Inner_12 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_12> cb_12;
StructuredBuffer<float4> inBuf_12;
RWStructuredBuffer<float4> outBuf_12;
Texture2D tex_12;
SamplerState samp_12;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_12[tid.x];
v += tex_12.SampleLevel(samp_12, v.xy, 0);
v *= mul(cb_12.xf, v);
v.x += cb_12.inner[tid.x % 3].a.x + cb_12.blend[0];
outBuf_12[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_13
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_13
{
Inner_13 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_13> cb_13;
StructuredBuffer<float4> inBuf_13;
RWStructuredBuffer<float4> outBuf_13;
Texture2D tex_13;
SamplerState samp_13;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_13[tid.x];
v += tex_13.SampleLevel(samp_13, v.xy, 0);
v *= mul(cb_13.xf, v);
v.x += cb_13.inner[tid.x % 3].a.x + cb_13.blend[0];
outBuf_13[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_14
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_14
{
Inner_14 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_14> cb_14;
StructuredBuffer<float4> inBuf_14;
RWStructuredBuffer<float4> outBuf_14;
Texture2D tex_14;
SamplerState samp_14;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_14[tid.x];
v += tex_14.SampleLevel(samp_14, v.xy, 0);
v *= mul(cb_14.xf, v);
v.x += cb_14.inner[tid.x % 3].a.x + cb_14.blend[0];
outBuf_14[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_15
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_15
{
Inner_15 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_15> cb_15;
StructuredBuffer<float4> inBuf_15;
RWStructuredBuffer<float4> outBuf_15;
Texture2D tex_15;
SamplerState samp_15;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_15[tid.x];
v += tex_15.SampleLevel(samp_15, v.xy, 0);
v *= mul(cb_15.xf, v);
v.x += cb_15.inner[tid.x % 3].a.x + cb_15.blend[0];
outBuf_15[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_16
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_16
{
Inner_16 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_16> cb_16;
StructuredBuffer<float4> inBuf_16;
RWStructuredBuffer<float4> outBuf_16;
Texture2D tex_16;
SamplerState samp_16;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_16[tid.x];
v += tex_16.SampleLevel(samp_16, v.xy, 0);
v *= mul(cb_16.xf, v);
v.x += cb_16.inner[tid.x % 3].a.x + cb_16.blend[0];
outBuf_16[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_17
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_17
{
Inner_17 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_17> cb_17;
StructuredBuffer<float4> inBuf_17;
RWStructuredBuffer<float4> outBuf_17;
Texture2D tex_17;
SamplerState samp_17;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_17[tid.x];
v += tex_17.SampleLevel(samp_17, v.xy, 0);
v *= mul(cb_17.xf, v);
v.x += cb_17.inner[tid.x % 3].a.x + cb_17.blend[0];
outBuf_17[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_18
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_18
{
Inner_18 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_18> cb_18;
StructuredBuffer<float4> inBuf_18;
RWStructuredBuffer<float4> outBuf_18;
Texture2D tex_18;
SamplerState samp_18;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_18[tid.x];
v += tex_18.SampleLevel(samp_18, v.xy, 0);
v *= mul(cb_18.xf, v);
v.x += cb_18.inner[tid.x % 3].a.x + cb_18.blend[0];
outBuf_18[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_19
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_19
{
Inner_19 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_19> cb_19;
StructuredBuffer<float4> inBuf_19;
RWStructuredBuffer<float4> outBuf_19;
Texture2D tex_19;
SamplerState samp_19;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_19[tid.x];
v += tex_19.SampleLevel(samp_19, v.xy, 0);
v *= mul(cb_19.xf, v);
v.x += cb_19.inner[tid.x % 3].a.x + cb_19.blend[0];
outBuf_19[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_20
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_20
{
Inner_20 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_20> cb_20;
StructuredBuffer<float4> inBuf_20;
RWStructuredBuffer<float4> outBuf_20;
Texture2D tex_20;
SamplerState samp_20;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_20[tid.x];
v += tex_20.SampleLevel(samp_20, v.xy, 0);
v *= mul(cb_20.xf, v);
v.x += cb_20.inner[tid.x % 3].a.x + cb_20.blend[0];
outBuf_20[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_21
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_21
{
Inner_21 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_21> cb_21;
StructuredBuffer<float4> inBuf_21;
RWStructuredBuffer<float4> outBuf_21;
Texture2D tex_21;
SamplerState samp_21;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_21[tid.x];
v += tex_21.SampleLevel(samp_21, v.xy, 0);
v *= mul(cb_21.xf, v);
v.x += cb_21.inner[tid.x % 3].a.x + cb_21.blend[0];
outBuf_21[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_22
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_22
{
Inner_22 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_22> cb_22;
StructuredBuffer<float4> inBuf_22;
RWStructuredBuffer<float4> outBuf_22;
Texture2D tex_22;
SamplerState samp_22;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_22[tid.x];
v += tex_22.SampleLevel(samp_22, v.xy, 0);
v *= mul(cb_22.xf, v);
v.x += cb_22.inner[tid.x % 3].a.x + cb_22.blend[0];
outBuf_22[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_23
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_23
{
Inner_23 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_23> cb_23;
StructuredBuffer<float4> inBuf_23;
RWStructuredBuffer<float4> outBuf_23;
Texture2D tex_23;
SamplerState samp_23;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_23[tid.x];
v += tex_23.SampleLevel(samp_23, v.xy, 0);
v *= mul(cb_23.xf, v);
v.x += cb_23.inner[tid.x % 3].a.x + cb_23.blend[0];
outBuf_23[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_24
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_24
{
Inner_24 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_24> cb_24;
StructuredBuffer<float4> inBuf_24;
RWStructuredBuffer<float4> outBuf_24;
Texture2D tex_24;
SamplerState samp_24;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_24[tid.x];
v += tex_24.SampleLevel(samp_24, v.xy, 0);
v *= mul(cb_24.xf, v);
v.x += cb_24.inner[tid.x % 3].a.x + cb_24.blend[0];
outBuf_24[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_25
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_25
{
Inner_25 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_25> cb_25;
StructuredBuffer<float4> inBuf_25;
RWStructuredBuffer<float4> outBuf_25;
Texture2D tex_25;
SamplerState samp_25;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_25[tid.x];
v += tex_25.SampleLevel(samp_25, v.xy, 0);
v *= mul(cb_25.xf, v);
v.x += cb_25.inner[tid.x % 3].a.x + cb_25.blend[0];
outBuf_25[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_26
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_26
{
Inner_26 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_26> cb_26;
StructuredBuffer<float4> inBuf_26;
RWStructuredBuffer<float4> outBuf_26;
Texture2D tex_26;
SamplerState samp_26;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_26[tid.x];
v += tex_26.SampleLevel(samp_26, v.xy, 0);
v *= mul(cb_26.xf, v);
v.x += cb_26.inner[tid.x % 3].a.x + cb_26.blend[0];
outBuf_26[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_27
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_27
{
Inner_27 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_27> cb_27;
StructuredBuffer<float4> inBuf_27;
RWStructuredBuffer<float4> outBuf_27;
Texture2D tex_27;
SamplerState samp_27;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_27[tid.x];
v += tex_27.SampleLevel(samp_27, v.xy, 0);
v *= mul(cb_27.xf, v);
v.x += cb_27.inner[tid.x % 3].a.x + cb_27.blend[0];
outBuf_27[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_28
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_28
{
Inner_28 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_28> cb_28;
StructuredBuffer<float4> inBuf_28;
RWStructuredBuffer<float4> outBuf_28;
Texture2D tex_28;
SamplerState samp_28;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_28[tid.x];
v += tex_28.SampleLevel(samp_28, v.xy, 0);
v *= mul(cb_28.xf, v);
v.x += cb_28.inner[tid.x % 3].a.x + cb_28.blend[0];
outBuf_28[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_29
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_29
{
Inner_29 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_29> cb_29;
StructuredBuffer<float4> inBuf_29;
RWStructuredBuffer<float4> outBuf_29;
Texture2D tex_29;
SamplerState samp_29;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_29[tid.x];
v += tex_29.SampleLevel(samp_29, v.xy, 0);
v *= mul(cb_29.xf, v);
v.x += cb_29.inner[tid.x % 3].a.x + cb_29.blend[0];
outBuf_29[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_30
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_30
{
Inner_30 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_30> cb_30;
StructuredBuffer<float4> inBuf_30;
RWStructuredBuffer<float4> outBuf_30;
Texture2D tex_30;
SamplerState samp_30;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_30[tid.x];
v += tex_30.SampleLevel(samp_30, v.xy, 0);
v *= mul(cb_30.xf, v);
v.x += cb_30.inner[tid.x % 3].a.x + cb_30.blend[0];
outBuf_30[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_31
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_31
{
Inner_31 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_31> cb_31;
StructuredBuffer<float4> inBuf_31;
RWStructuredBuffer<float4> outBuf_31;
Texture2D tex_31;
SamplerState samp_31;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_31[tid.x];
v += tex_31.SampleLevel(samp_31, v.xy, 0);
v *= mul(cb_31.xf, v);
v.x += cb_31.inner[tid.x % 3].a.x + cb_31.blend[0];
outBuf_31[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_32
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_32
{
Inner_32 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_32> cb_32;
StructuredBuffer<float4> inBuf_32;
RWStructuredBuffer<float4> outBuf_32;
Texture2D tex_32;
SamplerState samp_32;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_32[tid.x];
v += tex_32.SampleLevel(samp_32, v.xy, 0);
v *= mul(cb_32.xf, v);
v.x += cb_32.inner[tid.x % 3].a.x + cb_32.blend[0];
outBuf_32[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_33
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_33
{
Inner_33 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_33> cb_33;
StructuredBuffer<float4> inBuf_33;
RWStructuredBuffer<float4> outBuf_33;
Texture2D tex_33;
SamplerState samp_33;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_33[tid.x];
v += tex_33.SampleLevel(samp_33, v.xy, 0);
v *= mul(cb_33.xf, v);
v.x += cb_33.inner[tid.x % 3].a.x + cb_33.blend[0];
outBuf_33[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_34
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_34
{
Inner_34 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_34> cb_34;
StructuredBuffer<float4> inBuf_34;
RWStructuredBuffer<float4> outBuf_34;
Texture2D tex_34;
SamplerState samp_34;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_34[tid.x];
v += tex_34.SampleLevel(samp_34, v.xy, 0);
v *= mul(cb_34.xf, v);
v.x += cb_34.inner[tid.x % 3].a.x + cb_34.blend[0];
outBuf_34[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_35
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_35
{
Inner_35 inner[3];
float4x4 xf;
uint flags;
float blend[2];
}
ConstantBuffer<Params_35> cb_35;
StructuredBuffer<float4> inBuf_35;
RWStructuredBuffer<float4> outBuf_35;
Texture2D tex_35;
SamplerState samp_35;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_35[tid.x];
v += tex_35.SampleLevel(samp_35, v.xy, 0);
v *= mul(cb_35.xf, v);
v.x += cb_35.inner[tid.x % 3].a.x + cb_35.blend[0];
outBuf_35[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_36
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_36
{
Inner_36 inner[3];
float4x4 xf;
uint flags;
float blend[3];
}
ConstantBuffer<Params_36> cb_36;
StructuredBuffer<float4> inBuf_36;
RWStructuredBuffer<float4> outBuf_36;
Texture2D tex_36;
SamplerState samp_36;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_36[tid.x];
v += tex_36.SampleLevel(samp_36, v.xy, 0);
v *= mul(cb_36.xf, v);
v.x += cb_36.inner[tid.x % 3].a.x + cb_36.blend[0];
outBuf_36[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_37
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_37
{
Inner_37 inner[3];
float4x4 xf;
uint flags;
float blend[4];
}
ConstantBuffer<Params_37> cb_37;
StructuredBuffer<float4> inBuf_37;
RWStructuredBuffer<float4> outBuf_37;
Texture2D tex_37;
SamplerState samp_37;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_37[tid.x];
v += tex_37.SampleLevel(samp_37, v.xy, 0);
v *= mul(cb_37.xf, v);
v.x += cb_37.inner[tid.x % 3].a.x + cb_37.blend[0];
outBuf_37[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_38
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_38
{
Inner_38 inner[3];
float4x4 xf;
uint flags;
float blend[5];
}
ConstantBuffer<Params_38> cb_38;
StructuredBuffer<float4> inBuf_38;
RWStructuredBuffer<float4> outBuf_38;
Texture2D tex_38;
SamplerState samp_38;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_38[tid.x];
v += tex_38.SampleLevel(samp_38, v.xy, 0);
v *= mul(cb_38.xf, v);
v.x += cb_38.inner[tid.x % 3].a.x + cb_38.blend[0];
outBuf_38[tid.x] = v;
}
// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Inner_39
{
float4 a;
float3 b;
int2 c[4];
}
struct Params_39
{
Inner_39 inner[3];
float4x4 xf;
uint flags;
float blend[6];
}
ConstantBuffer<Params_39> cb_39;
StructuredBuffer<float4> inBuf_39;
RWStructuredBuffer<float4> outBuf_39;
Texture2D tex_39;
SamplerState samp_39;
[shader("compute")]
[numthreads(8,8,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
float4 v = inBuf_39[tid.x];
v += tex_39.SampleLevel(samp_39, v.xy, 0);
v *= mul(cb_39.xf, v);
v.x += cb_39.inner[tid.x % 3].a.x + cb_39.blend[0];
outBuf_39[tid.x] = v;
}