@luma.gl/webgpu 9.0.0-alpha.16 → 9.0.0-alpha.19
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.
- package/dist/adapter/helpers/accessor-to-format.js +1 -100
- package/dist/adapter/helpers/accessor-to-format.js.map +1 -0
- package/dist/adapter/helpers/convert-texture-format.d.ts +1 -1
- package/dist/adapter/helpers/convert-texture-format.js +5 -5
- package/dist/adapter/helpers/convert-texture-format.js.map +1 -0
- package/dist/adapter/helpers/generate-mipmaps.d.ts +1 -1
- package/dist/adapter/helpers/generate-mipmaps.js +85 -88
- package/dist/adapter/helpers/generate-mipmaps.js.map +1 -0
- package/dist/adapter/helpers/get-bind-group.d.ts +1 -1
- package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
- package/dist/adapter/helpers/get-bind-group.js +39 -54
- package/dist/adapter/helpers/get-bind-group.js.map +1 -0
- package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts +1 -1
- package/dist/adapter/helpers/get-vertex-buffer-layout.js +72 -97
- package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -0
- package/dist/adapter/helpers/webgpu-parameters.d.ts +1 -1
- package/dist/adapter/helpers/webgpu-parameters.js +125 -182
- package/dist/adapter/helpers/webgpu-parameters.js.map +1 -0
- package/dist/adapter/resources/webgpu-buffer.d.ts +2 -2
- package/dist/adapter/resources/webgpu-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-buffer.js +63 -57
- package/dist/adapter/resources/webgpu-buffer.js.map +1 -0
- package/dist/adapter/resources/webgpu-command-encoder.d.ts +2 -2
- package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-command-encoder.js +46 -47
- package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgpu-compute-pass.d.ts +2 -2
- package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pass.js +41 -51
- package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -0
- package/dist/adapter/resources/webgpu-compute-pipeline.d.ts +2 -2
- package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pipeline.js +20 -22
- package/dist/adapter/resources/webgpu-compute-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgpu-external-texture.d.ts +2 -2
- package/dist/adapter/resources/webgpu-external-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-external-texture.js +20 -26
- package/dist/adapter/resources/webgpu-external-texture.js.map +1 -0
- package/dist/adapter/resources/webgpu-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgpu-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-framebuffer.js +86 -89
- package/dist/adapter/resources/webgpu-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgpu-query.js +1 -42
- package/dist/adapter/resources/webgpu-query.js.map +1 -0
- package/dist/adapter/resources/webgpu-render-pass.d.ts +2 -2
- package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pass.js +70 -64
- package/dist/adapter/resources/webgpu-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgpu-render-pipeline.d.ts +2 -2
- package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pipeline.js +118 -158
- package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgpu-sampler.d.ts +3 -3
- package/dist/adapter/resources/webgpu-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-sampler.js +16 -16
- package/dist/adapter/resources/webgpu-sampler.js.map +1 -0
- package/dist/adapter/resources/webgpu-shader.d.ts +3 -3
- package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-shader.js +44 -47
- package/dist/adapter/resources/webgpu-shader.js.map +1 -0
- package/dist/adapter/resources/webgpu-texture.d.ts +3 -2
- package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-texture.js +87 -100
- package/dist/adapter/resources/webgpu-texture.js.map +1 -0
- package/dist/adapter/webgpu-canvas-context.d.ts +2 -2
- package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgpu-canvas-context.js +68 -77
- package/dist/adapter/webgpu-canvas-context.js.map +1 -0
- package/dist/adapter/webgpu-device.d.ts +2 -2
- package/dist/adapter/webgpu-device.d.ts.map +1 -1
- package/dist/adapter/webgpu-device.js +194 -215
- package/dist/adapter/webgpu-device.js.map +1 -0
- package/dist/adapter/webgpu-types.js +2 -0
- package/dist/adapter/webgpu-types.js.map +1 -0
- package/dist/dist.dev.js +3061 -0
- package/dist/glsl/glsllang.js +6 -9
- package/dist/glsl/glsllang.js.map +1 -0
- package/dist/index.cjs +1442 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -10
- package/dist/index.js.map +1 -0
- package/dist.min.js +17 -0
- package/package.json +17 -8
- package/src/adapter/helpers/generate-mipmaps.ts +1 -1
- package/src/adapter/helpers/get-bind-group.ts +1 -1
- package/src/adapter/helpers/get-vertex-buffer-layout.ts +2 -2
- package/src/adapter/helpers/webgpu-parameters.ts +9 -9
- package/src/adapter/resources/webgpu-buffer.ts +1 -1
- package/src/adapter/resources/webgpu-command-encoder.ts +4 -4
- package/src/adapter/resources/webgpu-compute-pass.ts +1 -1
- package/src/adapter/resources/webgpu-compute-pipeline.ts +1 -1
- package/src/adapter/resources/webgpu-external-texture.ts +1 -1
- package/src/adapter/resources/webgpu-framebuffer.ts +6 -6
- package/src/adapter/resources/webgpu-query.ts +1 -1
- package/src/adapter/resources/webgpu-render-pass.ts +1 -1
- package/src/adapter/resources/webgpu-render-pipeline.ts +3 -3
- package/src/adapter/resources/webgpu-sampler.ts +1 -1
- package/src/adapter/resources/webgpu-shader.ts +3 -1
- package/src/adapter/resources/webgpu-texture.ts +1 -1
- package/src/adapter/webgpu-canvas-context.ts +1 -1
- package/src/adapter/webgpu-device.ts +3 -2
- package/src/index.ts +2 -5
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -4
- package/dist/dist.js +0 -8051
- package/dist/dist.min.js +0 -1
- package/dist/es5/adapter/helpers/accessor-to-format.js +0 -2
- package/dist/es5/adapter/helpers/accessor-to-format.js.map +0 -1
- package/dist/es5/adapter/helpers/convert-texture-format.js +0 -13
- package/dist/es5/adapter/helpers/convert-texture-format.js.map +0 -1
- package/dist/es5/adapter/helpers/generate-mipmaps.js +0 -103
- package/dist/es5/adapter/helpers/generate-mipmaps.js.map +0 -1
- package/dist/es5/adapter/helpers/get-bind-group.js +0 -66
- package/dist/es5/adapter/helpers/get-bind-group.js.map +0 -1
- package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js +0 -149
- package/dist/es5/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/webgpu-parameters.js +0 -150
- package/dist/es5/adapter/helpers/webgpu-parameters.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-buffer.js +0 -131
- package/dist/es5/adapter/resources/webgpu-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-command-encoder.js +0 -90
- package/dist/es5/adapter/resources/webgpu-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-compute-pass.js +0 -85
- package/dist/es5/adapter/resources/webgpu-compute-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-compute-pipeline.js +0 -48
- package/dist/es5/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-external-texture.js +0 -50
- package/dist/es5/adapter/resources/webgpu-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-framebuffer.js +0 -126
- package/dist/es5/adapter/resources/webgpu-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-query.js +0 -2
- package/dist/es5/adapter/resources/webgpu-query.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-render-pass.js +0 -124
- package/dist/es5/adapter/resources/webgpu-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-render-pipeline.js +0 -185
- package/dist/es5/adapter/resources/webgpu-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-sampler.js +0 -45
- package/dist/es5/adapter/resources/webgpu-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-shader.js +0 -125
- package/dist/es5/adapter/resources/webgpu-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgpu-texture.js +0 -138
- package/dist/es5/adapter/resources/webgpu-texture.js.map +0 -1
- package/dist/es5/adapter/webgpu-canvas-context.js +0 -111
- package/dist/es5/adapter/webgpu-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgpu-device.js +0 -317
- package/dist/es5/adapter/webgpu-device.js.map +0 -1
- package/dist/es5/adapter/webgpu-types.js +0 -2
- package/dist/es5/adapter/webgpu-types.js.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/glsl/glsllang.js +0 -47
- package/dist/es5/glsl/glsllang.js.map +0 -1
- package/dist/es5/index.js +0 -44
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -7
- package/dist/es5/init.js.map +0 -1
- package/dist/esm/adapter/helpers/accessor-to-format.js +0 -2
- package/dist/esm/adapter/helpers/accessor-to-format.js.map +0 -1
- package/dist/esm/adapter/helpers/convert-texture-format.js +0 -7
- package/dist/esm/adapter/helpers/convert-texture-format.js.map +0 -1
- package/dist/esm/adapter/helpers/generate-mipmaps.js +0 -88
- package/dist/esm/adapter/helpers/generate-mipmaps.js.map +0 -1
- package/dist/esm/adapter/helpers/get-bind-group.js +0 -51
- package/dist/esm/adapter/helpers/get-bind-group.js.map +0 -1
- package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js +0 -83
- package/dist/esm/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/webgpu-parameters.js +0 -137
- package/dist/esm/adapter/helpers/webgpu-parameters.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-buffer.js +0 -70
- package/dist/esm/adapter/resources/webgpu-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-command-encoder.js +0 -49
- package/dist/esm/adapter/resources/webgpu-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-compute-pass.js +0 -44
- package/dist/esm/adapter/resources/webgpu-compute-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-compute-pipeline.js +0 -23
- package/dist/esm/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-external-texture.js +0 -23
- package/dist/esm/adapter/resources/webgpu-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-framebuffer.js +0 -93
- package/dist/esm/adapter/resources/webgpu-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-query.js +0 -2
- package/dist/esm/adapter/resources/webgpu-query.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-render-pass.js +0 -79
- package/dist/esm/adapter/resources/webgpu-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-render-pipeline.js +0 -130
- package/dist/esm/adapter/resources/webgpu-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-sampler.js +0 -20
- package/dist/esm/adapter/resources/webgpu-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-shader.js +0 -50
- package/dist/esm/adapter/resources/webgpu-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgpu-texture.js +0 -95
- package/dist/esm/adapter/resources/webgpu-texture.js.map +0 -1
- package/dist/esm/adapter/webgpu-canvas-context.js +0 -74
- package/dist/esm/adapter/webgpu-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgpu-device.js +0 -196
- package/dist/esm/adapter/webgpu-device.js.map +0 -1
- package/dist/esm/adapter/webgpu-types.js +0 -2
- package/dist/esm/adapter/webgpu-types.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/glsl/glsllang.js +0 -9
- package/dist/esm/glsl/glsllang.js.map +0 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -3
- package/src/bundle.ts +0 -4
- package/src/init.ts +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-framebuffer.js","names":["_api","require","_webgpuTexture","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WebGPUFramebuffer","_Framebuffer","_inherits2","_super","device","props","_this","_classCallCheck2","_assertThisInitialized2","colorAttachments","depthStencilAttachment","createDepthStencilTexture","map","colorAttachment","createColorTexture","renderPassDescriptor","view","handle","createView","depthClearValue","depthStoreOp","stencilClearValue","stencilStoreOp","loadOp","loadValue","storeOp","_createClass2","value","WEBGPUTexture","_createTexture","id","format","width","height","usage","Texture","RENDER_ATTACHMENT","Error","texture","_resizeAttachments","resizedTexture","destroy","Framebuffer","exports"],"sources":["../../../../src/adapter/resources/webgpu-framebuffer.ts"],"sourcesContent":["import type {FramebufferProps, ColorTextureFormat} from '@luma.gl/api';\nimport {Framebuffer, Texture} from '@luma.gl/api';\nimport WebGPUDevice from '../webgpu-device';\n// import WebGPUCanvasContext from '../webgpu-canvas-context';\nimport WEBGPUTexture from './webgpu-texture';\nimport WebGPUTexture from './webgpu-texture';\n\n// const DEFAULT_DEPTH_STENCIL_FORMAT: DepthStencilTextureFormat = 'depth24plus';\n\n// const MAX_COLOR_ATTACHMENTS = 8;\n\n/**\n * Create new textures with correct size for all attachments. \n * @note resize() destroys existing textures (if size has changed). \n */\nexport default class WebGPUFramebuffer extends Framebuffer {\n readonly device: WebGPUDevice;\n\n colorAttachments: WebGPUTexture[] = [];\n depthStencilAttachment: WebGPUTexture | null = null;\n\n /** Partial render pass descriptor. Used by WebGPURenderPass */\n renderPassDescriptor: {\n colorAttachments: GPURenderPassColorAttachment[];\n depthStencilAttachment?: GPURenderPassDepthStencilAttachment;\n } = {\n colorAttachments: []\n };\n\n constructor(device: WebGPUDevice, props: FramebufferProps) {\n super(device, props);\n this.device = device;\n\n if (props.depthStencilAttachment) {\n this.depthStencilAttachment = this.createDepthStencilTexture(props);\n }\n\n if (props.colorAttachments) {\n this.colorAttachments = props.colorAttachments.map(colorAttachment => this.createColorTexture(this.props, colorAttachment));\n }\n\n if (this.depthStencilAttachment) {\n this.renderPassDescriptor.depthStencilAttachment = {\n view: this.depthStencilAttachment.handle.createView(),\n // Add default clear values\n depthClearValue: 1.0,\n depthStoreOp: 'store',\n stencilClearValue: 0,\n stencilStoreOp: 'store',\n }\n }\n\n if (this.colorAttachments.length > 0) {\n this.renderPassDescriptor.colorAttachments = this.colorAttachments.map(colorAttachment => ({\n view: colorAttachment.handle.createView(),\n loadOp: 'clear',\n loadValue: [0.0, 0.0, 0.0, 0.0],\n storeOp: 'store'\n }));\n }\n }\n\n /** Create depth stencil texture */\n private createDepthStencilTexture(props: FramebufferProps): WEBGPUTexture {\n if (props.depthStencilAttachment instanceof WEBGPUTexture) {\n return props.depthStencilAttachment;\n }\n\n if (typeof props.depthStencilAttachment === 'string') {\n return this.device._createTexture({\n id: 'depth-stencil-attachment',\n format: props.depthStencilAttachment,\n width: props.width,\n height: props.height,\n usage: Texture.RENDER_ATTACHMENT\n });\n }\n\n throw new Error('type');\n }\n\n private createColorTexture(props: FramebufferProps, texture: Texture | ColorTextureFormat): WEBGPUTexture {\n if (texture instanceof WEBGPUTexture) {\n return texture;\n }\n\n if (typeof texture === 'string') {\n return this.device._createTexture({\n id: 'color-attachment',\n format: texture,\n width: props.width,\n height: props.height,\n usage: Texture.RENDER_ATTACHMENT\n });\n }\n\n throw new Error('type');\n }\n\n /**\n * Create new textures with correct size for all attachments.\n * @note destroys existing textures.\n */\n protected _resizeAttachments(width: number, height: number): void {\n for (let i = 0; i < this.colorAttachments.length; ++i) {\n if (this.colorAttachments[i]) {\n const resizedTexture = this.device._createTexture({...this.colorAttachments[i].props, width, height})\n this.colorAttachments[i].destroy();\n this.colorAttachments[i] = resizedTexture;\n this.renderPassDescriptor.colorAttachments[i].view = resizedTexture.handle.createView();\n }\n }\n\n if (this.depthStencilAttachment) {\n const resizedTexture = this.device._createTexture({...this.depthStencilAttachment.props, width, height})\n this.depthStencilAttachment.destroy();\n this.depthStencilAttachment = resizedTexture;\n this.renderPassDescriptor.depthStencilAttachment.view = resizedTexture.handle.createView();\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAGA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA6C,SAAAG,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAY,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAV,OAAA,EAAAK,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAV,OAAA,QAAAa,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAf,SAAA,EAAAkB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAnB,KAAA,OAAAI,SAAA,gBAAAsB,2BAAA,CAAAhB,OAAA,QAAAW,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAE,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,OAAA,CAAAC,SAAA,CAAAI,OAAA,8CAAAI,CAAA;AAAA,IAWxBC,iBAAiB,aAAAC,YAAA;EAAA,IAAAC,UAAA,CAAA1B,OAAA,EAAAwB,iBAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAoB,iBAAA;EAcpC,SAAAA,kBAAYI,MAAoB,EAAEC,KAAuB,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA/B,OAAA,QAAAwB,iBAAA;IACzDM,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAMM,MAAM,EAAEC,KAAK;IAAE,IAAA9B,gBAAA,CAAAC,OAAA,MAAAgC,uBAAA,CAAAhC,OAAA,EAAA8B,KAAA;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAgC,uBAAA,CAAAhC,OAAA,EAAA8B,KAAA,uBAZa,EAAE;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAgC,uBAAA,CAAAhC,OAAA,EAAA8B,KAAA,6BACS,IAAI;IAAA,IAAA/B,gBAAA,CAAAC,OAAA,MAAAgC,uBAAA,CAAAhC,OAAA,EAAA8B,KAAA,2BAM/C;MACFG,gBAAgB,EAAE;IACpB,CAAC;IAICH,KAAA,CAAKF,MAAM,GAAGA,MAAM;IAEpB,IAAIC,KAAK,CAACK,sBAAsB,EAAE;MAChCJ,KAAA,CAAKI,sBAAsB,GAAGJ,KAAA,CAAKK,yBAAyB,CAACN,KAAK,CAAC;IACrE;IAEA,IAAIA,KAAK,CAACI,gBAAgB,EAAE;MAC1BH,KAAA,CAAKG,gBAAgB,GAAGJ,KAAK,CAACI,gBAAgB,CAACG,GAAG,CAAC,UAAAC,eAAe;QAAA,OAAIP,KAAA,CAAKQ,kBAAkB,CAACR,KAAA,CAAKD,KAAK,EAAEQ,eAAe,CAAC;MAAA,EAAC;IAC7H;IAEA,IAAIP,KAAA,CAAKI,sBAAsB,EAAE;MAC/BJ,KAAA,CAAKS,oBAAoB,CAACL,sBAAsB,GAAG;QACjDM,IAAI,EAAEV,KAAA,CAAKI,sBAAsB,CAACO,MAAM,CAACC,UAAU,EAAE;QAErDC,eAAe,EAAE,GAAG;QACpBC,YAAY,EAAE,OAAO;QACrBC,iBAAiB,EAAE,CAAC;QACpBC,cAAc,EAAE;MAClB,CAAC;IACH;IAEA,IAAIhB,KAAA,CAAKG,gBAAgB,CAACtC,MAAM,GAAG,CAAC,EAAE;MACpCmC,KAAA,CAAKS,oBAAoB,CAACN,gBAAgB,GAAGH,KAAA,CAAKG,gBAAgB,CAACG,GAAG,CAAC,UAAAC,eAAe;QAAA,OAAK;UACzFG,IAAI,EAAEH,eAAe,CAACI,MAAM,CAACC,UAAU,EAAE;UACzCK,MAAM,EAAE,OAAO;UACfC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;UAC/BC,OAAO,EAAE;QACX,CAAC;MAAA,CAAC,CAAC;IACL;IAAC,OAAAnB,KAAA;EACH;EAAC,IAAAoB,aAAA,CAAAlD,OAAA,EAAAwB,iBAAA;IAAA1B,GAAA;IAAAqD,KAAA,EAGD,SAAAhB,0BAAkCN,KAAuB,EAAiB;MACxE,IAAIA,KAAK,CAACK,sBAAsB,YAAYkB,sBAAa,EAAE;QACzD,OAAOvB,KAAK,CAACK,sBAAsB;MACrC;MAEA,IAAI,OAAOL,KAAK,CAACK,sBAAsB,KAAK,QAAQ,EAAE;QACpD,OAAO,IAAI,CAACN,MAAM,CAACyB,cAAc,CAAC;UAChCC,EAAE,EAAE,0BAA0B;UAC9BC,MAAM,EAAE1B,KAAK,CAACK,sBAAsB;UACpCsB,KAAK,EAAE3B,KAAK,CAAC2B,KAAK;UAClBC,MAAM,EAAE5B,KAAK,CAAC4B,MAAM;UACpBC,KAAK,EAAEC,YAAO,CAACC;QACjB,CAAC,CAAC;MACJ;MAEA,MAAM,IAAIC,KAAK,CAAC,MAAM,CAAC;IACzB;EAAC;IAAA/D,GAAA;IAAAqD,KAAA,EAED,SAAAb,mBAA2BT,KAAuB,EAAEiC,OAAqC,EAAiB;MACxG,IAAIA,OAAO,YAAYV,sBAAa,EAAE;QACpC,OAAOU,OAAO;MAChB;MAEA,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,IAAI,CAAClC,MAAM,CAACyB,cAAc,CAAC;UAChCC,EAAE,EAAE,kBAAkB;UACtBC,MAAM,EAAEO,OAAO;UACfN,KAAK,EAAE3B,KAAK,CAAC2B,KAAK;UAClBC,MAAM,EAAE5B,KAAK,CAAC4B,MAAM;UACpBC,KAAK,EAAEC,YAAO,CAACC;QACjB,CAAC,CAAC;MACJ;MAEA,MAAM,IAAIC,KAAK,CAAC,MAAM,CAAC;IACzB;EAAC;IAAA/D,GAAA;IAAAqD,KAAA,EAMA,SAAAY,mBAA6BP,KAAa,EAAEC,MAAc,EAAQ;MACjE,KAAK,IAAIhE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACwC,gBAAgB,CAACtC,MAAM,EAAE,EAAEF,CAAC,EAAE;QACrD,IAAI,IAAI,CAACwC,gBAAgB,CAACxC,CAAC,CAAC,EAAE;UAC5B,IAAMuE,cAAc,GAAG,IAAI,CAACpC,MAAM,CAACyB,cAAc,CAAA9D,aAAA,CAAAA,aAAA,KAAK,IAAI,CAAC0C,gBAAgB,CAACxC,CAAC,CAAC,CAACoC,KAAK;YAAE2B,KAAK,EAALA,KAAK;YAAEC,MAAM,EAANA;UAAM,GAAE;UACrG,IAAI,CAACxB,gBAAgB,CAACxC,CAAC,CAAC,CAACwE,OAAO,EAAE;UAClC,IAAI,CAAChC,gBAAgB,CAACxC,CAAC,CAAC,GAAGuE,cAAc;UACzC,IAAI,CAACzB,oBAAoB,CAACN,gBAAgB,CAACxC,CAAC,CAAC,CAAC+C,IAAI,GAAGwB,cAAc,CAACvB,MAAM,CAACC,UAAU,EAAE;QACzF;MACF;MAEA,IAAI,IAAI,CAACR,sBAAsB,EAAE;QAC9B,IAAM8B,eAAc,GAAG,IAAI,CAACpC,MAAM,CAACyB,cAAc,CAAA9D,aAAA,CAAAA,aAAA,KAAK,IAAI,CAAC2C,sBAAsB,CAACL,KAAK;UAAE2B,KAAK,EAALA,KAAK;UAAEC,MAAM,EAANA;QAAM,GAAE;QACxG,IAAI,CAACvB,sBAAsB,CAAC+B,OAAO,EAAE;QACrC,IAAI,CAAC/B,sBAAsB,GAAG8B,eAAc;QAC5C,IAAI,CAACzB,oBAAoB,CAACL,sBAAsB,CAACM,IAAI,GAAGwB,eAAc,CAACvB,MAAM,CAACC,UAAU,EAAE;MAC7F;IACF;EAAC;EAAA,OAAAlB,iBAAA;AAAA,EAxG4C0C,gBAAW;AAAAC,OAAA,CAAAnE,OAAA,GAAAwB,iBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-query.js","names":[],"sources":["../../../../src/adapter/resources/webgpu-query.ts"],"sourcesContent":["/*\nimport {Resource, Query, QueryProps} from '@luma.gl/api';\nimport WebGPUDevice from '../webgpu-device';\n\nexport type WebGPUQueryProps = QueryProps & {\n handle?: any;\n};\n\nconst DEFAULT_QUERY_PROPS: Required<WebGPUQueryProps> = {\n id: undefined,\n handle: undefined,\n userData: undefined,\n type: 'timestamp',\n count: 1,\n pipelineStatistics: []\n};\n\n/**\n * Immutable\n *\nclass WebGPUQuery extends Resource<WebGPUQueryProps> implements Query {\n readonly device: WebGPUDevice;\n readonly handle: GPUQuerySet;\n\n constructor(device: WebGPUDevice, props: WebGPUQueryProps) {\n super(device, props, DEFAULT_QUERY_PROPS);\n this.handle = this.props.handle as GPUQuerySet || this.createHandle();\n this.handle.label = this.props.id;\n }\n\n protected createHandle() {\n return this.device.handle.createQuerySet({\n type: this.props.type,\n count: this.props.count,\n pipelineStatistics: this.props.pipelineStatistics\n });\n }\n\n override destroy(): void {\n this.handle.destroy();\n }\n}\n*/"],"mappings":""}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
var _api = require("@luma.gl/api");
|
|
16
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
17
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
18
|
-
var WebGPURenderPass = function (_RenderPass) {
|
|
19
|
-
(0, _inherits2.default)(WebGPURenderPass, _RenderPass);
|
|
20
|
-
var _super = _createSuper(WebGPURenderPass);
|
|
21
|
-
function WebGPURenderPass(device) {
|
|
22
|
-
var _this;
|
|
23
|
-
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
24
|
-
(0, _classCallCheck2.default)(this, WebGPURenderPass);
|
|
25
|
-
_this = _super.call(this, device, props);
|
|
26
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
27
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
|
|
28
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "pipeline", null);
|
|
29
|
-
_this.device = device;
|
|
30
|
-
var framebuffer = props.framebuffer || device.canvasContext.getCurrentFramebuffer();
|
|
31
|
-
var renderPassDescriptor = framebuffer.renderPassDescriptor;
|
|
32
|
-
_this.handle = _this.props.handle || device.commandEncoder.beginRenderPass(renderPassDescriptor);
|
|
33
|
-
_this.handle.label = _this.props.id;
|
|
34
|
-
return _this;
|
|
35
|
-
}
|
|
36
|
-
(0, _createClass2.default)(WebGPURenderPass, [{
|
|
37
|
-
key: "destroy",
|
|
38
|
-
value: function destroy() {}
|
|
39
|
-
}, {
|
|
40
|
-
key: "end",
|
|
41
|
-
value: function end() {
|
|
42
|
-
this.handle.end();
|
|
43
|
-
}
|
|
44
|
-
}, {
|
|
45
|
-
key: "setPipeline",
|
|
46
|
-
value: function setPipeline(pipeline) {
|
|
47
|
-
this.pipeline = (0, _api.cast)(pipeline);
|
|
48
|
-
this.handle.setPipeline(this.pipeline.handle);
|
|
49
|
-
}
|
|
50
|
-
}, {
|
|
51
|
-
key: "setBindings",
|
|
52
|
-
value: function setBindings(bindings) {
|
|
53
|
-
var _this$pipeline, _this$pipeline2;
|
|
54
|
-
(_this$pipeline = this.pipeline) === null || _this$pipeline === void 0 ? void 0 : _this$pipeline.setBindings(bindings);
|
|
55
|
-
var bindGroup = (_this$pipeline2 = this.pipeline) === null || _this$pipeline2 === void 0 ? void 0 : _this$pipeline2._getBindGroup();
|
|
56
|
-
if (bindGroup) {
|
|
57
|
-
this.handle.setBindGroup(0, bindGroup);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
key: "setIndexBuffer",
|
|
62
|
-
value: function setIndexBuffer(buffer, indexFormat) {
|
|
63
|
-
var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
64
|
-
var size = arguments.length > 3 ? arguments[3] : undefined;
|
|
65
|
-
this.handle.setIndexBuffer((0, _api.cast)(buffer).handle, indexFormat, offset, size);
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "setVertexBuffer",
|
|
69
|
-
value: function setVertexBuffer(slot, buffer) {
|
|
70
|
-
var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
71
|
-
this.handle.setVertexBuffer(slot, (0, _api.cast)(buffer).handle, offset);
|
|
72
|
-
}
|
|
73
|
-
}, {
|
|
74
|
-
key: "draw",
|
|
75
|
-
value: function draw(options) {
|
|
76
|
-
if (options.indexCount) {
|
|
77
|
-
this.handle.drawIndexed(options.indexCount, options.instanceCount, options.firstIndex, options.baseVertex, options.firstInstance);
|
|
78
|
-
} else {
|
|
79
|
-
this.handle.draw(options.vertexCount || 0, options.instanceCount, options.firstIndex, options.firstInstance);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}, {
|
|
83
|
-
key: "drawIndirect",
|
|
84
|
-
value: function drawIndirect() {}
|
|
85
|
-
}, {
|
|
86
|
-
key: "setParameters",
|
|
87
|
-
value: function setParameters(parameters) {
|
|
88
|
-
var blendConstant = parameters.blendConstant,
|
|
89
|
-
stencilReference = parameters.stencilReference,
|
|
90
|
-
scissorRect = parameters.scissorRect,
|
|
91
|
-
viewport = parameters.viewport;
|
|
92
|
-
if (blendConstant) {
|
|
93
|
-
this.handle.setBlendConstant(blendConstant);
|
|
94
|
-
}
|
|
95
|
-
if (stencilReference) {
|
|
96
|
-
this.handle.setStencilReference(stencilReference);
|
|
97
|
-
}
|
|
98
|
-
if (scissorRect) {
|
|
99
|
-
this.handle.setScissorRect(scissorRect[0], scissorRect[1], scissorRect[2], scissorRect[3]);
|
|
100
|
-
}
|
|
101
|
-
if (viewport) {
|
|
102
|
-
this.handle.setViewport(viewport[0], viewport[1], viewport[2], viewport[3], viewport[4], viewport[5]);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}, {
|
|
106
|
-
key: "pushDebugGroup",
|
|
107
|
-
value: function pushDebugGroup(groupLabel) {
|
|
108
|
-
this.handle.pushDebugGroup(groupLabel);
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
key: "popDebugGroup",
|
|
112
|
-
value: function popDebugGroup() {
|
|
113
|
-
this.handle.popDebugGroup();
|
|
114
|
-
}
|
|
115
|
-
}, {
|
|
116
|
-
key: "insertDebugMarker",
|
|
117
|
-
value: function insertDebugMarker(markerLabel) {
|
|
118
|
-
this.handle.insertDebugMarker(markerLabel);
|
|
119
|
-
}
|
|
120
|
-
}]);
|
|
121
|
-
return WebGPURenderPass;
|
|
122
|
-
}(_api.RenderPass);
|
|
123
|
-
exports.default = WebGPURenderPass;
|
|
124
|
-
//# sourceMappingURL=webgpu-render-pass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-render-pass.js","names":["_api","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WebGPURenderPass","_RenderPass","_inherits2","_super","device","_this","props","length","undefined","_classCallCheck2","_defineProperty2","_assertThisInitialized2","framebuffer","canvasContext","getCurrentFramebuffer","renderPassDescriptor","handle","commandEncoder","beginRenderPass","label","id","_createClass2","key","value","destroy","end","setPipeline","pipeline","cast","setBindings","bindings","_this$pipeline","_this$pipeline2","bindGroup","_getBindGroup","setBindGroup","setIndexBuffer","buffer","indexFormat","offset","size","setVertexBuffer","slot","draw","options","indexCount","drawIndexed","instanceCount","firstIndex","baseVertex","firstInstance","vertexCount","drawIndirect","setParameters","parameters","blendConstant","stencilReference","scissorRect","viewport","setBlendConstant","setStencilReference","setScissorRect","setViewport","pushDebugGroup","groupLabel","popDebugGroup","insertDebugMarker","markerLabel","RenderPass","exports"],"sources":["../../../../src/adapter/resources/webgpu-render-pass.ts"],"sourcesContent":["import type {RenderPassProps, RenderPassParameters, Binding} from '@luma.gl/api';\nimport {Buffer, RenderPass, RenderPipeline, cast} from '@luma.gl/api';\nimport WebGPUDevice from '../webgpu-device';\nimport WebGPUBuffer from './webgpu-buffer';\n// import WebGPUCommandEncoder from './webgpu-command-encoder';\nimport WebGPURenderPipeline from './webgpu-render-pipeline';\n\nexport default class WebGPURenderPass extends RenderPass {\n readonly device: WebGPUDevice;\n readonly handle: GPURenderPassEncoder;\n\n /** Active pipeline */\n pipeline: WebGPURenderPipeline | null = null;\n\n constructor(device: WebGPUDevice, props: RenderPassProps = {}) {\n super(device, props);\n this.device = device;\n const framebuffer = props.framebuffer || device.canvasContext.getCurrentFramebuffer();\n // @ts-expect-error\n const renderPassDescriptor = framebuffer.renderPassDescriptor;\n this.handle = this.props.handle || device.commandEncoder.beginRenderPass(renderPassDescriptor);\n this.handle.label = this.props.id;\n }\n\n override destroy(): void {}\n\n end(): void {\n this.handle.end();\n }\n\n setPipeline(pipeline: RenderPipeline): void {\n this.pipeline = cast<WebGPURenderPipeline>(pipeline);\n this.handle.setPipeline(this.pipeline.handle);\n }\n\n /** Sets an array of bindings (uniform buffers, samplers, textures, ...) */\n setBindings(bindings: Record<string, Binding>): void {\n this.pipeline?.setBindings(bindings);\n const bindGroup = this.pipeline?._getBindGroup();\n if (bindGroup) {\n this.handle.setBindGroup(0, bindGroup);\n }\n }\n\n setIndexBuffer(\n buffer: Buffer,\n indexFormat: GPUIndexFormat,\n offset: number = 0,\n size?: number\n ): void {\n this.handle.setIndexBuffer(cast<WebGPUBuffer>(buffer).handle, indexFormat, offset, size);\n }\n\n setVertexBuffer(slot: number, buffer: Buffer, offset: number = 0): void {\n this.handle.setVertexBuffer(slot, cast<WebGPUBuffer>(buffer).handle, offset);\n }\n\n draw(options: {\n vertexCount?: number;\n indexCount?: number;\n instanceCount?: number;\n firstVertex?: number;\n firstIndex?: number;\n firstInstance?: number;\n baseVertex?: number;\n }): void {\n if (options.indexCount) {\n this.handle.drawIndexed(\n options.indexCount,\n options.instanceCount,\n options.firstIndex,\n options.baseVertex,\n options.firstInstance\n );\n } else {\n this.handle.draw(\n options.vertexCount || 0,\n options.instanceCount,\n options.firstIndex,\n options.firstInstance\n );\n }\n }\n\n drawIndirect(): void {\n // drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: number): void;\n // drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: number): void;\n }\n\n setParameters(parameters: RenderPassParameters): void {\n const {blendConstant, stencilReference, scissorRect, viewport} = parameters;\n if (blendConstant) {\n this.handle.setBlendConstant(blendConstant);\n }\n if (stencilReference) {\n this.handle.setStencilReference(stencilReference);\n }\n if (scissorRect) {\n this.handle.setScissorRect(scissorRect[0], scissorRect[1], scissorRect[2], scissorRect[3]);\n }\n // TODO - explain how 3 dimensions vs 2 in WebGL works.\n if (viewport) {\n this.handle.setViewport(\n viewport[0],\n viewport[1],\n viewport[2],\n viewport[3],\n viewport[4],\n viewport[5]\n );\n }\n }\n\n pushDebugGroup(groupLabel: string): void {\n this.handle.pushDebugGroup(groupLabel);\n }\n popDebugGroup(): void {\n this.handle.popDebugGroup();\n }\n insertDebugMarker(markerLabel: string): void {\n this.handle.insertDebugMarker(markerLabel);\n }\n\n // writeTimestamp(querySet: GPUQuerySet, queryIndex: number): void;\n // beginOcclusionQuery(queryIndex: number): void;\n // endOcclusionQuery(): void;\n // beginPipelineStatisticsQuery(querySet: GPUQuerySet, queryIndex: number): void;\n // endPipelineStatisticsQuery(querySet: GPUQuerySet, queryIndex: number): void;\n\n // executeBundles(bundles: Iterable<GPURenderBundle>): void;\n}\n"],"mappings":"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"}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
-
var _api = require("@luma.gl/api");
|
|
17
|
-
var _webgpuParameters = require("../helpers/webgpu-parameters");
|
|
18
|
-
var _convertTextureFormat = require("../helpers/convert-texture-format");
|
|
19
|
-
var _getBindGroup2 = require("../helpers/get-bind-group");
|
|
20
|
-
var _getVertexBufferLayout = require("../helpers/get-vertex-buffer-layout");
|
|
21
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
22
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
23
|
-
var WebGPURenderPipeline = function (_RenderPipeline) {
|
|
24
|
-
(0, _inherits2.default)(WebGPURenderPipeline, _RenderPipeline);
|
|
25
|
-
var _super = _createSuper(WebGPURenderPipeline);
|
|
26
|
-
function WebGPURenderPipeline(device, props) {
|
|
27
|
-
var _this;
|
|
28
|
-
(0, _classCallCheck2.default)(this, WebGPURenderPipeline);
|
|
29
|
-
_this = _super.call(this, device, props);
|
|
30
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
31
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
|
|
32
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "vs", void 0);
|
|
33
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fs", null);
|
|
34
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_bufferSlots", void 0);
|
|
35
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_buffers", void 0);
|
|
36
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_indexBuffer", null);
|
|
37
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_bindGroupLayout", void 0);
|
|
38
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_bindGroup", null);
|
|
39
|
-
_this.device = device;
|
|
40
|
-
_this.handle = _this.props.handle || _this.createHandle();
|
|
41
|
-
_this.handle.label = _this.props.id;
|
|
42
|
-
_this.vs = (0, _api.cast)(props.vs);
|
|
43
|
-
_this.fs = (0, _api.cast)(props.fs);
|
|
44
|
-
_this._bufferSlots = (0, _getVertexBufferLayout.getBufferSlots)(_this.props.layout, _this.props.bufferMap);
|
|
45
|
-
_this._buffers = new Array(Object.keys(_this._bufferSlots).length).fill(null);
|
|
46
|
-
_this._bindGroupLayout = _this.handle.getBindGroupLayout(0);
|
|
47
|
-
return _this;
|
|
48
|
-
}
|
|
49
|
-
(0, _createClass2.default)(WebGPURenderPipeline, [{
|
|
50
|
-
key: "createHandle",
|
|
51
|
-
value: function createHandle() {
|
|
52
|
-
var descriptor = this._getRenderPipelineDescriptor();
|
|
53
|
-
var renderPipeline = this.device.handle.createRenderPipeline(descriptor);
|
|
54
|
-
_api.log.groupCollapsed(1, "new WebGPRenderPipeline(".concat(this.id, ")"))();
|
|
55
|
-
_api.log.log(1, JSON.stringify(descriptor, null, 2))();
|
|
56
|
-
_api.log.groupEnd(1)();
|
|
57
|
-
return renderPipeline;
|
|
58
|
-
}
|
|
59
|
-
}, {
|
|
60
|
-
key: "destroy",
|
|
61
|
-
value: function destroy() {}
|
|
62
|
-
}, {
|
|
63
|
-
key: "setIndexBuffer",
|
|
64
|
-
value: function setIndexBuffer(indexBuffer) {
|
|
65
|
-
this._indexBuffer = (0, _api.cast)(indexBuffer);
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
key: "setAttributes",
|
|
69
|
-
value: function setAttributes(attributes) {
|
|
70
|
-
for (var _i = 0, _Object$entries = Object.entries(attributes); _i < _Object$entries.length; _i++) {
|
|
71
|
-
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
|
|
72
|
-
name = _Object$entries$_i[0],
|
|
73
|
-
buffer = _Object$entries$_i[1];
|
|
74
|
-
var bufferIndex = this._bufferSlots[name];
|
|
75
|
-
if (bufferIndex >= 0) {
|
|
76
|
-
this._buffers[bufferIndex] = buffer;
|
|
77
|
-
} else {
|
|
78
|
-
throw new Error("Setting attribute '".concat(name, "' not listed in shader layout for program ").concat(this.id));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}, {
|
|
83
|
-
key: "setBindings",
|
|
84
|
-
value: function setBindings(bindings) {
|
|
85
|
-
if (!(0, _api.isObjectEmpty)(this.props.bindings)) {
|
|
86
|
-
Object.assign(this.props.bindings, bindings);
|
|
87
|
-
this._bindGroup = (0, _getBindGroup2.getBindGroup)(this.device.handle, this._bindGroupLayout, this.props.layout, this.props.bindings);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}, {
|
|
91
|
-
key: "setUniforms",
|
|
92
|
-
value: function setUniforms(uniforms) {
|
|
93
|
-
if (!(0, _api.isObjectEmpty)(uniforms)) {
|
|
94
|
-
throw new Error('WebGPU does not support uniforms');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}, {
|
|
98
|
-
key: "_getBuffers",
|
|
99
|
-
value: function _getBuffers() {
|
|
100
|
-
return this._buffers;
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "_getBindGroup",
|
|
104
|
-
value: function _getBindGroup() {
|
|
105
|
-
return this._bindGroup;
|
|
106
|
-
}
|
|
107
|
-
}, {
|
|
108
|
-
key: "_getRenderPipelineDescriptor",
|
|
109
|
-
value: function _getRenderPipelineDescriptor() {
|
|
110
|
-
var vertex = {
|
|
111
|
-
module: (0, _api.cast)(this.props.vs).handle,
|
|
112
|
-
entryPoint: this.props.vsEntryPoint || 'main',
|
|
113
|
-
buffers: (0, _getVertexBufferLayout.getVertexBufferLayout)(this.props.layout, this.props.bufferMap)
|
|
114
|
-
};
|
|
115
|
-
var fragment;
|
|
116
|
-
if (this.props.fs) {
|
|
117
|
-
var _this$device, _this$device$canvasCo;
|
|
118
|
-
fragment = {
|
|
119
|
-
module: (0, _api.cast)(this.props.fs).handle,
|
|
120
|
-
entryPoint: this.props.fsEntryPoint || 'main',
|
|
121
|
-
targets: [{
|
|
122
|
-
format: (0, _convertTextureFormat.getWebGPUTextureFormat)((_this$device = this.device) === null || _this$device === void 0 ? void 0 : (_this$device$canvasCo = _this$device.canvasContext) === null || _this$device$canvasCo === void 0 ? void 0 : _this$device$canvasCo.format)
|
|
123
|
-
}]
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
switch (this.props.topology) {
|
|
127
|
-
case 'triangle-fan':
|
|
128
|
-
case 'line-loop':
|
|
129
|
-
throw new Error("WebGPU does not support primitive topology ".concat(this.props.topology));
|
|
130
|
-
default:
|
|
131
|
-
}
|
|
132
|
-
var descriptor = {
|
|
133
|
-
vertex: vertex,
|
|
134
|
-
fragment: fragment,
|
|
135
|
-
primitive: {
|
|
136
|
-
topology: this.props.topology
|
|
137
|
-
},
|
|
138
|
-
layout: 'auto'
|
|
139
|
-
};
|
|
140
|
-
(0, _webgpuParameters.applyParametersToRenderPipelineDescriptor)(descriptor, this.props.parameters);
|
|
141
|
-
return descriptor;
|
|
142
|
-
}
|
|
143
|
-
}, {
|
|
144
|
-
key: "draw",
|
|
145
|
-
value: function draw(options) {
|
|
146
|
-
var webgpuRenderPass = (0, _api.cast)(options.renderPass) || this.device.getDefaultRenderPass();
|
|
147
|
-
webgpuRenderPass.handle.setPipeline(this.handle);
|
|
148
|
-
var bindGroup = this._getBindGroup();
|
|
149
|
-
if (bindGroup) {
|
|
150
|
-
webgpuRenderPass.handle.setBindGroup(0, bindGroup);
|
|
151
|
-
}
|
|
152
|
-
this._setAttributeBuffers(webgpuRenderPass);
|
|
153
|
-
if (options.indexCount) {
|
|
154
|
-
webgpuRenderPass.handle.drawIndexed(options.indexCount, options.instanceCount, options.firstIndex, options.baseVertex, options.firstInstance);
|
|
155
|
-
} else {
|
|
156
|
-
webgpuRenderPass.handle.draw(options.vertexCount || 0, options.instanceCount, options.firstIndex, options.firstInstance);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}, {
|
|
160
|
-
key: "_setAttributeBuffers",
|
|
161
|
-
value: function _setAttributeBuffers(webgpuRenderPass) {
|
|
162
|
-
var _this2 = this;
|
|
163
|
-
if (this._indexBuffer) {
|
|
164
|
-
webgpuRenderPass.handle.setIndexBuffer(this._indexBuffer.handle, this._indexBuffer.props.indexType);
|
|
165
|
-
}
|
|
166
|
-
var buffers = this._getBuffers();
|
|
167
|
-
var _loop = function _loop(i) {
|
|
168
|
-
var buffer = (0, _api.cast)(buffers[i]);
|
|
169
|
-
if (!buffer) {
|
|
170
|
-
var attribute = _this2.props.layout.attributes.find(function (attribute) {
|
|
171
|
-
return attribute.location === i;
|
|
172
|
-
});
|
|
173
|
-
throw new Error("No buffer provided for attribute '".concat((attribute === null || attribute === void 0 ? void 0 : attribute.name) || '', "' in Model '").concat(_this2.props.id, "'"));
|
|
174
|
-
}
|
|
175
|
-
webgpuRenderPass.handle.setVertexBuffer(i, buffer.handle);
|
|
176
|
-
};
|
|
177
|
-
for (var i = 0; i < buffers.length; ++i) {
|
|
178
|
-
_loop(i);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}]);
|
|
182
|
-
return WebGPURenderPipeline;
|
|
183
|
-
}(_api.RenderPipeline);
|
|
184
|
-
exports.default = WebGPURenderPipeline;
|
|
185
|
-
//# sourceMappingURL=webgpu-render-pipeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-render-pipeline.js","names":["_api","require","_webgpuParameters","_convertTextureFormat","_getBindGroup2","_getVertexBufferLayout","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WebGPURenderPipeline","_RenderPipeline","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","handle","createHandle","label","id","vs","cast","fs","_bufferSlots","getBufferSlots","layout","bufferMap","_buffers","Array","Object","keys","length","fill","_bindGroupLayout","getBindGroupLayout","_createClass2","key","value","descriptor","_getRenderPipelineDescriptor","renderPipeline","createRenderPipeline","log","groupCollapsed","concat","JSON","stringify","groupEnd","destroy","setIndexBuffer","indexBuffer","_indexBuffer","setAttributes","attributes","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray2","name","buffer","bufferIndex","Error","setBindings","bindings","isObjectEmpty","assign","_bindGroup","getBindGroup","setUniforms","uniforms","_getBuffers","_getBindGroup","vertex","module","entryPoint","vsEntryPoint","buffers","getVertexBufferLayout","fragment","_this$device","_this$device$canvasCo","fsEntryPoint","targets","format","getWebGPUTextureFormat","canvasContext","topology","primitive","applyParametersToRenderPipelineDescriptor","parameters","draw","options","webgpuRenderPass","renderPass","getDefaultRenderPass","setPipeline","bindGroup","setBindGroup","_setAttributeBuffers","indexCount","drawIndexed","instanceCount","firstIndex","baseVertex","firstInstance","vertexCount","_this2","indexType","_loop","i","attribute","find","location","setVertexBuffer","RenderPipeline","exports"],"sources":["../../../../src/adapter/resources/webgpu-render-pipeline.ts"],"sourcesContent":["import type {Binding, RenderPass} from '@luma.gl/api';\nimport {Buffer, RenderPipeline, RenderPipelineProps, cast, log, isObjectEmpty} from '@luma.gl/api';\nimport {applyParametersToRenderPipelineDescriptor} from '../helpers/webgpu-parameters';\nimport {getWebGPUTextureFormat} from '../helpers/convert-texture-format';\nimport {getBindGroup} from '../helpers/get-bind-group';\nimport {getVertexBufferLayout, getBufferSlots} from '../helpers/get-vertex-buffer-layout';\n// import {convertAttributesVertexBufferToLayout} from '../helpers/get-vertex-buffer-layout';\n// import {mapAccessorToWebGPUFormat} from './helpers/accessor-to-format';\n// import type {BufferAccessors} from './webgpu-pipeline';\n\nimport type WebGPUDevice from '../webgpu-device';\nimport type WebGPUBuffer from './webgpu-buffer';\nimport type WebGPUShader from './webgpu-shader';\nimport type WebGPURenderPass from './webgpu-render-pass';\n\n// RENDER PIPELINE\n\n/** Creates a new render pipeline when parameters change */\nexport default class WebGPURenderPipeline extends RenderPipeline {\n device: WebGPUDevice;\n handle: GPURenderPipeline;\n\n vs: WebGPUShader;\n fs: WebGPUShader | null = null;\n\n private _bufferSlots: Record<string, number>;\n private _buffers: Buffer[];\n private _indexBuffer: WebGPUBuffer | null = null;\n // private _firstIndex: number;\n // private _lastIndex: number;\n\n /** For internal use to create BindGroups */\n private _bindGroupLayout: GPUBindGroupLayout;\n private _bindGroup: GPUBindGroup | null = null;\n\n constructor(device: WebGPUDevice, props: RenderPipelineProps) {\n super(device, props);\n this.device = device;\n this.handle = (this.props.handle as GPURenderPipeline) || this.createHandle();\n this.handle.label = this.props.id;\n\n this.vs = cast<WebGPUShader>(props.vs);\n this.fs = cast<WebGPUShader>(props.fs);\n\n this._bufferSlots = getBufferSlots(this.props.layout, this.props.bufferMap);\n this._buffers = new Array<Buffer>(Object.keys(this._bufferSlots).length).fill(null);\n this._bindGroupLayout = this.handle.getBindGroupLayout(0);\n }\n\n protected createHandle(): GPURenderPipeline {\n const descriptor = this._getRenderPipelineDescriptor();\n const renderPipeline = this.device.handle.createRenderPipeline(descriptor);\n log.groupCollapsed(1, `new WebGPRenderPipeline(${this.id})`)();\n log.log(1, JSON.stringify(descriptor, null, 2))();\n log.groupEnd(1)();\n return renderPipeline;\n }\n\n override destroy(): void {\n // WebGPURenderPipeline has no destroy method.\n }\n\n setIndexBuffer(indexBuffer: Buffer): void {\n this._indexBuffer = cast<WebGPUBuffer>(indexBuffer);\n }\n\n setAttributes(attributes: Record<string, Buffer>): void {\n for (const [name, buffer] of Object.entries(attributes)) {\n const bufferIndex = this._bufferSlots[name];\n if (bufferIndex >= 0) {\n this._buffers[bufferIndex] = buffer;\n } else {\n throw new Error(\n `Setting attribute '${name}' not listed in shader layout for program ${this.id}`\n );\n }\n }\n // for (let i = 0; i < this._bufferSlots.length; ++i) {\n // const bufferName = this._bufferSlots[i];\n // if (attributes[bufferName]) {\n // this.handle\n // }\n // }\n }\n\n /** Set the bindings */\n setBindings(bindings: Record<string, Binding>): void {\n if (!isObjectEmpty(this.props.bindings)) {\n Object.assign(this.props.bindings, bindings);\n // Set up the bindings\n this._bindGroup = getBindGroup(\n this.device.handle,\n this._bindGroupLayout,\n this.props.layout,\n this.props.bindings\n );\n }\n }\n\n setUniforms(uniforms: Record<string, any>): void {\n if (!isObjectEmpty(uniforms)) {\n throw new Error('WebGPU does not support uniforms');\n }\n }\n\n _getBuffers() {\n return this._buffers;\n }\n\n /** Return a bind group created by setBindings */\n _getBindGroup() {\n // assert(this._bindGroup);\n return this._bindGroup;\n }\n\n /** Populate the complex WebGPU GPURenderPipelineDescriptor */\n protected _getRenderPipelineDescriptor() {\n // Set up the vertex stage\n const vertex: GPUVertexState = {\n module: cast<WebGPUShader>(this.props.vs).handle,\n entryPoint: this.props.vsEntryPoint || 'main',\n buffers: getVertexBufferLayout(this.props.layout, this.props.bufferMap)\n };\n\n // Set up the fragment stage\n let fragment: GPUFragmentState | undefined;\n if (this.props.fs) {\n fragment = {\n module: cast<WebGPUShader>(this.props.fs).handle,\n entryPoint: this.props.fsEntryPoint || 'main',\n targets: [\n {\n // TODO exclamation mark hack!\n format: getWebGPUTextureFormat(this.device?.canvasContext?.format!)\n }\n ]\n };\n }\n\n // WebGPU has more restrictive topology support than WebGL\n switch (this.props.topology) {\n case 'triangle-fan':\n case 'line-loop':\n throw new Error(`WebGPU does not support primitive topology ${this.props.topology}`);\n default:\n }\n\n // Create a partially populated descriptor\n let descriptor: GPURenderPipelineDescriptor = {\n vertex,\n fragment,\n primitive: {\n topology: this.props.topology\n },\n layout: 'auto'\n };\n\n // Set parameters on the descriptor\n applyParametersToRenderPipelineDescriptor(descriptor, this.props.parameters);\n\n return descriptor;\n }\n\n draw(options: {\n renderPass?: RenderPass;\n vertexCount?: number;\n indexCount?: number;\n instanceCount?: number;\n firstVertex?: number;\n firstIndex?: number;\n firstInstance?: number;\n baseVertex?: number;\n }): void {\n const webgpuRenderPass: WebGPURenderPass =\n cast<WebGPURenderPass>(options.renderPass) || this.device.getDefaultRenderPass();\n\n // Set pipeline\n webgpuRenderPass.handle.setPipeline(this.handle);\n\n // Set bindings (uniform buffers, textures etc)\n const bindGroup = this._getBindGroup();\n if (bindGroup) {\n webgpuRenderPass.handle.setBindGroup(0, bindGroup);\n }\n\n // Set attributes\n this._setAttributeBuffers(webgpuRenderPass);\n\n // Draw\n if (options.indexCount) {\n webgpuRenderPass.handle.drawIndexed(\n options.indexCount,\n options.instanceCount,\n options.firstIndex,\n options.baseVertex,\n options.firstInstance\n );\n } else {\n webgpuRenderPass.handle.draw(\n options.vertexCount || 0,\n options.instanceCount,\n options.firstIndex,\n options.firstInstance\n );\n }\n }\n\n _setAttributeBuffers(webgpuRenderPass: WebGPURenderPass) {\n if (this._indexBuffer) {\n webgpuRenderPass.handle.setIndexBuffer(this._indexBuffer.handle, this._indexBuffer.props.indexType);\n }\n\n const buffers = this._getBuffers();\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = cast<WebGPUBuffer>(buffers[i]);\n if (!buffer) {\n const attribute = this.props.layout.attributes.find(\n (attribute) => attribute.location === i\n );\n throw new Error(\n `No buffer provided for attribute '${attribute?.name || ''}' in Model '${this.props.id}'`\n );\n }\n webgpuRenderPass.handle.setVertexBuffer(i, buffer.handle);\n }\n\n // TODO - HANDLE buffer maps\n /*\n for (const [bufferName, attributeMapping] of Object.entries(this.props.bufferMap)) {\n const buffer = cast<WebGPUBuffer>(this.props.attributes[bufferName]);\n if (!buffer) {\n log.warn(`Missing buffer for buffer map ${bufferName}`)();\n continue;\n }\n\n if ('location' in attributeMapping) {\n // @ts-expect-error TODO model must not depend on webgpu\n renderPass.handle.setVertexBuffer(layout.location, buffer.handle);\n } else {\n for (const [bufferName, mapping] of Object.entries(attributeMapping)) {\n // @ts-expect-error TODO model must not depend on webgpu\n renderPass.handle.setVertexBuffer(field.location, buffer.handle);\n }\n }\n }\n */\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
var _api = require("@luma.gl/api");
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
-
var WebGPUSampler = function (_Sampler) {
|
|
21
|
-
(0, _inherits2.default)(WebGPUSampler, _Sampler);
|
|
22
|
-
var _super = _createSuper(WebGPUSampler);
|
|
23
|
-
function WebGPUSampler(device, props) {
|
|
24
|
-
var _this;
|
|
25
|
-
(0, _classCallCheck2.default)(this, WebGPUSampler);
|
|
26
|
-
_this = _super.call(this, device, props);
|
|
27
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
28
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
|
|
29
|
-
_this.device = device;
|
|
30
|
-
var samplerProps = _objectSpread({}, _this.props);
|
|
31
|
-
if (samplerProps.type !== 'comparison-sampler') {
|
|
32
|
-
delete samplerProps.compare;
|
|
33
|
-
}
|
|
34
|
-
_this.handle = _this.handle || _this.device.handle.createSampler(samplerProps);
|
|
35
|
-
_this.handle.label = _this.props.id;
|
|
36
|
-
return _this;
|
|
37
|
-
}
|
|
38
|
-
(0, _createClass2.default)(WebGPUSampler, [{
|
|
39
|
-
key: "destroy",
|
|
40
|
-
value: function destroy() {}
|
|
41
|
-
}]);
|
|
42
|
-
return WebGPUSampler;
|
|
43
|
-
}(_api.Sampler);
|
|
44
|
-
exports.default = WebGPUSampler;
|
|
45
|
-
//# sourceMappingURL=webgpu-sampler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-sampler.js","names":["_api","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WebGPUSampler","_Sampler","_inherits2","_super","device","props","_this","_classCallCheck2","_assertThisInitialized2","samplerProps","type","compare","handle","createSampler","label","id","_createClass2","value","destroy","Sampler","exports"],"sources":["../../../../src/adapter/resources/webgpu-sampler.ts"],"sourcesContent":["import {Sampler, SamplerProps} from '@luma.gl/api';\nimport type WebGPUDevice from '../webgpu-device';\n\nexport type WebGPUSamplerProps = SamplerProps & {\n handle?: GPUSampler;\n}\n\n/**\n *\n */\nexport default class WebGPUSampler extends Sampler {\n readonly device: WebGPUDevice;\n readonly handle: GPUSampler;\n\n constructor(device: WebGPUDevice, props: WebGPUSamplerProps) {\n super(device, props);\n this.device = device;\n\n // Prepare sampler props\n const samplerProps: Partial<WebGPUSamplerProps> = {...this.props};\n if (samplerProps.type !== 'comparison-sampler') {\n delete samplerProps.compare;\n }\n\n this.handle = this.handle || this.device.handle.createSampler(samplerProps);\n this.handle.label = this.props.id;\n }\n\n override destroy(): void {\n // this.handle.destroy();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var _api = require("@luma.gl/api");
|
|
18
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
-
var WebGPUShader = function (_Shader) {
|
|
21
|
-
(0, _inherits2.default)(WebGPUShader, _Shader);
|
|
22
|
-
var _super = _createSuper(WebGPUShader);
|
|
23
|
-
function WebGPUShader(device, props) {
|
|
24
|
-
var _this;
|
|
25
|
-
(0, _classCallCheck2.default)(this, WebGPUShader);
|
|
26
|
-
_this = _super.call(this, device, props);
|
|
27
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
28
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
|
|
29
|
-
_this.device = device;
|
|
30
|
-
_this.device.handle.pushErrorScope('validation');
|
|
31
|
-
_this.handle = _this.props.handle || _this.createHandle();
|
|
32
|
-
_this.handle.label = _this.props.id;
|
|
33
|
-
_this._checkCompilationError(_this.device.handle.popErrorScope());
|
|
34
|
-
return _this;
|
|
35
|
-
}
|
|
36
|
-
(0, _createClass2.default)(WebGPUShader, [{
|
|
37
|
-
key: "_checkCompilationError",
|
|
38
|
-
value: function () {
|
|
39
|
-
var _checkCompilationError2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(errorScope) {
|
|
40
|
-
var error, shaderLog;
|
|
41
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
42
|
-
while (1) switch (_context.prev = _context.next) {
|
|
43
|
-
case 0:
|
|
44
|
-
_context.next = 2;
|
|
45
|
-
return errorScope;
|
|
46
|
-
case 2:
|
|
47
|
-
error = _context.sent;
|
|
48
|
-
if (!error) {
|
|
49
|
-
_context.next = 9;
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
_context.next = 6;
|
|
53
|
-
return this.compilationInfo();
|
|
54
|
-
case 6:
|
|
55
|
-
shaderLog = _context.sent;
|
|
56
|
-
_api.log.error("Shader compilation error: ".concat(error.message), shaderLog)();
|
|
57
|
-
throw new Error("Shader compilation error: ".concat(error.message));
|
|
58
|
-
case 9:
|
|
59
|
-
case "end":
|
|
60
|
-
return _context.stop();
|
|
61
|
-
}
|
|
62
|
-
}, _callee, this);
|
|
63
|
-
}));
|
|
64
|
-
function _checkCompilationError(_x) {
|
|
65
|
-
return _checkCompilationError2.apply(this, arguments);
|
|
66
|
-
}
|
|
67
|
-
return _checkCompilationError;
|
|
68
|
-
}()
|
|
69
|
-
}, {
|
|
70
|
-
key: "destroy",
|
|
71
|
-
value: function destroy() {}
|
|
72
|
-
}, {
|
|
73
|
-
key: "createHandle",
|
|
74
|
-
value: function createHandle() {
|
|
75
|
-
var _this2 = this;
|
|
76
|
-
var source = this.props.source;
|
|
77
|
-
var language = this.props.language;
|
|
78
|
-
if (!language) {
|
|
79
|
-
language = source.includes('->') ? 'wgsl' : 'glsl';
|
|
80
|
-
}
|
|
81
|
-
switch (language) {
|
|
82
|
-
case 'wgsl':
|
|
83
|
-
return this.device.handle.createShaderModule({
|
|
84
|
-
code: source
|
|
85
|
-
});
|
|
86
|
-
case 'glsl':
|
|
87
|
-
return this.device.handle.createShaderModule({
|
|
88
|
-
code: source,
|
|
89
|
-
transform: function transform(glsl) {
|
|
90
|
-
return _this2.device.glslang.compileGLSL(glsl, type);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
default:
|
|
94
|
-
throw new Error(language);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}, {
|
|
98
|
-
key: "compilationInfo",
|
|
99
|
-
value: function () {
|
|
100
|
-
var _compilationInfo = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
101
|
-
var compilationInfo;
|
|
102
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
103
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
104
|
-
case 0:
|
|
105
|
-
_context2.next = 2;
|
|
106
|
-
return this.handle.getCompilationInfo();
|
|
107
|
-
case 2:
|
|
108
|
-
compilationInfo = _context2.sent;
|
|
109
|
-
return _context2.abrupt("return", compilationInfo.messages);
|
|
110
|
-
case 4:
|
|
111
|
-
case "end":
|
|
112
|
-
return _context2.stop();
|
|
113
|
-
}
|
|
114
|
-
}, _callee2, this);
|
|
115
|
-
}));
|
|
116
|
-
function compilationInfo() {
|
|
117
|
-
return _compilationInfo.apply(this, arguments);
|
|
118
|
-
}
|
|
119
|
-
return compilationInfo;
|
|
120
|
-
}()
|
|
121
|
-
}]);
|
|
122
|
-
return WebGPUShader;
|
|
123
|
-
}(_api.Shader);
|
|
124
|
-
exports.default = WebGPUShader;
|
|
125
|
-
//# sourceMappingURL=webgpu-shader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-shader.js","names":["_api","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WebGPUShader","_Shader","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","handle","pushErrorScope","createHandle","label","id","_checkCompilationError","popErrorScope","_createClass2","key","value","_checkCompilationError2","_asyncToGenerator2","_regenerator","mark","_callee","errorScope","error","shaderLog","wrap","_callee$","_context","prev","next","sent","compilationInfo","log","concat","message","Error","stop","_x","destroy","_this2","source","language","includes","createShaderModule","code","transform","glsl","glslang","compileGLSL","type","_compilationInfo","_callee2","_callee2$","_context2","getCompilationInfo","abrupt","messages","Shader","exports"],"sources":["../../../../src/adapter/resources/webgpu-shader.ts"],"sourcesContent":["import type {ShaderProps, CompilerMessage} from '@luma.gl/api';\nimport {Shader, log} from '@luma.gl/api';\nimport type WebGPUDevice from '../webgpu-device';\n\nexport type WebGPUShaderProps = ShaderProps & {\n handle?: GPUShaderModule;\n};\n\n/**\n * Immutable shader\n */\nexport default class WebGPUShader extends Shader {\n readonly device: WebGPUDevice;\n readonly handle: GPUShaderModule;\n\n constructor(device: WebGPUDevice, props: WebGPUShaderProps) {\n super(device, props);\n this.device = device;\n\n this.device.handle.pushErrorScope('validation');\n\n this.handle = this.props.handle || this.createHandle();\n this.handle.label = this.props.id;\n\n this._checkCompilationError(this.device.handle.popErrorScope());\n }\n\n async _checkCompilationError(errorScope: Promise<GPUError | null>): Promise<void> {\n const error = await errorScope as GPUValidationError;\n if (error) {\n const shaderLog = await this.compilationInfo();\n log.error(`Shader compilation error: ${error.message}`, shaderLog)();\n // Note: Even though this error is asynchronous and thrown after the constructor completes,\n // it will result in a useful stack trace leading back to the constructor\n throw new Error(`Shader compilation error: ${error.message}`);\n }\n }\n\n override destroy(): void {\n // this.handle.destroy();\n }\n\n protected createHandle(): GPUShaderModule {\n const {source} = this.props;\n\n let language = this.props.language;\n // Compile from src\n if (!language) {\n // wgsl uses C++ \"auto\" style arrow notation\n language = source.includes('->') ? 'wgsl' : 'glsl';\n }\n\n switch(language) {\n case 'wgsl':\n return this.device.handle.createShaderModule({code: source});\n case 'glsl':\n return this.device.handle.createShaderModule({\n code: source,\n // @ts-expect-error\n transform: (glsl) => this.device.glslang.compileGLSL(glsl, type)\n });\n default:\n throw new Error(language);\n }\n }\n\n /** Returns compilation info for this shader */\n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const compilationInfo = await this.handle.getCompilationInfo();\n return compilationInfo.messages;\n }\n}\n"],"mappings":"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"}
|