@luma.gl/webgpu 9.1.0-beta.9 → 9.2.0-alpha.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 (77) hide show
  1. package/dist/adapter/helpers/accessor-to-format.js +1 -0
  2. package/dist/adapter/helpers/accessor-to-format.js.map +1 -1
  3. package/dist/adapter/helpers/get-bind-group.d.ts +3 -1
  4. package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
  5. package/dist/adapter/helpers/get-bind-group.js +28 -10
  6. package/dist/adapter/helpers/get-bind-group.js.map +1 -1
  7. package/dist/adapter/helpers/get-vertex-buffer-layout.js +6 -6
  8. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -1
  9. package/dist/adapter/helpers/webgpu-parameters.d.ts.map +1 -1
  10. package/dist/adapter/helpers/webgpu-parameters.js +66 -68
  11. package/dist/adapter/helpers/webgpu-parameters.js.map +1 -1
  12. package/dist/adapter/resources/webgpu-buffer.d.ts.map +1 -1
  13. package/dist/adapter/resources/webgpu-buffer.js +12 -0
  14. package/dist/adapter/resources/webgpu-buffer.js.map +1 -1
  15. package/dist/adapter/resources/webgpu-command-buffer.d.ts +10 -0
  16. package/dist/adapter/resources/webgpu-command-buffer.d.ts.map +1 -0
  17. package/dist/adapter/resources/webgpu-command-buffer.js +18 -0
  18. package/dist/adapter/resources/webgpu-command-buffer.js.map +1 -0
  19. package/dist/adapter/resources/webgpu-command-encoder.d.ts +12 -5
  20. package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
  21. package/dist/adapter/resources/webgpu-command-encoder.js +21 -5
  22. package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -1
  23. package/dist/adapter/resources/webgpu-compute-pass.js +1 -1
  24. package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -1
  25. package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
  26. package/dist/adapter/resources/webgpu-render-pass.js +2 -1
  27. package/dist/adapter/resources/webgpu-render-pass.js.map +1 -1
  28. package/dist/adapter/resources/webgpu-render-pipeline.d.ts +1 -0
  29. package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
  30. package/dist/adapter/resources/webgpu-render-pipeline.js +28 -6
  31. package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -1
  32. package/dist/adapter/resources/webgpu-sampler.js +1 -1
  33. package/dist/adapter/resources/webgpu-sampler.js.map +1 -1
  34. package/dist/adapter/resources/webgpu-texture-view.d.ts.map +1 -1
  35. package/dist/adapter/resources/webgpu-texture-view.js +16 -10
  36. package/dist/adapter/resources/webgpu-texture-view.js.map +1 -1
  37. package/dist/adapter/resources/webgpu-texture.d.ts +4 -37
  38. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  39. package/dist/adapter/resources/webgpu-texture.js +98 -124
  40. package/dist/adapter/resources/webgpu-texture.js.map +1 -1
  41. package/dist/adapter/resources/webgpu-vertex-array.d.ts +2 -2
  42. package/dist/adapter/resources/webgpu-vertex-array.d.ts.map +1 -1
  43. package/dist/adapter/resources/webgpu-vertex-array.js +2 -2
  44. package/dist/adapter/resources/webgpu-vertex-array.js.map +1 -1
  45. package/dist/adapter/webgpu-adapter.d.ts +2 -3
  46. package/dist/adapter/webgpu-adapter.d.ts.map +1 -1
  47. package/dist/adapter/webgpu-adapter.js +19 -10
  48. package/dist/adapter/webgpu-adapter.js.map +1 -1
  49. package/dist/adapter/webgpu-canvas-context.d.ts +7 -15
  50. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  51. package/dist/adapter/webgpu-canvas-context.js +49 -72
  52. package/dist/adapter/webgpu-canvas-context.js.map +1 -1
  53. package/dist/adapter/webgpu-device.d.ts +14 -29
  54. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  55. package/dist/adapter/webgpu-device.js +38 -65
  56. package/dist/adapter/webgpu-device.js.map +1 -1
  57. package/dist/dist.dev.js +1660 -1374
  58. package/dist/dist.min.js +5 -5
  59. package/dist/index.cjs +1513 -1258
  60. package/dist/index.cjs.map +4 -4
  61. package/package.json +3 -3
  62. package/src/adapter/helpers/get-bind-group.ts +31 -11
  63. package/src/adapter/helpers/get-vertex-buffer-layout.ts +6 -6
  64. package/src/adapter/helpers/webgpu-parameters.ts +88 -97
  65. package/src/adapter/resources/webgpu-buffer.ts +12 -0
  66. package/src/adapter/resources/webgpu-command-buffer.ts +24 -0
  67. package/src/adapter/resources/webgpu-command-encoder.ts +27 -4
  68. package/src/adapter/resources/webgpu-compute-pass.ts +1 -1
  69. package/src/adapter/resources/webgpu-render-pass.ts +2 -1
  70. package/src/adapter/resources/webgpu-render-pipeline.ts +31 -6
  71. package/src/adapter/resources/webgpu-sampler.ts +1 -1
  72. package/src/adapter/resources/webgpu-texture-view.ts +15 -8
  73. package/src/adapter/resources/webgpu-texture.ts +106 -184
  74. package/src/adapter/resources/webgpu-vertex-array.ts +2 -2
  75. package/src/adapter/webgpu-adapter.ts +27 -14
  76. package/src/adapter/webgpu-canvas-context.ts +60 -81
  77. package/src/adapter/webgpu-device.ts +50 -105
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-command-encoder.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-command-encoder.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export class WebGPUComputePass extends ComputePass {
23
23
  }
24
24
  this.handle =
25
25
  this.props.handle ||
26
- device.commandEncoder?.beginComputePass({
26
+ device.commandEncoder.handle.beginComputePass({
27
27
  label: this.props.id,
28
28
  timestampWrites
29
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-compute-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAqD,MAAM,eAAe,CAAC;AAM9F,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,MAAM,CAAe;IACrB,MAAM,CAAwB;IAEvC,eAAe,GAAiC,IAAI,CAAC;IAErD,YAAY,MAAoB,EAAE,KAAuB;QACvD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,iBAAiB;QACjB,IAAI,eAA0D,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAmC,CAAC;YACjE,IAAI,cAAc,EAAE,CAAC;gBACnB,eAAe,GAAG;oBAChB,QAAQ,EAAE,cAAc,CAAC,MAAM;oBAC/B,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;oBACpD,mBAAmB,EAAE,KAAK,CAAC,iBAAiB;iBAC7C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpB,eAAe;iBAChB,CAAC,CAAC;IACP,CAAC;IAED,8CAA8C;IACrC,OAAO,KAAU,CAAC;IAE3B,GAAG;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,QAAyB;QACnC,MAAM,YAAY,GAAG,QAAiC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAmB;QAC7B,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAU,EAAE,CAAU;QACxC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAsB,EAAE,qBAA6B,CAAC;QACrE,MAAM,YAAY,GAAG,cAA8B,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"webgpu-compute-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAqD,MAAM,eAAe,CAAC;AAM9F,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,MAAM,CAAe;IACrB,MAAM,CAAwB;IAEvC,eAAe,GAAiC,IAAI,CAAC;IAErD,YAAY,MAAoB,EAAE,KAAuB;QACvD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,iBAAiB;QACjB,IAAI,eAA0D,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAmC,CAAC;YACjE,IAAI,cAAc,EAAE,CAAC;gBACnB,eAAe,GAAG;oBAChB,QAAQ,EAAE,cAAc,CAAC,MAAM;oBAC/B,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;oBACpD,mBAAmB,EAAE,KAAK,CAAC,iBAAiB;iBAC7C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpB,eAAe;iBAChB,CAAC,CAAC;IACP,CAAC;IAED,8CAA8C;IACrC,OAAO,KAAU,CAAC;IAE3B,GAAG;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,QAAyB;QACnC,MAAM,YAAY,GAAG,QAAiC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAmB;QAC7B,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAU,EAAE,CAAU;QACxC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAsB,EAAE,qBAA6B,CAAC;QACrE,MAAM,YAAY,GAAG,cAA8B,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAClF,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAM,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAG9C,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,iBAAiB,EAAC,gCAA6B;AAEvD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC,sBAAsB;IACtB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAQ;gBAEjC,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,eAAoB;IAyCpD,OAAO,IAAI,IAAI;IAExB,GAAG,IAAI,IAAI;IAIX,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAK3C,2EAA2E;IAC3E,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQpD,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,MAAM,GAAE,MAAU,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAIvE,IAAI,CAAC,OAAO,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAmBR,YAAY,IAAI,IAAI;IAKpB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAwBrD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGxC,aAAa,IAAI,IAAI;IAGrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAG7C,iBAAiB,IAAI,IAAI;IAQzB;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,GAAG,uBAAuB;CAoD3F"}
1
+ {"version":3,"file":"webgpu-render-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAClF,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAM,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAG9C,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,iBAAiB,EAAC,gCAA6B;AAEvD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC,sBAAsB;IACtB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAQ;gBAEjC,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,eAAoB;IA0CpD,OAAO,IAAI,IAAI;IAExB,GAAG,IAAI,IAAI;IAIX,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAK3C,2EAA2E;IAC3E,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQpD,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,MAAM,GAAE,MAAU,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAIvE,IAAI,CAAC,OAAO,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAmBR,YAAY,IAAI,IAAI;IAKpB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAwBrD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGxC,aAAa,IAAI,IAAI;IAGrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAG7C,iBAAiB,IAAI,IAAI;IAQzB;;;OAGG;IACH,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,GAAG,uBAAuB;CAoD3F"}
@@ -30,7 +30,8 @@ export class WebGPURenderPass extends RenderPass {
30
30
  throw new Error('commandEncoder not available');
31
31
  }
32
32
  this.device.handle.pushErrorScope('validation');
33
- this.handle = this.props.handle || device.commandEncoder.beginRenderPass(renderPassDescriptor);
33
+ this.handle =
34
+ this.props.handle || device.commandEncoder.handle.beginRenderPass(renderPassDescriptor);
34
35
  this.device.handle.popErrorScope().then((error) => {
35
36
  if (error) {
36
37
  log.error(`${this} creation failed:\n"${error.message}"`, this)();
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-render-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pass.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class WebGPURenderPipeline extends RenderPipeline {
12
12
  private _bindings;
13
13
  private _bindGroupLayout;
14
14
  private _bindGroup;
15
+ get [Symbol.toStringTag](): string;
15
16
  constructor(device: WebGPUDevice, props: RenderPipelineProps);
16
17
  destroy(): void;
17
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;CAmCvC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
1
+ {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;IAE/C,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,WAEhC;gBAEW,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAUpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;CAkDvC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
@@ -15,6 +15,9 @@ export class WebGPURenderPipeline extends RenderPipeline {
15
15
  _bindings;
16
16
  _bindGroupLayout = null;
17
17
  _bindGroup = null;
18
+ get [Symbol.toStringTag]() {
19
+ return 'WebGPURenderPipeline';
20
+ }
18
21
  constructor(device, props) {
19
22
  super(device, props);
20
23
  this.device = device;
@@ -48,6 +51,12 @@ export class WebGPURenderPipeline extends RenderPipeline {
48
51
  * @todo Do we want to expose BindGroups in the API and remove this?
49
52
  */
50
53
  setBindings(bindings) {
54
+ // Invalidate the cached bind group if any value has changed
55
+ for (const [name, binding] of Object.entries(bindings)) {
56
+ if (this._bindings[name] !== binding) {
57
+ this._bindGroup = null;
58
+ }
59
+ }
51
60
  Object.assign(this._bindings, bindings);
52
61
  }
53
62
  /** @todo - should this be moved to renderpass? */
@@ -105,16 +114,22 @@ export class WebGPURenderPipeline extends RenderPipeline {
105
114
  entryPoint: this.props.vertexEntryPoint || 'main',
106
115
  buffers: getVertexBufferLayout(this.shaderLayout, this.props.bufferLayout)
107
116
  };
117
+ // Populate color targets
118
+ // TODO - at the moment blend and write mask are only set on the first target
119
+ const targets = [];
120
+ if (this.props.colorAttachmentFormats) {
121
+ for (const format of this.props.colorAttachmentFormats) {
122
+ targets.push(format ? { format: getWebGPUTextureFormat(format) } : null);
123
+ }
124
+ }
125
+ else {
126
+ targets.push({ format: getWebGPUTextureFormat(this.device.preferredColorFormat) });
127
+ }
108
128
  // Set up the fragment stage
109
129
  const fragment = {
110
130
  module: this.props.fs.handle,
111
131
  entryPoint: this.props.fragmentEntryPoint || 'main',
112
- targets: [
113
- {
114
- // TODO exclamation mark hack!
115
- format: getWebGPUTextureFormat(this.device.getCanvasContext().format)
116
- }
117
- ]
132
+ targets
118
133
  };
119
134
  // Create a partially populated descriptor
120
135
  const descriptor = {
@@ -125,6 +140,13 @@ export class WebGPURenderPipeline extends RenderPipeline {
125
140
  },
126
141
  layout: 'auto'
127
142
  };
143
+ // Set depth format if required, defaulting to the preferred depth format
144
+ const depthFormat = this.props.depthStencilAttachmentFormat || this.device.preferredDepthFormat;
145
+ if (this.props.parameters.depthWriteEnabled) {
146
+ descriptor.depthStencil = {
147
+ format: getWebGPUTextureFormat(depthFormat)
148
+ };
149
+ }
128
150
  // Set parameters on the descriptor
129
151
  applyParametersToRenderPipelineDescriptor(descriptor, this.props.parameters);
130
152
  return descriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export class WebGPUSampler extends Sampler {
23
23
  if (props.mipmapFilter && props.mipmapFilter !== 'none') {
24
24
  samplerDescriptor.mipmapFilter = props.mipmapFilter;
25
25
  }
26
- this.handle = this.handle || this.device.handle.createSampler(samplerDescriptor);
26
+ this.handle = props.handle || this.device.handle.createSampler(samplerDescriptor);
27
27
  this.handle.label = this.props.id;
28
28
  }
29
29
  destroy() {
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-sampler.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-sampler.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAe,MAAM,eAAe,CAAC;AAOpD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC/B,MAAM,CAAe;IACrB,MAAM,CAAa;IAE5B,YAAY,MAAoB,EAAE,KAAyB;QACzD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,0CAA0C;QAC1C,MAAM,iBAAiB,GAAkC;YACvD,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,SAAS;SACxB,CAAC;QAEF,mEAAmE;QACnE,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,kCAAkC;QAClC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACxD,iBAAiB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,CAAC;IAEQ,OAAO;QACd,4CAA4C;QAC5C,yBAAyB;QACzB,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"webgpu-sampler.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-sampler.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAe,MAAM,eAAe,CAAC;AAOpD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC/B,MAAM,CAAe;IACrB,MAAM,CAAa;IAE5B,YAAY,MAAoB,EAAE,KAAyB;QACzD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,0CAA0C;QAC1C,MAAM,iBAAiB,GAAkC;YACvD,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,SAAS;SACxB,CAAC;QAEF,mEAAmE;QACnE,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,kCAAkC;QAClC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACxD,iBAAiB,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,CAAC;IAEQ,OAAO;QACd,4CAA4C;QAC5C,yBAAyB;QACzB,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture-view.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture-view.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,KAAK,EAAC,aAAa,EAAC,4BAAyB;AAiBpD,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG;IACtD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,GAAG;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC;IAmBjF,OAAO,IAAI,IAAI;CAMzB"}
1
+ {"version":3,"file":"webgpu-texture-view.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture-view.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,KAAK,EAAC,aAAa,EAAC,4BAAyB;AAiBpD,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG;IACtD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,GAAG;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC;IA0BjF,OAAO,IAAI,IAAI;CAMzB"}
@@ -13,17 +13,23 @@ export class WebGPUTextureView extends TextureView {
13
13
  super(device, props);
14
14
  this.device = device;
15
15
  this.texture = props.texture;
16
+ this.device.pushErrorScope('validation');
16
17
  this.handle =
17
- this.handle ||
18
- this.texture.handle.createView({
19
- format: (props.format || this.texture.format),
20
- dimension: props.dimension || this.texture.dimension,
21
- aspect: props.aspect,
22
- baseMipLevel: props.baseMipLevel,
23
- mipLevelCount: props.mipLevelCount, // GPUIntegerCoordinate;
24
- baseArrayLayer: props.baseArrayLayer, // GPUIntegerCoordinate;
25
- arrayLayerCount: props.arrayLayerCount // GPUIntegerCoordinate;
26
- });
18
+ // props.handle ||
19
+ this.texture.handle.createView({
20
+ format: (this.props.format || this.texture.format),
21
+ dimension: this.props.dimension || this.texture.dimension,
22
+ aspect: this.props.aspect,
23
+ baseMipLevel: this.props.baseMipLevel,
24
+ mipLevelCount: this.props.mipLevelCount,
25
+ baseArrayLayer: this.props.baseArrayLayer,
26
+ arrayLayerCount: this.props.arrayLayerCount
27
+ });
28
+ this.device.handle.popErrorScope().then((error) => {
29
+ if (error) {
30
+ this.device.reportError(new Error(`TextureView validation failed: ${error.message}`), this);
31
+ }
32
+ });
27
33
  this.handle.label = this.props.id;
28
34
  }
29
35
  destroy() {
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture-view.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture-view.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAmB,MAAM,eAAe,CAAC;AAuB5D;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,MAAM,CAAe;IACrB,MAAM,CAAiB;IACvB,OAAO,CAAgB;IAEhC,YAAY,MAAoB,EAAE,KAAwD;QACxF,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB;oBACjE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;oBACpD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,wBAAwB;oBAC5D,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,wBAAwB;oBAC9D,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,wBAAwB;iBAChE,CAAC,CAAC;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,CAAC;IAEQ,OAAO;QACd,gDAAgD;QAChD,yBAAyB;QACzB,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"webgpu-texture-view.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture-view.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAmB,MAAM,eAAe,CAAC;AAuB5D;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,MAAM,CAAe;IACrB,MAAM,CAAiB;IACvB,OAAO,CAAgB;IAEhC,YAAY,MAAoB,EAAE,KAAwD;QACxF,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YACT,kBAAkB;YAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB;gBACtE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;gBACrC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;gBACzC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;aAC5C,CAAC,CAAC;QACL,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,KAAsB,EAAE,EAAE;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,CAAC;IAEQ,OAAO;QACd,gDAAgD;QAChD,yBAAyB;QACzB,4BAA4B;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { TextureProps, TextureViewProps, Sampler, SamplerProps, Texture1DData, Texture2DData, Texture3DData, TextureCubeData, TextureArrayData, TextureCubeArrayData, ExternalImage } from '@luma.gl/core';
1
+ import type { TextureProps, TextureViewProps, CopyExternalImageOptions, CopyImageDataOptions } from '@luma.gl/core';
2
2
  import { Texture } from '@luma.gl/core';
3
3
  import type { WebGPUDevice } from "../webgpu-device.js";
4
4
  import { WebGPUSampler } from "./webgpu-sampler.js";
@@ -11,44 +11,11 @@ export declare class WebGPUTexture extends Texture {
11
11
  constructor(device: WebGPUDevice, props: TextureProps);
12
12
  destroy(): void;
13
13
  createView(props: TextureViewProps): WebGPUTextureView;
14
- protected initialize(props: TextureProps): void;
15
- protected createHandle(): GPUTexture;
16
- /** @deprecated - intention is to use the createView public API */
17
- createGPUTextureView(): GPUTextureView;
18
- /**
19
- * Set default sampler
20
- * Accept a sampler instance or set of props;
21
- */
22
- setSampler(sampler: Sampler | SamplerProps): this;
23
- setTexture1DData(data: Texture1DData): void;
24
- setTexture2DData(lodData: Texture2DData, depth?: number, target?: number): void;
25
- setTexture3DData(lodData: Texture3DData, depth?: number, target?: number): void;
26
- setTextureCubeData(data: TextureCubeData, depth?: number): void;
27
- setTextureArrayData(data: TextureArrayData): void;
28
- setTextureCubeArrayData(data: TextureCubeArrayData): void;
29
- setData(options: {
30
- data: any;
31
- }): {
32
- width: number;
33
- height: number;
34
- };
35
- copyExternalImage(options: {
36
- image: ExternalImage;
37
- width?: number;
38
- height?: number;
39
- depth?: number;
40
- sourceX?: number;
41
- sourceY?: number;
42
- mipLevel?: number;
43
- x?: number;
44
- y?: number;
45
- z?: number;
46
- aspect?: 'all' | 'stencil-only' | 'depth-only';
47
- colorSpace?: 'srgb';
48
- premultipliedAlpha?: boolean;
49
- }): {
14
+ copyImageData(options_: CopyImageDataOptions): void;
15
+ copyExternalImage(options_: CopyExternalImageOptions): {
50
16
  width: number;
51
17
  height: number;
52
18
  };
19
+ generateMipmapsWebGL(): void;
53
20
  }
54
21
  //# sourceMappingURL=webgpu-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,YAAY,EAKZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAGtC,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAWxD,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IAa5C,OAAO,IAAI,IAAI;IAMxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAItD,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IA4C/C,SAAS,CAAC,YAAY,IAAI,UAAU;IAsBpC,kEAAkE;IAClE,oBAAoB,IAAI,cAAc;IAItC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAMjD,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAI3C,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/E,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/E,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIjD,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAIzD,OAAO,CAAC,OAAO,EAAE;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAW9D,iBAAiB,CAAC,OAAO,EAAE;QACzB,KAAK,EAAE,aAAa,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;CAgHpC"}
1
+ {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,OAAO,EAAM,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IA8D5C,OAAO,IAAI,IAAI;IAMxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAItD,aAAa,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAgCnD,iBAAiB,CAAC,QAAQ,EAAE,wBAAwB,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAiC7E,oBAAoB,IAAI,IAAI;CAwEtC"}
@@ -1,15 +1,7 @@
1
- import { Texture } from '@luma.gl/core';
1
+ import { Texture, log } from '@luma.gl/core';
2
2
  import { getWebGPUTextureFormat } from "../helpers/convert-texture-format.js";
3
3
  import { WebGPUSampler } from "./webgpu-sampler.js";
4
4
  import { WebGPUTextureView } from "./webgpu-texture-view.js";
5
- const BASE_DIMENSIONS = {
6
- '1d': '1d',
7
- '2d': '2d',
8
- '2d-array': '2d',
9
- cube: '2d',
10
- 'cube-array': '2d',
11
- '3d': '3d'
12
- };
13
5
  export class WebGPUTexture extends Texture {
14
6
  device;
15
7
  handle;
@@ -18,144 +10,126 @@ export class WebGPUTexture extends Texture {
18
10
  constructor(device, props) {
19
11
  super(device, props);
20
12
  this.device = device;
21
- // Texture base class strips out the data prop, so we need to add it back in
22
- const propsWithData = { ...this.props };
23
- if (props.data) {
24
- propsWithData.data = props.data;
13
+ if (this.dimension === 'cube') {
14
+ this.depth = 6;
25
15
  }
26
- this.initialize(propsWithData);
27
- }
28
- destroy() {
29
- this.handle?.destroy();
30
- // @ts-expect-error readonly
31
- this.handle = null;
32
- }
33
- createView(props) {
34
- return new WebGPUTextureView(this.device, { ...props, texture: this });
35
- }
36
- initialize(props) {
37
- // @ts-expect-error
38
- this.handle = this.props.handle || this.createHandle();
39
- this.handle.label ||= this.id;
40
- if (this.props.data) {
41
- if (Texture.isExternalImage(this.props.data)) {
42
- this.copyExternalImage({ image: this.props.data });
16
+ this.device.handle.pushErrorScope('out-of-memory');
17
+ this.device.handle.pushErrorScope('validation');
18
+ this.handle =
19
+ this.props.handle ||
20
+ this.device.handle.createTexture({
21
+ label: this.id,
22
+ size: {
23
+ width: this.width,
24
+ height: this.height,
25
+ depthOrArrayLayers: this.depth
26
+ },
27
+ usage: this.props.usage || Texture.TEXTURE | Texture.COPY_DST,
28
+ dimension: this.baseDimension,
29
+ format: getWebGPUTextureFormat(this.format),
30
+ mipLevelCount: this.mipLevels,
31
+ sampleCount: this.props.samples
32
+ });
33
+ this.device.handle.popErrorScope().then((error) => {
34
+ if (error) {
35
+ this.device.reportError(new Error(`Texture validation failed: ${error.message}`), this);
43
36
  }
44
- else {
45
- this.setData({ data: this.props.data });
37
+ });
38
+ this.device.handle.popErrorScope().then((error) => {
39
+ if (error) {
40
+ this.device.reportError(new Error(`Texture out of memory: ${error.message}`), this);
46
41
  }
42
+ });
43
+ // Update props if external handle was supplied - used mainly by CanvasContext.getDefaultFramebuffer()
44
+ // TODO - Read all properties directly from the supplied handle?
45
+ if (this.props.handle) {
46
+ this.handle.label ||= this.id;
47
+ this.width = this.handle.width;
48
+ this.height = this.handle.height;
47
49
  }
48
- this.width = this.handle.width;
49
- this.height = this.handle.height;
50
- // Why not just read all properties directly from the texture
51
- // this.depthOrArrayLayers = this.handle.depthOrArrayLayers;
52
- // this.mipLevelCount = this.handle.mipLevelCount;
53
- // this.sampleCount = this.handle.sampleCount;
54
- // this.dimension = this.handle.dimension;
55
- // this.format = this.handle.format;
56
- // this.usage = this.handle.usage;
57
- // Create a default sampler. This mimics the WebGL1 API where sampler props are stored on the texture
58
- // this.setSampler(props.sampler);
59
50
  this.sampler =
60
51
  props.sampler instanceof WebGPUSampler
61
52
  ? props.sampler
62
53
  : new WebGPUSampler(this.device, props.sampler || {});
63
- // TODO - To support texture arrays we need to create custom views...
64
- // But we are not ready to expose TextureViews to the public API.
65
- // @ts-expect-error
66
- this.view = new WebGPUTextureView(this.device, { ...this.props, texture: this });
67
- // format: this.props.format,
68
- // dimension: this.props.dimension,
69
- // aspect = "all";
70
- // baseMipLevel: 0;
71
- // mipLevelCount;
72
- // baseArrayLayer = 0;
73
- // arrayLayerCount;
74
- }
75
- createHandle() {
76
- // Deduce size from data - TODO this is a hack
77
- // @ts-expect-error
78
- const width = this.props.width || this.props.data?.width || 1;
79
- // @ts-expect-error
80
- const height = this.props.height || this.props.data?.height || 1;
81
- return this.device.handle.createTexture({
82
- label: this.id,
83
- size: {
84
- width,
85
- height,
86
- depthOrArrayLayers: this.depth
87
- },
88
- usage: this.props.usage || Texture.TEXTURE | Texture.COPY_DST,
89
- dimension: BASE_DIMENSIONS[this.dimension],
90
- format: getWebGPUTextureFormat(this.format),
54
+ this.view = new WebGPUTextureView(this.device, {
55
+ ...this.props,
56
+ texture: this,
91
57
  mipLevelCount: this.mipLevels,
92
- sampleCount: this.props.samples
58
+ arrayLayerCount: this.depth
93
59
  });
60
+ // Set initial data
61
+ // Texture base class strips out the data prop from this.props, so we need to handle it here
62
+ this._initializeData(props.data);
94
63
  }
95
- /** @deprecated - intention is to use the createView public API */
96
- createGPUTextureView() {
97
- return this.handle.createView({ label: this.id });
98
- }
99
- /**
100
- * Set default sampler
101
- * Accept a sampler instance or set of props;
102
- */
103
- setSampler(sampler) {
104
- this.sampler =
105
- sampler instanceof WebGPUSampler ? sampler : new WebGPUSampler(this.device, sampler);
106
- return this;
107
- }
108
- setTexture1DData(data) {
109
- throw new Error('not implemented');
110
- }
111
- setTexture2DData(lodData, depth, target) {
112
- throw new Error('not implemented');
113
- }
114
- setTexture3DData(lodData, depth, target) {
115
- throw new Error('not implemented');
116
- }
117
- setTextureCubeData(data, depth) {
118
- throw new Error('not implemented');
119
- }
120
- setTextureArrayData(data) {
121
- throw new Error('not implemented');
64
+ destroy() {
65
+ this.handle?.destroy();
66
+ // @ts-expect-error readonly
67
+ this.handle = null;
122
68
  }
123
- setTextureCubeArrayData(data) {
124
- throw new Error('not implemented');
69
+ createView(props) {
70
+ return new WebGPUTextureView(this.device, { ...props, texture: this });
125
71
  }
126
- setData(options) {
127
- if (ArrayBuffer.isView(options.data)) {
128
- const clampedArray = new Uint8ClampedArray(options.data.buffer);
129
- // TODO - pass through src data color space as ImageData Options?
130
- const image = new ImageData(clampedArray, this.width, this.height);
131
- return this.copyExternalImage({ image });
132
- }
133
- throw new Error('Texture.setData: Use CommandEncoder to upload data to texture in WebGPU');
72
+ copyImageData(options_) {
73
+ const { width, height, depth } = this;
74
+ const options = this._normalizeCopyImageDataOptions(options_);
75
+ this.device.handle.pushErrorScope('validation');
76
+ this.device.handle.queue.writeTexture(
77
+ // destination: GPUImageCopyTexture
78
+ {
79
+ // texture subresource
80
+ texture: this.handle,
81
+ mipLevel: options.mipLevel,
82
+ aspect: options.aspect,
83
+ // origin to write to
84
+ origin: [options.x, options.y, options.z]
85
+ },
86
+ // data
87
+ options.data,
88
+ // dataLayout: GPUImageDataLayout
89
+ {
90
+ offset: options.byteOffset,
91
+ bytesPerRow: options.bytesPerRow,
92
+ rowsPerImage: options.rowsPerImage
93
+ },
94
+ // size: GPUExtent3D - extents of the content to write
95
+ [width, height, depth]);
96
+ this.device.handle.popErrorScope().then((error) => {
97
+ if (error) {
98
+ this.device.reportError(new Error(`copyImageData validation failed: ${error.message}`));
99
+ }
100
+ });
134
101
  }
135
- copyExternalImage(options) {
136
- const size = Texture.getExternalImageSize(options.image);
137
- const opts = { ...Texture.defaultCopyExternalImageOptions, ...size, ...options };
138
- const { image, sourceX, sourceY, width, height, depth, mipLevel, x, y, z, aspect, colorSpace, premultipliedAlpha, flipY } = opts;
139
- // TODO - max out width
102
+ copyExternalImage(options_) {
103
+ const options = this._normalizeCopyExternalImageOptions(options_);
104
+ this.device.handle.pushErrorScope('validation');
140
105
  this.device.handle.queue.copyExternalImageToTexture(
141
106
  // source: GPUImageCopyExternalImage
142
107
  {
143
- source: image,
144
- origin: [sourceX, sourceY],
145
- flipY
108
+ source: options.image,
109
+ origin: [options.sourceX, options.sourceY],
110
+ flipY: options.flipY
146
111
  },
147
112
  // destination: GPUImageCopyTextureTagged
148
113
  {
149
114
  texture: this.handle,
150
- origin: [x, y, z],
151
- mipLevel,
152
- aspect,
153
- colorSpace,
154
- premultipliedAlpha
115
+ origin: [options.x, options.y, options.depth],
116
+ mipLevel: options.mipLevel,
117
+ aspect: options.aspect,
118
+ colorSpace: options.colorSpace,
119
+ premultipliedAlpha: options.premultipliedAlpha
155
120
  },
156
121
  // copySize: GPUExtent3D
157
- [width, height, depth]);
158
- return { width, height };
122
+ [options.width, options.height, 1]);
123
+ this.device.handle.popErrorScope().then((error) => {
124
+ if (error) {
125
+ this.device.reportError(new Error(`copyExternalImage validation failed: ${error.message}`));
126
+ }
127
+ });
128
+ // TODO - should these be clipped to the texture size minus x,y,z?
129
+ return { width: options.width, height: options.height };
130
+ }
131
+ generateMipmapsWebGL() {
132
+ log.warn(`${this}: generateMipmaps not supported in WebGPU`)();
159
133
  }
160
134
  }
161
135
  //# sourceMappingURL=webgpu-texture.js.map