@aardworx/wombat.rendering 0.9.32 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/runtime/derivedModes/kernelCodegen.d.ts +90 -0
  2. package/dist/runtime/derivedModes/kernelCodegen.d.ts.map +1 -0
  3. package/dist/runtime/derivedModes/kernelCodegen.js +623 -0
  4. package/dist/runtime/derivedModes/kernelCodegen.js.map +1 -0
  5. package/dist/runtime/derivedModes/modeKeyCpu.d.ts.map +1 -1
  6. package/dist/runtime/derivedModes/modeKeyCpu.js +23 -67
  7. package/dist/runtime/derivedModes/modeKeyCpu.js.map +1 -1
  8. package/dist/runtime/derivedModes/partitionDispatcher.d.ts +79 -0
  9. package/dist/runtime/derivedModes/partitionDispatcher.d.ts.map +1 -0
  10. package/dist/runtime/derivedModes/partitionDispatcher.js +303 -0
  11. package/dist/runtime/derivedModes/partitionDispatcher.js.map +1 -0
  12. package/dist/runtime/derivedModes/partitionKernel.d.ts +12 -0
  13. package/dist/runtime/derivedModes/partitionKernel.d.ts.map +1 -0
  14. package/dist/runtime/derivedModes/partitionKernel.js +127 -0
  15. package/dist/runtime/derivedModes/partitionKernel.js.map +1 -0
  16. package/dist/runtime/derivedModes/partitionKernelLayout.d.ts +4 -0
  17. package/dist/runtime/derivedModes/partitionKernelLayout.d.ts.map +1 -0
  18. package/dist/runtime/derivedModes/partitionKernelLayout.js +24 -0
  19. package/dist/runtime/derivedModes/partitionKernelLayout.js.map +1 -0
  20. package/dist/runtime/derivedModes/rule.d.ts +38 -86
  21. package/dist/runtime/derivedModes/rule.d.ts.map +1 -1
  22. package/dist/runtime/derivedModes/rule.js +34 -74
  23. package/dist/runtime/derivedModes/rule.js.map +1 -1
  24. package/dist/runtime/derivedUniforms/dispatch.d.ts +10 -8
  25. package/dist/runtime/derivedUniforms/dispatch.d.ts.map +1 -1
  26. package/dist/runtime/derivedUniforms/dispatch.js +31 -18
  27. package/dist/runtime/derivedUniforms/dispatch.js.map +1 -1
  28. package/dist/runtime/derivedUniforms/marker.d.ts +90 -11
  29. package/dist/runtime/derivedUniforms/marker.d.ts.map +1 -1
  30. package/dist/runtime/derivedUniforms/marker.js +161 -15
  31. package/dist/runtime/derivedUniforms/marker.js.map +1 -1
  32. package/dist/runtime/derivedUniforms/sceneIntegration.d.ts +25 -6
  33. package/dist/runtime/derivedUniforms/sceneIntegration.d.ts.map +1 -1
  34. package/dist/runtime/derivedUniforms/sceneIntegration.js +61 -20
  35. package/dist/runtime/derivedUniforms/sceneIntegration.js.map +1 -1
  36. package/dist/runtime/heapEligibility.d.ts.map +1 -1
  37. package/dist/runtime/heapEligibility.js +22 -2
  38. package/dist/runtime/heapEligibility.js.map +1 -1
  39. package/dist/runtime/heapScene/chunkedArena.d.ts +76 -0
  40. package/dist/runtime/heapScene/chunkedArena.d.ts.map +1 -0
  41. package/dist/runtime/heapScene/chunkedArena.js +223 -0
  42. package/dist/runtime/heapScene/chunkedArena.js.map +1 -0
  43. package/dist/runtime/heapScene/freelist.d.ts +50 -0
  44. package/dist/runtime/heapScene/freelist.d.ts.map +1 -0
  45. package/dist/runtime/heapScene/freelist.js +160 -0
  46. package/dist/runtime/heapScene/freelist.js.map +1 -0
  47. package/dist/runtime/heapScene/growBuffer.d.ts +23 -2
  48. package/dist/runtime/heapScene/growBuffer.d.ts.map +1 -1
  49. package/dist/runtime/heapScene/growBuffer.js +35 -3
  50. package/dist/runtime/heapScene/growBuffer.js.map +1 -1
  51. package/dist/runtime/heapScene/pools.d.ts +65 -42
  52. package/dist/runtime/heapScene/pools.d.ts.map +1 -1
  53. package/dist/runtime/heapScene/pools.js +206 -134
  54. package/dist/runtime/heapScene/pools.js.map +1 -1
  55. package/dist/runtime/heapScene.d.ts +12 -0
  56. package/dist/runtime/heapScene.d.ts.map +1 -1
  57. package/dist/runtime/heapScene.js +949 -167
  58. package/dist/runtime/heapScene.js.map +1 -1
  59. package/dist/runtime/hybridScene.d.ts +7 -0
  60. package/dist/runtime/hybridScene.d.ts.map +1 -1
  61. package/dist/runtime/hybridScene.js +1 -0
  62. package/dist/runtime/hybridScene.js.map +1 -1
  63. package/dist/runtime/index.d.ts +4 -3
  64. package/dist/runtime/index.d.ts.map +1 -1
  65. package/dist/runtime/index.js +4 -3
  66. package/dist/runtime/index.js.map +1 -1
  67. package/dist/runtime/renderTask.d.ts +5 -0
  68. package/dist/runtime/renderTask.d.ts.map +1 -1
  69. package/dist/runtime/renderTask.js +1 -0
  70. package/dist/runtime/renderTask.js.map +1 -1
  71. package/dist/runtime/runtime.d.ts +6 -0
  72. package/dist/runtime/runtime.d.ts.map +1 -1
  73. package/dist/runtime/runtime.js +1 -0
  74. package/dist/runtime/runtime.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/runtime/derivedModes/kernelCodegen.ts +673 -0
  77. package/src/runtime/derivedModes/modeKeyCpu.ts +22 -60
  78. package/src/runtime/derivedModes/partitionDispatcher.ts +349 -0
  79. package/src/runtime/derivedModes/partitionKernelLayout.ts +25 -0
  80. package/src/runtime/derivedModes/rule.ts +66 -145
  81. package/src/runtime/derivedUniforms/dispatch.ts +48 -21
  82. package/src/runtime/derivedUniforms/marker.ts +210 -16
  83. package/src/runtime/derivedUniforms/sceneIntegration.ts +67 -20
  84. package/src/runtime/heapEligibility.ts +22 -1
  85. package/src/runtime/heapScene/chunkedArena.ts +238 -0
  86. package/src/runtime/heapScene/freelist.ts +161 -0
  87. package/src/runtime/heapScene/growBuffer.ts +39 -2
  88. package/src/runtime/heapScene/pools.ts +231 -143
  89. package/src/runtime/heapScene.ts +1134 -161
  90. package/src/runtime/hybridScene.ts +8 -0
  91. package/src/runtime/index.ts +12 -9
  92. package/src/runtime/renderTask.ts +6 -0
  93. package/src/runtime/runtime.ts +7 -0
  94. package/src/runtime/derivedModes/gpuDispatcher.ts +0 -226
  95. package/src/runtime/derivedModes/gpuKernel.ts +0 -98
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/dispatch.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,4EAA4E;AAC5E,oFAAoF;AACpF,wFAAwF;AACxF,+EAA+E;AAC/E,0DAA0D;AAI1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AAE7D,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,GAAc,EACd,MAAoB,EACpB,KAA6B;IAE7B,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO;YAAE,OAAO,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,OAAO;YAAE,OAAO,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO;IACxB,MAAM,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAC9G,CAAC;AAWD,SAAS,UAAU;IACjB,OAAO;QACL,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;QACzF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAC/E,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;QACzF,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;KAChF,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU;IACG,MAAM,CAAY;IAC3B,GAAG,CAAwB;IAC3B,WAAW,GAAG,CAAC,CAAC;IAChB,WAAW,GAAG,CAAC,CAAC,CAAC;IAChB,QAAQ,CAAY;IACZ,QAAQ,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,aAAa,GAAG,CAAC,CAAC,CAAC;IAE3B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;YAClC,KAAK,EAAE,6BAA6B;YACpC,IAAI,EAAE,EAAE,EAAE,2BAA2B;YACrC,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;SACxD,CAAC,CAAC;IACL,CAAC;IAED,2FAA2F;IAC3F,IAAI,CAAC,OAAsB;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,GAAG,GAAG,SAAS;gBAAE,GAAG,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAClC,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;aACxD,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,wCAAwC;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3F,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAClC,KAAK,EAAE,8BAA8B;gBACrC,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;aACxD,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,4FAA4F;AAC5F,MAAM,YAAY;IACC,MAAM,CAAY;IAC1B,GAAG,CAAqB;IACzB,IAAI,CAAiC;IACrC,YAAY,GAAG,CAAC,CAAC,CAAC;IAClB,WAAW,GAAG,CAAC,CAAC,CAAC;IAEzB,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CAAC,QAAgC,EAAE,SAAiB;QAC1D,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxG,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;YAC5C,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAUD,MAAM,OAAO,yBAAyB;IACnB,MAAM,CAAY;IAClB,SAAS,CAA2B;IACpC,IAAI,CAAe;IACnB,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,YAAY,MAAiB,EAAE,SAAmC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;gEAE4D;IAC5D,WAAW,CACT,GAAsB,EACtB,QAAgC,EAChC,OAAsB,EACtB,cAA+B;QAE/B,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,OAAsB;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,CAAC,GAAG;gBACF,GAAG,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;aACzC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,SAAS,CAAC,KAAiB,EAAE,IAAe;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpH,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC3C,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YACrB,OAAO,EAAE;gBACP,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC5C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAC1C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAC1C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;aACzD;SACF,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;CACF"}
@@ -2,15 +2,36 @@ import type { Expr, Type } from "@aardworx/wombat.shader/ir";
2
2
  import { type DerivedRule } from "./rule.js";
3
3
  /** Leaf type names accepted by `DerivedExpr.as(...)`. */
4
4
  export type LeafTypeName = "f32" | "u32" | "i32" | "vec2" | "vec3" | "vec4" | "mat3" | "mat4";
5
- /** A traced expression in a `derivedUniform` builder. */
5
+ /** Convertible-to-DerivedExpr operand. `aardvark-operators` rewrites
6
+ * e.g. `det < 0` to `det.lt(0)` — so every binary method accepts a
7
+ * raw number and lifts it to a Const matching the receiver's
8
+ * numeric type (f32 / u32 / i32). */
9
+ export type DerivedOperand = DerivedExpr | number;
10
+ /**
11
+ * A traced expression in a `derivedUniform` / `derivedMode` builder.
12
+ *
13
+ * Plays nicely with `boperators` (https://npmjs.com/package/boperators):
14
+ * the named-static operator methods (`static ["+"]`, `static ["*"]`,
15
+ * `static ["<"]`, …) make `a + b`, `a * b`, `a < b`, etc. on
16
+ * DerivedExprs rewrite to those statics at build time. Without the
17
+ * plugin, the same logic is reachable via the instance methods
18
+ * (`.add`, `.mul`, `.lt`, …).
19
+ *
20
+ * Ternary `a < b ? x : y` isn't rewritten — call `.select` on the
21
+ * resulting bool DerivedExpr:
22
+ *
23
+ * (det < 0).select(flipped, declared)
24
+ */
6
25
  export declare class DerivedExpr {
7
26
  readonly ir: Expr;
8
27
  constructor(ir: Expr);
9
28
  get type(): Type;
10
29
  /** Matrix product `this · other` (also matrix·vector / vector·matrix by operand types). */
11
- mul(other: DerivedExpr): DerivedExpr;
12
- add(other: DerivedExpr): DerivedExpr;
13
- sub(other: DerivedExpr): DerivedExpr;
30
+ mul(other: DerivedOperand): DerivedExpr;
31
+ add(other: DerivedOperand): DerivedExpr;
32
+ sub(other: DerivedOperand): DerivedExpr;
33
+ div(other: DerivedOperand): DerivedExpr;
34
+ mod(other: DerivedOperand): DerivedExpr;
14
35
  neg(): DerivedExpr;
15
36
  /** Inverse (of a constituent trafo this reads its stored backward half; otherwise unsupported in codegen). */
16
37
  inverse(): DerivedExpr;
@@ -51,18 +72,76 @@ export declare class DerivedExpr {
51
72
  log2(): DerivedExpr;
52
73
  sign(): DerivedExpr;
53
74
  normalize(): DerivedExpr;
54
- min(o: DerivedExpr): DerivedExpr;
55
- max(o: DerivedExpr): DerivedExpr;
56
- pow(o: DerivedExpr): DerivedExpr;
57
- atan2(o: DerivedExpr): DerivedExpr;
58
- step(edge: DerivedExpr): DerivedExpr;
59
- clamp(lo: DerivedExpr, hi: DerivedExpr): DerivedExpr;
60
- mix(o: DerivedExpr, t: DerivedExpr): DerivedExpr;
75
+ min(o: DerivedOperand): DerivedExpr;
76
+ max(o: DerivedOperand): DerivedExpr;
77
+ pow(o: DerivedOperand): DerivedExpr;
78
+ atan2(o: DerivedOperand): DerivedExpr;
79
+ step(edge: DerivedOperand): DerivedExpr;
80
+ clamp(lo: DerivedOperand, hi: DerivedOperand): DerivedExpr;
81
+ mix(o: DerivedOperand, t: DerivedOperand): DerivedExpr;
61
82
  dot(o: DerivedExpr): DerivedExpr;
62
83
  cross(o: DerivedExpr): DerivedExpr;
63
84
  length(): DerivedExpr;
64
85
  distance(o: DerivedExpr): DerivedExpr;
65
86
  reflect(n: DerivedExpr): DerivedExpr;
87
+ private cmp;
88
+ eq(o: DerivedOperand): DerivedExpr;
89
+ ne(o: DerivedOperand): DerivedExpr;
90
+ lt(o: DerivedOperand): DerivedExpr;
91
+ le(o: DerivedOperand): DerivedExpr;
92
+ gt(o: DerivedOperand): DerivedExpr;
93
+ ge(o: DerivedOperand): DerivedExpr;
94
+ /**
95
+ * Ternary select. The RECEIVER must be a bool — typically the
96
+ * result of a comparison — and the args are the then / else
97
+ * branches:
98
+ *
99
+ * (det < 0).select(flipped, declared) // det<0 ? flipped : declared
100
+ *
101
+ * The result type follows `then` (which must be widening-
102
+ * compatible with `else`). Raw numbers are lifted using `then`'s
103
+ * type when `then` is a DerivedExpr, else f32.
104
+ */
105
+ select(thenE: DerivedOperand, elseE: DerivedOperand): DerivedExpr;
106
+ /** Determinant of a square matrix expression — yields a scalar f32. */
107
+ determinant(): DerivedExpr;
108
+ static f32(value: number): DerivedExpr;
109
+ static u32(value: number): DerivedExpr;
110
+ static i32(value: number): DerivedExpr;
111
+ static "+"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
112
+ static "+"(a: DerivedExpr, b: number): DerivedExpr;
113
+ static "+"(a: number, b: DerivedExpr): DerivedExpr;
114
+ static "-"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
115
+ static "-"(a: DerivedExpr, b: number): DerivedExpr;
116
+ static "-"(a: number, b: DerivedExpr): DerivedExpr;
117
+ static "-"(a: DerivedExpr): DerivedExpr;
118
+ static "*"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
119
+ static "*"(a: DerivedExpr, b: number): DerivedExpr;
120
+ static "*"(a: number, b: DerivedExpr): DerivedExpr;
121
+ static "/"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
122
+ static "/"(a: DerivedExpr, b: number): DerivedExpr;
123
+ static "/"(a: number, b: DerivedExpr): DerivedExpr;
124
+ static "%"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
125
+ static "%"(a: DerivedExpr, b: number): DerivedExpr;
126
+ static "%"(a: number, b: DerivedExpr): DerivedExpr;
127
+ static "<"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
128
+ static "<"(a: DerivedExpr, b: number): DerivedExpr;
129
+ static "<"(a: number, b: DerivedExpr): DerivedExpr;
130
+ static "<="(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
131
+ static "<="(a: DerivedExpr, b: number): DerivedExpr;
132
+ static "<="(a: number, b: DerivedExpr): DerivedExpr;
133
+ static ">"(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
134
+ static ">"(a: DerivedExpr, b: number): DerivedExpr;
135
+ static ">"(a: number, b: DerivedExpr): DerivedExpr;
136
+ static ">="(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
137
+ static ">="(a: DerivedExpr, b: number): DerivedExpr;
138
+ static ">="(a: number, b: DerivedExpr): DerivedExpr;
139
+ static "=="(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
140
+ static "=="(a: DerivedExpr, b: number): DerivedExpr;
141
+ static "=="(a: number, b: DerivedExpr): DerivedExpr;
142
+ static "!="(a: DerivedExpr, b: DerivedExpr): DerivedExpr;
143
+ static "!="(a: DerivedExpr, b: number): DerivedExpr;
144
+ static "!="(a: number, b: DerivedExpr): DerivedExpr;
66
145
  }
67
146
  /** The `u` passed to a `derivedUniform` builder. `u.<Name>` is a uniform leaf — a mat4
68
147
  * trafo by default; its real type when the wombat-shader-vite plugin supplies one (or
@@ -1 +1 @@
1
- {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/marker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/marker.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,52 @@ function intrinsicExpr(name, type, args) {
40
40
  type,
41
41
  };
42
42
  }
43
- /** A traced expression in a `derivedUniform` builder. */
43
+ /** True iff `t` is a numeric scalar IR type (Float / Int). */
44
+ function isNumericScalar(t) {
45
+ return t.kind === "Float" || t.kind === "Int";
46
+ }
47
+ /** Element type for scalar arithmetic: scalar types pass through,
48
+ * vector/matrix types unwrap to their element type, anything else
49
+ * defaults to f32 (the natural numeric on the GPU side). */
50
+ function scalarLiftType(t) {
51
+ if (isNumericScalar(t))
52
+ return t;
53
+ if (t.kind === "Vector" || t.kind === "Matrix")
54
+ return t.element;
55
+ return Tf32;
56
+ }
57
+ function liftConst(value, target) {
58
+ if (target.kind === "Int") {
59
+ if (target.signed) {
60
+ return { kind: "Const", type: target, value: { kind: "Int", value: value | 0, signed: true } };
61
+ }
62
+ return { kind: "Const", type: target, value: { kind: "Int", value: value >>> 0, signed: false } };
63
+ }
64
+ // Default: f32 const.
65
+ return { kind: "Const", type: Tf32, value: { kind: "Float", value } };
66
+ }
67
+ /** Coerce `DerivedOperand` to a DerivedExpr, lifting raw numbers to a
68
+ * Const expression whose type matches the receiver's scalar type. */
69
+ function lift(other, receiverType) {
70
+ if (other instanceof DerivedExpr)
71
+ return other;
72
+ return new DerivedExpr(liftConst(other, scalarLiftType(receiverType)));
73
+ }
74
+ /**
75
+ * A traced expression in a `derivedUniform` / `derivedMode` builder.
76
+ *
77
+ * Plays nicely with `boperators` (https://npmjs.com/package/boperators):
78
+ * the named-static operator methods (`static ["+"]`, `static ["*"]`,
79
+ * `static ["<"]`, …) make `a + b`, `a * b`, `a < b`, etc. on
80
+ * DerivedExprs rewrite to those statics at build time. Without the
81
+ * plugin, the same logic is reachable via the instance methods
82
+ * (`.add`, `.mul`, `.lt`, …).
83
+ *
84
+ * Ternary `a < b ? x : y` isn't rewritten — call `.select` on the
85
+ * resulting bool DerivedExpr:
86
+ *
87
+ * (det < 0).select(flipped, declared)
88
+ */
44
89
  export class DerivedExpr {
45
90
  ir;
46
91
  constructor(ir) {
@@ -49,20 +94,23 @@ export class DerivedExpr {
49
94
  get type() { return this.ir.type; }
50
95
  /** Matrix product `this · other` (also matrix·vector / vector·matrix by operand types). */
51
96
  mul(other) {
52
- const a = this.ir.type, b = other.ir.type;
97
+ const o = lift(other, this.ir.type);
98
+ const a = this.ir.type, b = o.ir.type;
53
99
  if (a.kind === "Matrix" && b.kind === "Matrix") {
54
- return new DerivedExpr({ kind: "MulMatMat", lhs: this.ir, rhs: other.ir, type: { kind: "Matrix", element: a.element, rows: a.rows, cols: b.cols } });
100
+ return new DerivedExpr({ kind: "MulMatMat", lhs: this.ir, rhs: o.ir, type: { kind: "Matrix", element: a.element, rows: a.rows, cols: b.cols } });
55
101
  }
56
102
  if (a.kind === "Matrix" && b.kind === "Vector") {
57
- return new DerivedExpr({ kind: "MulMatVec", lhs: this.ir, rhs: other.ir, type: { kind: "Vector", element: b.element, dim: a.rows } });
103
+ return new DerivedExpr({ kind: "MulMatVec", lhs: this.ir, rhs: o.ir, type: { kind: "Vector", element: b.element, dim: a.rows } });
58
104
  }
59
105
  if (a.kind === "Vector" && b.kind === "Matrix") {
60
- return new DerivedExpr({ kind: "MulVecMat", lhs: this.ir, rhs: other.ir, type: { kind: "Vector", element: a.element, dim: b.cols } });
106
+ return new DerivedExpr({ kind: "MulVecMat", lhs: this.ir, rhs: o.ir, type: { kind: "Vector", element: a.element, dim: b.cols } });
61
107
  }
62
- return new DerivedExpr({ kind: "Mul", lhs: this.ir, rhs: other.ir, type: a.kind === "Float" ? b : a });
108
+ return new DerivedExpr({ kind: "Mul", lhs: this.ir, rhs: o.ir, type: a.kind === "Float" || a.kind === "Int" ? b : a });
63
109
  }
64
- add(other) { return new DerivedExpr({ kind: "Add", lhs: this.ir, rhs: other.ir, type: this.ir.type }); }
65
- sub(other) { return new DerivedExpr({ kind: "Sub", lhs: this.ir, rhs: other.ir, type: this.ir.type }); }
110
+ add(other) { const o = lift(other, this.ir.type); return new DerivedExpr({ kind: "Add", lhs: this.ir, rhs: o.ir, type: this.ir.type }); }
111
+ sub(other) { const o = lift(other, this.ir.type); return new DerivedExpr({ kind: "Sub", lhs: this.ir, rhs: o.ir, type: this.ir.type }); }
112
+ div(other) { const o = lift(other, this.ir.type); return new DerivedExpr({ kind: "Div", lhs: this.ir, rhs: o.ir, type: this.ir.type }); }
113
+ mod(other) { const o = lift(other, this.ir.type); return new DerivedExpr({ kind: "Mod", lhs: this.ir, rhs: o.ir, type: this.ir.type }); }
66
114
  neg() { return new DerivedExpr({ kind: "Neg", value: this.ir, type: this.ir.type }); }
67
115
  /** Inverse (of a constituent trafo this reads its stored backward half; otherwise unsupported in codegen). */
68
116
  inverse() { return new DerivedExpr({ kind: "Inverse", value: this.ir, type: this.ir.type }); }
@@ -120,18 +168,116 @@ export class DerivedExpr {
120
168
  log2() { return this.u1("log2"); }
121
169
  sign() { return this.u1("sign"); }
122
170
  normalize() { return this.u1("normalize"); }
123
- min(o) { return this.bin("min", o); }
124
- max(o) { return this.bin("max", o); }
125
- pow(o) { return this.bin("pow", o); }
126
- atan2(o) { return this.bin("atan2", o); }
127
- step(edge) { return new DerivedExpr(intrinsicExpr("step", this.ir.type, [edge.ir, this.ir])); }
128
- clamp(lo, hi) { return new DerivedExpr(intrinsicExpr("clamp", this.ir.type, [this.ir, lo.ir, hi.ir])); }
129
- mix(o, t) { return new DerivedExpr(intrinsicExpr("mix", this.ir.type, [this.ir, o.ir, t.ir])); }
171
+ min(o) { return this.bin("min", lift(o, this.ir.type)); }
172
+ max(o) { return this.bin("max", lift(o, this.ir.type)); }
173
+ pow(o) { return this.bin("pow", lift(o, this.ir.type)); }
174
+ atan2(o) { return this.bin("atan2", lift(o, this.ir.type)); }
175
+ step(edge) { const e = lift(edge, this.ir.type); return new DerivedExpr(intrinsicExpr("step", this.ir.type, [e.ir, this.ir])); }
176
+ clamp(lo, hi) { const l = lift(lo, this.ir.type); const h = lift(hi, this.ir.type); return new DerivedExpr(intrinsicExpr("clamp", this.ir.type, [this.ir, l.ir, h.ir])); }
177
+ mix(o, t) { const oo = lift(o, this.ir.type); const tt = lift(t, this.ir.type); return new DerivedExpr(intrinsicExpr("mix", this.ir.type, [this.ir, oo.ir, tt.ir])); }
130
178
  dot(o) { return new DerivedExpr(intrinsicExpr("dot", elemOf(this.ir.type), [this.ir, o.ir])); }
131
179
  cross(o) { return new DerivedExpr(intrinsicExpr("cross", this.ir.type, [this.ir, o.ir])); }
132
180
  length() { return new DerivedExpr(intrinsicExpr("length", elemOf(this.ir.type), [this.ir])); }
133
181
  distance(o) { return new DerivedExpr(intrinsicExpr("distance", elemOf(this.ir.type), [this.ir, o.ir])); }
134
182
  reflect(n) { return new DerivedExpr(intrinsicExpr("reflect", this.ir.type, [this.ir, n.ir])); }
183
+ // ── Comparisons (produce a bool DerivedExpr). Receivers + arg can be
184
+ // raw numbers — `aardvark-operators` lifts `a < 2` to `a.lt(2)`,
185
+ // and we lift `2` to a const matching the receiver's scalar type. ──
186
+ cmp(kind, other) {
187
+ const o = lift(other, this.ir.type);
188
+ const ir = { kind, lhs: this.ir, rhs: o.ir, type: { kind: "Bool" } };
189
+ return new DerivedExpr(ir);
190
+ }
191
+ eq(o) { return this.cmp("Eq", o); }
192
+ ne(o) { return this.cmp("Neq", o); }
193
+ lt(o) { return this.cmp("Lt", o); }
194
+ le(o) { return this.cmp("Le", o); }
195
+ gt(o) { return this.cmp("Gt", o); }
196
+ ge(o) { return this.cmp("Ge", o); }
197
+ /**
198
+ * Ternary select. The RECEIVER must be a bool — typically the
199
+ * result of a comparison — and the args are the then / else
200
+ * branches:
201
+ *
202
+ * (det < 0).select(flipped, declared) // det<0 ? flipped : declared
203
+ *
204
+ * The result type follows `then` (which must be widening-
205
+ * compatible with `else`). Raw numbers are lifted using `then`'s
206
+ * type when `then` is a DerivedExpr, else f32.
207
+ */
208
+ select(thenE, elseE) {
209
+ if (this.ir.type.kind !== "Bool") {
210
+ throw new Error("DerivedExpr.select(then, else): receiver must be a bool (typically a comparison)");
211
+ }
212
+ const t = thenE instanceof DerivedExpr ? thenE : lift(thenE, elseE instanceof DerivedExpr ? elseE.ir.type : Tf32);
213
+ const e = elseE instanceof DerivedExpr ? elseE : lift(elseE, t.ir.type);
214
+ const ir = { kind: "Conditional", cond: this.ir, ifTrue: t.ir, ifFalse: e.ir, type: t.ir.type };
215
+ return new DerivedExpr(ir);
216
+ }
217
+ /** Determinant of a square matrix expression — yields a scalar f32. */
218
+ determinant() {
219
+ if (this.ir.type.kind !== "Matrix") {
220
+ throw new Error("DerivedExpr.determinant(): receiver must be a matrix expression");
221
+ }
222
+ return new DerivedExpr({ kind: "Determinant", value: this.ir, type: Tf32 });
223
+ }
224
+ // ── Static literal builders. Mode rules in particular need u32 constants for enum
225
+ // indices (slot lookup). Floats for thresholds (e.g. determinant against zero).
226
+ static f32(value) {
227
+ return new DerivedExpr({ kind: "Const", type: Tf32, value: { kind: "Float", value } });
228
+ }
229
+ static u32(value) {
230
+ return new DerivedExpr({ kind: "Const", type: Tu32, value: { kind: "Int", value: value >>> 0, signed: false } });
231
+ }
232
+ static i32(value) {
233
+ return new DerivedExpr({ kind: "Const", type: Ti32, value: { kind: "Int", value: value | 0, signed: true } });
234
+ }
235
+ static "+"(a, b) {
236
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
237
+ return x.add(b);
238
+ }
239
+ static "-"(a, b) {
240
+ if (b === undefined)
241
+ return a.neg();
242
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
243
+ return x.sub(b);
244
+ }
245
+ static "*"(a, b) {
246
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
247
+ return x.mul(b);
248
+ }
249
+ static "/"(a, b) {
250
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
251
+ return x.div(b);
252
+ }
253
+ static "%"(a, b) {
254
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
255
+ return x.mod(b);
256
+ }
257
+ static "<"(a, b) {
258
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
259
+ return x.lt(b);
260
+ }
261
+ static "<="(a, b) {
262
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
263
+ return x.le(b);
264
+ }
265
+ static ">"(a, b) {
266
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
267
+ return x.gt(b);
268
+ }
269
+ static ">="(a, b) {
270
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
271
+ return x.ge(b);
272
+ }
273
+ static "=="(a, b) {
274
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
275
+ return x.eq(b);
276
+ }
277
+ static "!="(a, b) {
278
+ const x = a instanceof DerivedExpr ? a : lift(a, b.ir.type);
279
+ return x.ne(b);
280
+ }
135
281
  }
136
282
  function makeScope(leafTypes) {
137
283
  return new Proxy({}, {
@@ -1 +1 @@
1
- {"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/marker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/marker.ts"],"names":[],"mappings":"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"}
@@ -12,16 +12,28 @@ export declare class DerivedUniformsScene {
12
12
  readonly device: GPUDevice;
13
13
  readonly constituents: ConstituentSlots;
14
14
  readonly registry: DerivedUniformRegistry;
15
- /** Single scene-wide records buffer all buckets share constituents AND the main heap, so per-bucket records would just multiply dispatch overhead. */
16
- readonly records: RecordsBuffer;
15
+ /** Per-chunk records buffers (§3). Constituents + registry are
16
+ * scene-wide; records partition by chunk so each dispatch binds
17
+ * the right chunk's main heap. */
18
+ private readonly recordsByChunk;
17
19
  readonly dispatcher: DerivedUniformsDispatcher;
18
20
  /** Constituents storage GPU buffer (`array<vec2<f32>>` — df32 mat4 halves). */
19
21
  constituentsBuf: GPUBuffer;
20
- private readonly mainHeapRef;
22
+ /** Per-chunk main-heap GPUBuffer getters. Populated as chunks are
23
+ * registered via `setMainHeapForChunk` from the scene factory. */
24
+ private readonly mainHeapByChunk;
21
25
  /** Bumped each time a shared GPU buffer is replaced. */
22
26
  bufferEpoch: number;
23
- constructor(device: GPUDevice, mainHeapBuf: GPUBuffer, opts?: DerivedUniformsSceneOptions);
24
- rebindMainHeap(mainHeapBuf: GPUBuffer): void;
27
+ constructor(device: GPUDevice, opts?: DerivedUniformsSceneOptions);
28
+ /** Register (or replace) the GPUBuffer getter for a chunk's main
29
+ * heap. Called by the scene factory at construction and whenever
30
+ * a new chunk opens or an existing chunk's buffer reallocates. */
31
+ setMainHeapForChunk(chunkIdx: number, getter: () => GPUBuffer): void;
32
+ /** Get-or-create the records buffer for `chunkIdx`. */
33
+ recordsFor(chunkIdx: number): RecordsBuffer;
34
+ /** Total record count summed across every chunk's records buffer.
35
+ * Used by the scene's stats / diagnostics. */
36
+ get totalRecordCount(): number;
25
37
  ensureConstituentsCapacity(requiredBytes: number): void;
26
38
  /** Routed from the heap scene's `inputChanged(t, o)`. True iff `o` is a tracked trafo aval. */
27
39
  routeInputChanged(o: IAdaptiveObject): boolean;
@@ -29,7 +41,9 @@ export declare class DerivedUniformsScene {
29
41
  pullDirty(token: AdaptiveToken): ReadonlySet<SlotIndex>;
30
42
  /** Upload the changed constituent value range. O(changed). */
31
43
  uploadDirty(dirty: ReadonlySet<SlotIndex>): void;
32
- /** Run the uber-kernel. No-op if there are no records. */
44
+ /** Run the uber-kernel once per chunk that holds records. No-op
45
+ * when no chunk has records. Each dispatch binds that chunk's
46
+ * main heap buffer. */
33
47
  encode(enc: GPUCommandEncoder): boolean;
34
48
  dispose(): void;
35
49
  }
@@ -44,6 +58,9 @@ export interface RoDerivedRequest {
44
58
  readonly outputOffset: (name: string) => number | undefined;
45
59
  /** Absolute byte offset of this RO's drawHeader within the main heap. */
46
60
  readonly drawHeaderBaseByte: number;
61
+ /** §3: which arena chunk this RO lives in. Records are partitioned
62
+ * by chunk so each dispatch binds the right main-heap buffer. */
63
+ readonly chunkIdx: number;
47
64
  }
48
65
  export interface RoRegistration {
49
66
  /** The records-buffer owner key (the RenderObject). */
@@ -51,6 +68,8 @@ export interface RoRegistration {
51
68
  readonly constituentAvals: readonly aval<Trafo3d>[];
52
69
  /** Flattened-rule hashes — for `registry.release` on teardown. */
53
70
  readonly ruleHashes: readonly string[];
71
+ /** Chunk this registration was placed into — used by deregister. */
72
+ readonly chunkIdx: number;
54
73
  }
55
74
  export declare function registerRoDerivations(scene: DerivedUniformsScene, owner: object, req: RoDerivedRequest): RoRegistration;
56
75
  export declare function deregisterRoDerivations(scene: DerivedUniformsScene, reg: RoRegistration): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sceneIntegration.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/sceneIntegration.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,gBAAgB,EACE,KAAK,SAAS,EACjC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAA2B,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,QAAQ,yBAAgC;IACjD,wJAAwJ;IACxJ,QAAQ,CAAC,OAAO,gBAAuB;IACvC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,+EAA+E;IAC/E,eAAe,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,wDAAwD;IACxD,WAAW,SAAK;gBAEJ,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAgBzF,cAAc,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI;IAI5C,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAqBvD,+FAA+F;IAC/F,iBAAiB,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO;IAM9C,wGAAwG;IACxG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC;IAIvD,8DAA8D;IAC9D,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI;IAMhD,0DAA0D;IAC1D,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO;IAIvC,OAAO,IAAI,IAAI;CAIhB;AAID,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,iHAAiH;IACjH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,iIAAiI;IACjI,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACjE,2HAA2H;IAC3H,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC5D,yEAAyE;IACzE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,gBAAgB,GACpB,cAAc,CAwDhB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAI9F"}
1
+ {"version":3,"file":"sceneIntegration.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/sceneIntegration.ts"],"names":[],"mappings":"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"}