← back

reflection_layout

n constant buffers, each with a structurally rich payload — vectors, matrices, an array of a nested `Light` struct, a nested `Material` struct and a scalar array. This is the only workload with a large, deeply-typed shader *parameter interface* (every other workload's interface is a single RWStructuredBuffer), so it is the one stressor for the parameter binding / layout-assignment engine and — with `-reflection-json` (see the spec's reflection_json flag) — the reflection serializer, the layout/reflection path no other workload covers. Scales by breadth = number of parameter blocks the layout engine must place and reflect. Note: layout is computed during compileInner regardless of the flag (so compileInner is the holistic signal); -reflection-json additionally runs the serializer, which is cheap today but tracked here for regression coverage. Scaling null: n scales parameters; ideal layout cost is O(n).

bucket: reflection_layout  ·  compile mode: target  ·  flags: -target spirv -emit-spirv-directly  ·  default N: 120

Phase composition across releases

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.

Across releases

reflection_layout — Across releases (median ms) reflection_layout 0.65× 0.0 179 357 25.12 25.13 25.14 25.15 25.16 25.17 25.18 25.19 25.20 25.21 25.22 25.23 25.24 26.1 26.2 26.3 26.4 26.5 26.7 26.8 26.9 26.10 26.11 26.12 26.13 26.13.1 26.14 26.14.1 26.16 26.16.1 reflection_layout — parseTranslationUnit reflection_layout — SemanticChecking reflection_layout — generateIR reflection_layout — frontEndExecute (self) reflection_layout — specializeModule reflection_layout — simplifyIR reflection_layout — linkIR reflection_layout — unrollLoopsInModule reflection_layout — legalizeResourceTypes reflection_layout — legalizeExistentialTypeLayout reflection_layout — performMandatoryEarlyInlining reflection_layout — performForceInlining reflection_layout — linkAndOptimizeIR (self) reflection_layout — generateOutput (self) reflection_layout — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Daily tip-of-tree (last 30 days)

reflection_layout — Daily tip-of-tree (last 30 days) (median ms) reflection_layout 0.94× 0.0 108 216 07-30 07-31 08-01 08-02 08-03 08-04 08-05 08-06 08-07 08-08 08-09 08-10 08-11 08-12 08-13 08-14 08-15 08-15 08-18 08-19 08-20 08-21 08-22 08-23 08-24 08-25 08-26 08-27 08-28 08-29 reflection_layout — parseTranslationUnit reflection_layout — SemanticChecking reflection_layout — generateIR reflection_layout — frontEndExecute (self) reflection_layout — specializeModule reflection_layout — simplifyIR reflection_layout — linkIR reflection_layout — unrollLoopsInModule reflection_layout — legalizeResourceTypes reflection_layout — legalizeExistentialTypeLayout reflection_layout — performMandatoryEarlyInlining reflection_layout — performForceInlining reflection_layout — linkAndOptimizeIR (self) reflection_layout — generateOutput (self) reflection_layout — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Daily window progress

Overall compileInner: 192.2 → 181.2 ms  -5.7%  (2026-07-30 7c58a326b → 2026-08-29 28c755b09)

Contributors — the mutually-exclusive phase buckets (named leaves + (self) residuals) that tile compileInner; 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
legalizeExistentialTypeLayout-7.0 ms-82.4%-3.6pp
linkAndOptimizeIR (self)-3.3 ms-14.1%-1.7pp
generateOutput (self)-2.1 ms-9.6%-1.1pp
legalizeResourceTypes-0.7 ms-35.1%-0.4pp
frontEndExecute (self)+0.7 ms+10.8%+0.4pp
SemanticChecking+0.7 ms+0.9%+0.4pp
compileInner (self)+0.7 ms+9.5%+0.3pp
specializeModule+0.4 ms+10.2%+0.2pp
(remaining 7 buckets)-0.5 ms-0.3pp
readSerializedModuleIR-4.0 ms-7.4%
readSerializedModuleAST+3.0 ms+9.6%

Largest day steps (≥5% of the previous day, both directions; bisect with git log <c0>..<c1> -- source/):

boundary% vs prev daycommitstop buckets (own %)
2026-08-04 → 2026-08-05-6.9%0864e60e6..ff45b15edlegalizeExistentialTypeLayout -82%, linkAndOptimizeIR (self) -11%, generateOutput (self) -10%
2026-08-06 → 2026-08-07-6.2%9eb90c50a..88fa1206dSemanticChecking -10%, generateIR -14%
2026-08-05 → 2026-08-06+5.2%ff45b15ed..9eb90c50aSemanticChecking +8%, generateIR +14%

Reproduce

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 reflection_layout --label repro --gen-dir repro-reflection_layout

Compiled Slang source

the complete compiled source (N = 120), shown in full

reflection_layout.slang (1094 lines)

// AUTO-GENERATED by perf-suite/workloads.py - do not edit by hand.
struct Light { float3 pos; float3 color; float intensity; float4x4 shadow; }
struct Material { float4 base; float metal; float rough; float2 uvScale; float3x3 tangent; }

cbuffer Params0 : register(b0)
{
    float4 tint0;
    float4x4 xform0;
    Light lights0[4];
    Material mat0;
    float weights0[8];
}
cbuffer Params1 : register(b1)
{
    float4 tint1;
    float4x4 xform1;
    Light lights1[4];
    Material mat1;
    float weights1[8];
}
cbuffer Params2 : register(b2)
{
    float4 tint2;
    float4x4 xform2;
    Light lights2[4];
    Material mat2;
    float weights2[8];
}
cbuffer Params3 : register(b3)
{
    float4 tint3;
    float4x4 xform3;
    Light lights3[4];
    Material mat3;
    float weights3[8];
}
cbuffer Params4 : register(b4)
{
    float4 tint4;
    float4x4 xform4;
    Light lights4[4];
    Material mat4;
    float weights4[8];
}
cbuffer Params5 : register(b5)
{
    float4 tint5;
    float4x4 xform5;
    Light lights5[4];
    Material mat5;
    float weights5[8];
}
cbuffer Params6 : register(b6)
{
    float4 tint6;
    float4x4 xform6;
    Light lights6[4];
    Material mat6;
    float weights6[8];
}
cbuffer Params7 : register(b7)
{
    float4 tint7;
    float4x4 xform7;
    Light lights7[4];
    Material mat7;
    float weights7[8];
}
cbuffer Params8 : register(b8)
{
    float4 tint8;
    float4x4 xform8;
    Light lights8[4];
    Material mat8;
    float weights8[8];
}
cbuffer Params9 : register(b9)
{
    float4 tint9;
    float4x4 xform9;
    Light lights9[4];
    Material mat9;
    float weights9[8];
}
cbuffer Params10 : register(b10)
{
    float4 tint10;
    float4x4 xform10;
    Light lights10[4];
    Material mat10;
    float weights10[8];
}
cbuffer Params11 : register(b11)
{
    float4 tint11;
    float4x4 xform11;
    Light lights11[4];
    Material mat11;
    float weights11[8];
}
cbuffer Params12 : register(b12)
{
    float4 tint12;
    float4x4 xform12;
    Light lights12[4];
    Material mat12;
    float weights12[8];
}
cbuffer Params13 : register(b13)
{
    float4 tint13;
    float4x4 xform13;
    Light lights13[4];
    Material mat13;
    float weights13[8];
}
cbuffer Params14 : register(b14)
{
    float4 tint14;
    float4x4 xform14;
    Light lights14[4];
    Material mat14;
    float weights14[8];
}
cbuffer Params15 : register(b15)
{
    float4 tint15;
    float4x4 xform15;
    Light lights15[4];
    Material mat15;
    float weights15[8];
}
cbuffer Params16 : register(b16)
{
    float4 tint16;
    float4x4 xform16;
    Light lights16[4];
    Material mat16;
    float weights16[8];
}
cbuffer Params17 : register(b17)
{
    float4 tint17;
    float4x4 xform17;
    Light lights17[4];
    Material mat17;
    float weights17[8];
}
cbuffer Params18 : register(b18)
{
    float4 tint18;
    float4x4 xform18;
    Light lights18[4];
    Material mat18;
    float weights18[8];
}
cbuffer Params19 : register(b19)
{
    float4 tint19;
    float4x4 xform19;
    Light lights19[4];
    Material mat19;
    float weights19[8];
}
cbuffer Params20 : register(b20)
{
    float4 tint20;
    float4x4 xform20;
    Light lights20[4];
    Material mat20;
    float weights20[8];
}
cbuffer Params21 : register(b21)
{
    float4 tint21;
    float4x4 xform21;
    Light lights21[4];
    Material mat21;
    float weights21[8];
}
cbuffer Params22 : register(b22)
{
    float4 tint22;
    float4x4 xform22;
    Light lights22[4];
    Material mat22;
    float weights22[8];
}
cbuffer Params23 : register(b23)
{
    float4 tint23;
    float4x4 xform23;
    Light lights23[4];
    Material mat23;
    float weights23[8];
}
cbuffer Params24 : register(b24)
{
    float4 tint24;
    float4x4 xform24;
    Light lights24[4];
    Material mat24;
    float weights24[8];
}
cbuffer Params25 : register(b25)
{
    float4 tint25;
    float4x4 xform25;
    Light lights25[4];
    Material mat25;
    float weights25[8];
}
cbuffer Params26 : register(b26)
{
    float4 tint26;
    float4x4 xform26;
    Light lights26[4];
    Material mat26;
    float weights26[8];
}
cbuffer Params27 : register(b27)
{
    float4 tint27;
    float4x4 xform27;
    Light lights27[4];
    Material mat27;
    float weights27[8];
}
cbuffer Params28 : register(b28)
{
    float4 tint28;
    float4x4 xform28;
    Light lights28[4];
    Material mat28;
    float weights28[8];
}
cbuffer Params29 : register(b29)
{
    float4 tint29;
    float4x4 xform29;
    Light lights29[4];
    Material mat29;
    float weights29[8];
}
cbuffer Params30 : register(b30)
{
    float4 tint30;
    float4x4 xform30;
    Light lights30[4];
    Material mat30;
    float weights30[8];
}
cbuffer Params31 : register(b31)
{
    float4 tint31;
    float4x4 xform31;
    Light lights31[4];
    Material mat31;
    float weights31[8];
}
cbuffer Params32 : register(b32)
{
    float4 tint32;
    float4x4 xform32;
    Light lights32[4];
    Material mat32;
    float weights32[8];
}
cbuffer Params33 : register(b33)
{
    float4 tint33;
    float4x4 xform33;
    Light lights33[4];
    Material mat33;
    float weights33[8];
}
cbuffer Params34 : register(b34)
{
    float4 tint34;
    float4x4 xform34;
    Light lights34[4];
    Material mat34;
    float weights34[8];
}
cbuffer Params35 : register(b35)
{
    float4 tint35;
    float4x4 xform35;
    Light lights35[4];
    Material mat35;
    float weights35[8];
}
cbuffer Params36 : register(b36)
{
    float4 tint36;
    float4x4 xform36;
    Light lights36[4];
    Material mat36;
    float weights36[8];
}
cbuffer Params37 : register(b37)
{
    float4 tint37;
    float4x4 xform37;
    Light lights37[4];
    Material mat37;
    float weights37[8];
}
cbuffer Params38 : register(b38)
{
    float4 tint38;
    float4x4 xform38;
    Light lights38[4];
    Material mat38;
    float weights38[8];
}
cbuffer Params39 : register(b39)
{
    float4 tint39;
    float4x4 xform39;
    Light lights39[4];
    Material mat39;
    float weights39[8];
}
cbuffer Params40 : register(b40)
{
    float4 tint40;
    float4x4 xform40;
    Light lights40[4];
    Material mat40;
    float weights40[8];
}
cbuffer Params41 : register(b41)
{
    float4 tint41;
    float4x4 xform41;
    Light lights41[4];
    Material mat41;
    float weights41[8];
}
cbuffer Params42 : register(b42)
{
    float4 tint42;
    float4x4 xform42;
    Light lights42[4];
    Material mat42;
    float weights42[8];
}
cbuffer Params43 : register(b43)
{
    float4 tint43;
    float4x4 xform43;
    Light lights43[4];
    Material mat43;
    float weights43[8];
}
cbuffer Params44 : register(b44)
{
    float4 tint44;
    float4x4 xform44;
    Light lights44[4];
    Material mat44;
    float weights44[8];
}
cbuffer Params45 : register(b45)
{
    float4 tint45;
    float4x4 xform45;
    Light lights45[4];
    Material mat45;
    float weights45[8];
}
cbuffer Params46 : register(b46)
{
    float4 tint46;
    float4x4 xform46;
    Light lights46[4];
    Material mat46;
    float weights46[8];
}
cbuffer Params47 : register(b47)
{
    float4 tint47;
    float4x4 xform47;
    Light lights47[4];
    Material mat47;
    float weights47[8];
}
cbuffer Params48 : register(b48)
{
    float4 tint48;
    float4x4 xform48;
    Light lights48[4];
    Material mat48;
    float weights48[8];
}
cbuffer Params49 : register(b49)
{
    float4 tint49;
    float4x4 xform49;
    Light lights49[4];
    Material mat49;
    float weights49[8];
}
cbuffer Params50 : register(b50)
{
    float4 tint50;
    float4x4 xform50;
    Light lights50[4];
    Material mat50;
    float weights50[8];
}
cbuffer Params51 : register(b51)
{
    float4 tint51;
    float4x4 xform51;
    Light lights51[4];
    Material mat51;
    float weights51[8];
}
cbuffer Params52 : register(b52)
{
    float4 tint52;
    float4x4 xform52;
    Light lights52[4];
    Material mat52;
    float weights52[8];
}
cbuffer Params53 : register(b53)
{
    float4 tint53;
    float4x4 xform53;
    Light lights53[4];
    Material mat53;
    float weights53[8];
}
cbuffer Params54 : register(b54)
{
    float4 tint54;
    float4x4 xform54;
    Light lights54[4];
    Material mat54;
    float weights54[8];
}
cbuffer Params55 : register(b55)
{
    float4 tint55;
    float4x4 xform55;
    Light lights55[4];
    Material mat55;
    float weights55[8];
}
cbuffer Params56 : register(b56)
{
    float4 tint56;
    float4x4 xform56;
    Light lights56[4];
    Material mat56;
    float weights56[8];
}
cbuffer Params57 : register(b57)
{
    float4 tint57;
    float4x4 xform57;
    Light lights57[4];
    Material mat57;
    float weights57[8];
}
cbuffer Params58 : register(b58)
{
    float4 tint58;
    float4x4 xform58;
    Light lights58[4];
    Material mat58;
    float weights58[8];
}
cbuffer Params59 : register(b59)
{
    float4 tint59;
    float4x4 xform59;
    Light lights59[4];
    Material mat59;
    float weights59[8];
}
cbuffer Params60 : register(b60)
{
    float4 tint60;
    float4x4 xform60;
    Light lights60[4];
    Material mat60;
    float weights60[8];
}
cbuffer Params61 : register(b61)
{
    float4 tint61;
    float4x4 xform61;
    Light lights61[4];
    Material mat61;
    float weights61[8];
}
cbuffer Params62 : register(b62)
{
    float4 tint62;
    float4x4 xform62;
    Light lights62[4];
    Material mat62;
    float weights62[8];
}
cbuffer Params63 : register(b63)
{
    float4 tint63;
    float4x4 xform63;
    Light lights63[4];
    Material mat63;
    float weights63[8];
}
cbuffer Params64 : register(b64)
{
    float4 tint64;
    float4x4 xform64;
    Light lights64[4];
    Material mat64;
    float weights64[8];
}
cbuffer Params65 : register(b65)
{
    float4 tint65;
    float4x4 xform65;
    Light lights65[4];
    Material mat65;
    float weights65[8];
}
cbuffer Params66 : register(b66)
{
    float4 tint66;
    float4x4 xform66;
    Light lights66[4];
    Material mat66;
    float weights66[8];
}
cbuffer Params67 : register(b67)
{
    float4 tint67;
    float4x4 xform67;
    Light lights67[4];
    Material mat67;
    float weights67[8];
}
cbuffer Params68 : register(b68)
{
    float4 tint68;
    float4x4 xform68;
    Light lights68[4];
    Material mat68;
    float weights68[8];
}
cbuffer Params69 : register(b69)
{
    float4 tint69;
    float4x4 xform69;
    Light lights69[4];
    Material mat69;
    float weights69[8];
}
cbuffer Params70 : register(b70)
{
    float4 tint70;
    float4x4 xform70;
    Light lights70[4];
    Material mat70;
    float weights70[8];
}
cbuffer Params71 : register(b71)
{
    float4 tint71;
    float4x4 xform71;
    Light lights71[4];
    Material mat71;
    float weights71[8];
}
cbuffer Params72 : register(b72)
{
    float4 tint72;
    float4x4 xform72;
    Light lights72[4];
    Material mat72;
    float weights72[8];
}
cbuffer Params73 : register(b73)
{
    float4 tint73;
    float4x4 xform73;
    Light lights73[4];
    Material mat73;
    float weights73[8];
}
cbuffer Params74 : register(b74)
{
    float4 tint74;
    float4x4 xform74;
    Light lights74[4];
    Material mat74;
    float weights74[8];
}
cbuffer Params75 : register(b75)
{
    float4 tint75;
    float4x4 xform75;
    Light lights75[4];
    Material mat75;
    float weights75[8];
}
cbuffer Params76 : register(b76)
{
    float4 tint76;
    float4x4 xform76;
    Light lights76[4];
    Material mat76;
    float weights76[8];
}
cbuffer Params77 : register(b77)
{
    float4 tint77;
    float4x4 xform77;
    Light lights77[4];
    Material mat77;
    float weights77[8];
}
cbuffer Params78 : register(b78)
{
    float4 tint78;
    float4x4 xform78;
    Light lights78[4];
    Material mat78;
    float weights78[8];
}
cbuffer Params79 : register(b79)
{
    float4 tint79;
    float4x4 xform79;
    Light lights79[4];
    Material mat79;
    float weights79[8];
}
cbuffer Params80 : register(b80)
{
    float4 tint80;
    float4x4 xform80;
    Light lights80[4];
    Material mat80;
    float weights80[8];
}
cbuffer Params81 : register(b81)
{
    float4 tint81;
    float4x4 xform81;
    Light lights81[4];
    Material mat81;
    float weights81[8];
}
cbuffer Params82 : register(b82)
{
    float4 tint82;
    float4x4 xform82;
    Light lights82[4];
    Material mat82;
    float weights82[8];
}
cbuffer Params83 : register(b83)
{
    float4 tint83;
    float4x4 xform83;
    Light lights83[4];
    Material mat83;
    float weights83[8];
}
cbuffer Params84 : register(b84)
{
    float4 tint84;
    float4x4 xform84;
    Light lights84[4];
    Material mat84;
    float weights84[8];
}
cbuffer Params85 : register(b85)
{
    float4 tint85;
    float4x4 xform85;
    Light lights85[4];
    Material mat85;
    float weights85[8];
}
cbuffer Params86 : register(b86)
{
    float4 tint86;
    float4x4 xform86;
    Light lights86[4];
    Material mat86;
    float weights86[8];
}
cbuffer Params87 : register(b87)
{
    float4 tint87;
    float4x4 xform87;
    Light lights87[4];
    Material mat87;
    float weights87[8];
}
cbuffer Params88 : register(b88)
{
    float4 tint88;
    float4x4 xform88;
    Light lights88[4];
    Material mat88;
    float weights88[8];
}
cbuffer Params89 : register(b89)
{
    float4 tint89;
    float4x4 xform89;
    Light lights89[4];
    Material mat89;
    float weights89[8];
}
cbuffer Params90 : register(b90)
{
    float4 tint90;
    float4x4 xform90;
    Light lights90[4];
    Material mat90;
    float weights90[8];
}
cbuffer Params91 : register(b91)
{
    float4 tint91;
    float4x4 xform91;
    Light lights91[4];
    Material mat91;
    float weights91[8];
}
cbuffer Params92 : register(b92)
{
    float4 tint92;
    float4x4 xform92;
    Light lights92[4];
    Material mat92;
    float weights92[8];
}
cbuffer Params93 : register(b93)
{
    float4 tint93;
    float4x4 xform93;
    Light lights93[4];
    Material mat93;
    float weights93[8];
}
cbuffer Params94 : register(b94)
{
    float4 tint94;
    float4x4 xform94;
    Light lights94[4];
    Material mat94;
    float weights94[8];
}
cbuffer Params95 : register(b95)
{
    float4 tint95;
    float4x4 xform95;
    Light lights95[4];
    Material mat95;
    float weights95[8];
}
cbuffer Params96 : register(b96)
{
    float4 tint96;
    float4x4 xform96;
    Light lights96[4];
    Material mat96;
    float weights96[8];
}
cbuffer Params97 : register(b97)
{
    float4 tint97;
    float4x4 xform97;
    Light lights97[4];
    Material mat97;
    float weights97[8];
}
cbuffer Params98 : register(b98)
{
    float4 tint98;
    float4x4 xform98;
    Light lights98[4];
    Material mat98;
    float weights98[8];
}
cbuffer Params99 : register(b99)
{
    float4 tint99;
    float4x4 xform99;
    Light lights99[4];
    Material mat99;
    float weights99[8];
}
cbuffer Params100 : register(b100)
{
    float4 tint100;
    float4x4 xform100;
    Light lights100[4];
    Material mat100;
    float weights100[8];
}
cbuffer Params101 : register(b101)
{
    float4 tint101;
    float4x4 xform101;
    Light lights101[4];
    Material mat101;
    float weights101[8];
}
cbuffer Params102 : register(b102)
{
    float4 tint102;
    float4x4 xform102;
    Light lights102[4];
    Material mat102;
    float weights102[8];
}
cbuffer Params103 : register(b103)
{
    float4 tint103;
    float4x4 xform103;
    Light lights103[4];
    Material mat103;
    float weights103[8];
}
cbuffer Params104 : register(b104)
{
    float4 tint104;
    float4x4 xform104;
    Light lights104[4];
    Material mat104;
    float weights104[8];
}
cbuffer Params105 : register(b105)
{
    float4 tint105;
    float4x4 xform105;
    Light lights105[4];
    Material mat105;
    float weights105[8];
}
cbuffer Params106 : register(b106)
{
    float4 tint106;
    float4x4 xform106;
    Light lights106[4];
    Material mat106;
    float weights106[8];
}
cbuffer Params107 : register(b107)
{
    float4 tint107;
    float4x4 xform107;
    Light lights107[4];
    Material mat107;
    float weights107[8];
}
cbuffer Params108 : register(b108)
{
    float4 tint108;
    float4x4 xform108;
    Light lights108[4];
    Material mat108;
    float weights108[8];
}
cbuffer Params109 : register(b109)
{
    float4 tint109;
    float4x4 xform109;
    Light lights109[4];
    Material mat109;
    float weights109[8];
}
cbuffer Params110 : register(b110)
{
    float4 tint110;
    float4x4 xform110;
    Light lights110[4];
    Material mat110;
    float weights110[8];
}
cbuffer Params111 : register(b111)
{
    float4 tint111;
    float4x4 xform111;
    Light lights111[4];
    Material mat111;
    float weights111[8];
}
cbuffer Params112 : register(b112)
{
    float4 tint112;
    float4x4 xform112;
    Light lights112[4];
    Material mat112;
    float weights112[8];
}
cbuffer Params113 : register(b113)
{
    float4 tint113;
    float4x4 xform113;
    Light lights113[4];
    Material mat113;
    float weights113[8];
}
cbuffer Params114 : register(b114)
{
    float4 tint114;
    float4x4 xform114;
    Light lights114[4];
    Material mat114;
    float weights114[8];
}
cbuffer Params115 : register(b115)
{
    float4 tint115;
    float4x4 xform115;
    Light lights115[4];
    Material mat115;
    float weights115[8];
}
cbuffer Params116 : register(b116)
{
    float4 tint116;
    float4x4 xform116;
    Light lights116[4];
    Material mat116;
    float weights116[8];
}
cbuffer Params117 : register(b117)
{
    float4 tint117;
    float4x4 xform117;
    Light lights117[4];
    Material mat117;
    float weights117[8];
}
cbuffer Params118 : register(b118)
{
    float4 tint118;
    float4x4 xform118;
    Light lights118[4];
    Material mat118;
    float weights118[8];
}
cbuffer Params119 : register(b119)
{
    float4 tint119;
    float4x4 xform119;
    Light lights119[4];
    Material mat119;
    float weights119[8];
}

RWStructuredBuffer<float> outBuf;

[shader("compute")]
[numthreads(1,1,1)]
void computeMain()
{
    float acc = 0.0;
    acc += tint0.x + xform0[0][0] + lights0[0].intensity + mat0.metal + weights0[0];
    acc += tint1.x + xform1[0][0] + lights1[0].intensity + mat1.metal + weights1[0];
    acc += tint2.x + xform2[0][0] + lights2[0].intensity + mat2.metal + weights2[0];
    acc += tint3.x + xform3[0][0] + lights3[0].intensity + mat3.metal + weights3[0];
    acc += tint4.x + xform4[0][0] + lights4[0].intensity + mat4.metal + weights4[0];
    acc += tint5.x + xform5[0][0] + lights5[0].intensity + mat5.metal + weights5[0];
    acc += tint6.x + xform6[0][0] + lights6[0].intensity + mat6.metal + weights6[0];
    acc += tint7.x + xform7[0][0] + lights7[0].intensity + mat7.metal + weights7[0];
    acc += tint8.x + xform8[0][0] + lights8[0].intensity + mat8.metal + weights8[0];
    acc += tint9.x + xform9[0][0] + lights9[0].intensity + mat9.metal + weights9[0];
    acc += tint10.x + xform10[0][0] + lights10[0].intensity + mat10.metal + weights10[0];
    acc += tint11.x + xform11[0][0] + lights11[0].intensity + mat11.metal + weights11[0];
    acc += tint12.x + xform12[0][0] + lights12[0].intensity + mat12.metal + weights12[0];
    acc += tint13.x + xform13[0][0] + lights13[0].intensity + mat13.metal + weights13[0];
    acc += tint14.x + xform14[0][0] + lights14[0].intensity + mat14.metal + weights14[0];
    acc += tint15.x + xform15[0][0] + lights15[0].intensity + mat15.metal + weights15[0];
    acc += tint16.x + xform16[0][0] + lights16[0].intensity + mat16.metal + weights16[0];
    acc += tint17.x + xform17[0][0] + lights17[0].intensity + mat17.metal + weights17[0];
    acc += tint18.x + xform18[0][0] + lights18[0].intensity + mat18.metal + weights18[0];
    acc += tint19.x + xform19[0][0] + lights19[0].intensity + mat19.metal + weights19[0];
    acc += tint20.x + xform20[0][0] + lights20[0].intensity + mat20.metal + weights20[0];
    acc += tint21.x + xform21[0][0] + lights21[0].intensity + mat21.metal + weights21[0];
    acc += tint22.x + xform22[0][0] + lights22[0].intensity + mat22.metal + weights22[0];
    acc += tint23.x + xform23[0][0] + lights23[0].intensity + mat23.metal + weights23[0];
    acc += tint24.x + xform24[0][0] + lights24[0].intensity + mat24.metal + weights24[0];
    acc += tint25.x + xform25[0][0] + lights25[0].intensity + mat25.metal + weights25[0];
    acc += tint26.x + xform26[0][0] + lights26[0].intensity + mat26.metal + weights26[0];
    acc += tint27.x + xform27[0][0] + lights27[0].intensity + mat27.metal + weights27[0];
    acc += tint28.x + xform28[0][0] + lights28[0].intensity + mat28.metal + weights28[0];
    acc += tint29.x + xform29[0][0] + lights29[0].intensity + mat29.metal + weights29[0];
    acc += tint30.x + xform30[0][0] + lights30[0].intensity + mat30.metal + weights30[0];
    acc += tint31.x + xform31[0][0] + lights31[0].intensity + mat31.metal + weights31[0];
    acc += tint32.x + xform32[0][0] + lights32[0].intensity + mat32.metal + weights32[0];
    acc += tint33.x + xform33[0][0] + lights33[0].intensity + mat33.metal + weights33[0];
    acc += tint34.x + xform34[0][0] + lights34[0].intensity + mat34.metal + weights34[0];
    acc += tint35.x + xform35[0][0] + lights35[0].intensity + mat35.metal + weights35[0];
    acc += tint36.x + xform36[0][0] + lights36[0].intensity + mat36.metal + weights36[0];
    acc += tint37.x + xform37[0][0] + lights37[0].intensity + mat37.metal + weights37[0];
    acc += tint38.x + xform38[0][0] + lights38[0].intensity + mat38.metal + weights38[0];
    acc += tint39.x + xform39[0][0] + lights39[0].intensity + mat39.metal + weights39[0];
    acc += tint40.x + xform40[0][0] + lights40[0].intensity + mat40.metal + weights40[0];
    acc += tint41.x + xform41[0][0] + lights41[0].intensity + mat41.metal + weights41[0];
    acc += tint42.x + xform42[0][0] + lights42[0].intensity + mat42.metal + weights42[0];
    acc += tint43.x + xform43[0][0] + lights43[0].intensity + mat43.metal + weights43[0];
    acc += tint44.x + xform44[0][0] + lights44[0].intensity + mat44.metal + weights44[0];
    acc += tint45.x + xform45[0][0] + lights45[0].intensity + mat45.metal + weights45[0];
    acc += tint46.x + xform46[0][0] + lights46[0].intensity + mat46.metal + weights46[0];
    acc += tint47.x + xform47[0][0] + lights47[0].intensity + mat47.metal + weights47[0];
    acc += tint48.x + xform48[0][0] + lights48[0].intensity + mat48.metal + weights48[0];
    acc += tint49.x + xform49[0][0] + lights49[0].intensity + mat49.metal + weights49[0];
    acc += tint50.x + xform50[0][0] + lights50[0].intensity + mat50.metal + weights50[0];
    acc += tint51.x + xform51[0][0] + lights51[0].intensity + mat51.metal + weights51[0];
    acc += tint52.x + xform52[0][0] + lights52[0].intensity + mat52.metal + weights52[0];
    acc += tint53.x + xform53[0][0] + lights53[0].intensity + mat53.metal + weights53[0];
    acc += tint54.x + xform54[0][0] + lights54[0].intensity + mat54.metal + weights54[0];
    acc += tint55.x + xform55[0][0] + lights55[0].intensity + mat55.metal + weights55[0];
    acc += tint56.x + xform56[0][0] + lights56[0].intensity + mat56.metal + weights56[0];
    acc += tint57.x + xform57[0][0] + lights57[0].intensity + mat57.metal + weights57[0];
    acc += tint58.x + xform58[0][0] + lights58[0].intensity + mat58.metal + weights58[0];
    acc += tint59.x + xform59[0][0] + lights59[0].intensity + mat59.metal + weights59[0];
    acc += tint60.x + xform60[0][0] + lights60[0].intensity + mat60.metal + weights60[0];
    acc += tint61.x + xform61[0][0] + lights61[0].intensity + mat61.metal + weights61[0];
    acc += tint62.x + xform62[0][0] + lights62[0].intensity + mat62.metal + weights62[0];
    acc += tint63.x + xform63[0][0] + lights63[0].intensity + mat63.metal + weights63[0];
    acc += tint64.x + xform64[0][0] + lights64[0].intensity + mat64.metal + weights64[0];
    acc += tint65.x + xform65[0][0] + lights65[0].intensity + mat65.metal + weights65[0];
    acc += tint66.x + xform66[0][0] + lights66[0].intensity + mat66.metal + weights66[0];
    acc += tint67.x + xform67[0][0] + lights67[0].intensity + mat67.metal + weights67[0];
    acc += tint68.x + xform68[0][0] + lights68[0].intensity + mat68.metal + weights68[0];
    acc += tint69.x + xform69[0][0] + lights69[0].intensity + mat69.metal + weights69[0];
    acc += tint70.x + xform70[0][0] + lights70[0].intensity + mat70.metal + weights70[0];
    acc += tint71.x + xform71[0][0] + lights71[0].intensity + mat71.metal + weights71[0];
    acc += tint72.x + xform72[0][0] + lights72[0].intensity + mat72.metal + weights72[0];
    acc += tint73.x + xform73[0][0] + lights73[0].intensity + mat73.metal + weights73[0];
    acc += tint74.x + xform74[0][0] + lights74[0].intensity + mat74.metal + weights74[0];
    acc += tint75.x + xform75[0][0] + lights75[0].intensity + mat75.metal + weights75[0];
    acc += tint76.x + xform76[0][0] + lights76[0].intensity + mat76.metal + weights76[0];
    acc += tint77.x + xform77[0][0] + lights77[0].intensity + mat77.metal + weights77[0];
    acc += tint78.x + xform78[0][0] + lights78[0].intensity + mat78.metal + weights78[0];
    acc += tint79.x + xform79[0][0] + lights79[0].intensity + mat79.metal + weights79[0];
    acc += tint80.x + xform80[0][0] + lights80[0].intensity + mat80.metal + weights80[0];
    acc += tint81.x + xform81[0][0] + lights81[0].intensity + mat81.metal + weights81[0];
    acc += tint82.x + xform82[0][0] + lights82[0].intensity + mat82.metal + weights82[0];
    acc += tint83.x + xform83[0][0] + lights83[0].intensity + mat83.metal + weights83[0];
    acc += tint84.x + xform84[0][0] + lights84[0].intensity + mat84.metal + weights84[0];
    acc += tint85.x + xform85[0][0] + lights85[0].intensity + mat85.metal + weights85[0];
    acc += tint86.x + xform86[0][0] + lights86[0].intensity + mat86.metal + weights86[0];
    acc += tint87.x + xform87[0][0] + lights87[0].intensity + mat87.metal + weights87[0];
    acc += tint88.x + xform88[0][0] + lights88[0].intensity + mat88.metal + weights88[0];
    acc += tint89.x + xform89[0][0] + lights89[0].intensity + mat89.metal + weights89[0];
    acc += tint90.x + xform90[0][0] + lights90[0].intensity + mat90.metal + weights90[0];
    acc += tint91.x + xform91[0][0] + lights91[0].intensity + mat91.metal + weights91[0];
    acc += tint92.x + xform92[0][0] + lights92[0].intensity + mat92.metal + weights92[0];
    acc += tint93.x + xform93[0][0] + lights93[0].intensity + mat93.metal + weights93[0];
    acc += tint94.x + xform94[0][0] + lights94[0].intensity + mat94.metal + weights94[0];
    acc += tint95.x + xform95[0][0] + lights95[0].intensity + mat95.metal + weights95[0];
    acc += tint96.x + xform96[0][0] + lights96[0].intensity + mat96.metal + weights96[0];
    acc += tint97.x + xform97[0][0] + lights97[0].intensity + mat97.metal + weights97[0];
    acc += tint98.x + xform98[0][0] + lights98[0].intensity + mat98.metal + weights98[0];
    acc += tint99.x + xform99[0][0] + lights99[0].intensity + mat99.metal + weights99[0];
    acc += tint100.x + xform100[0][0] + lights100[0].intensity + mat100.metal + weights100[0];
    acc += tint101.x + xform101[0][0] + lights101[0].intensity + mat101.metal + weights101[0];
    acc += tint102.x + xform102[0][0] + lights102[0].intensity + mat102.metal + weights102[0];
    acc += tint103.x + xform103[0][0] + lights103[0].intensity + mat103.metal + weights103[0];
    acc += tint104.x + xform104[0][0] + lights104[0].intensity + mat104.metal + weights104[0];
    acc += tint105.x + xform105[0][0] + lights105[0].intensity + mat105.metal + weights105[0];
    acc += tint106.x + xform106[0][0] + lights106[0].intensity + mat106.metal + weights106[0];
    acc += tint107.x + xform107[0][0] + lights107[0].intensity + mat107.metal + weights107[0];
    acc += tint108.x + xform108[0][0] + lights108[0].intensity + mat108.metal + weights108[0];
    acc += tint109.x + xform109[0][0] + lights109[0].intensity + mat109.metal + weights109[0];
    acc += tint110.x + xform110[0][0] + lights110[0].intensity + mat110.metal + weights110[0];
    acc += tint111.x + xform111[0][0] + lights111[0].intensity + mat111.metal + weights111[0];
    acc += tint112.x + xform112[0][0] + lights112[0].intensity + mat112.metal + weights112[0];
    acc += tint113.x + xform113[0][0] + lights113[0].intensity + mat113.metal + weights113[0];
    acc += tint114.x + xform114[0][0] + lights114[0].intensity + mat114.metal + weights114[0];
    acc += tint115.x + xform115[0][0] + lights115[0].intensity + mat115.metal + weights115[0];
    acc += tint116.x + xform116[0][0] + lights116[0].intensity + mat116.metal + weights116[0];
    acc += tint117.x + xform117[0][0] + lights117[0].intensity + mat117.metal + weights117[0];
    acc += tint118.x + xform118[0][0] + lights118[0].intensity + mat118.metal + weights118[0];
    acc += tint119.x + xform119[0][0] + lights119[0].intensity + mat119.metal + weights119[0];
    outBuf[0] = acc;
}