1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport * as WebGPUConstants from \"./webgpuConstants.js\";\n/** @internal */\nexport class WebGPUQuerySet {\n get querySet() {\n return this._querySet;\n }\n constructor(engine, count, type, device, bufferManager, canUseMultipleBuffers = true, label) {\n this._dstBuffers = [];\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n this._count = count;\n this._canUseMultipleBuffers = canUseMultipleBuffers;\n this._querySet = device.createQuerySet({\n label: label !== null && label !== void 0 ? label : \"QuerySet\",\n type,\n count\n });\n this._queryBuffer = bufferManager.createRawBuffer(8 * count, WebGPUConstants.BufferUsage.QueryResolve | WebGPUConstants.BufferUsage.CopySrc, undefined, \"QueryBuffer\");\n if (!canUseMultipleBuffers) {\n this._dstBuffers.push(this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferNoMultipleBuffers\"));\n }\n }\n _getBuffer(firstQuery, queryCount) {\n if (!this._canUseMultipleBuffers && this._dstBuffers.length === 0) {\n return null;\n }\n const encoderResult = this._device.createCommandEncoder();\n let buffer;\n if (this._dstBuffers.length === 0) {\n buffer = this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferAdditionalBuffer\");\n } else {\n buffer = this._dstBuffers[this._dstBuffers.length - 1];\n this._dstBuffers.length--;\n }\n encoderResult.resolveQuerySet(this._querySet, firstQuery, queryCount, this._queryBuffer, 0);\n encoderResult.copyBufferToBuffer(this._queryBuffer, 0, buffer, 0, 8 * queryCount);\n this._device.queue.submit([encoderResult.finish()]);\n return buffer;\n }\n readValues(firstQuery = 0, queryCount = 1) {\n var _this = this;\n return _asyncToGenerator(function* () {\n const buffer = _this._getBuffer(firstQuery, queryCount);\n if (buffer === null) {\n return null;\n }\n const engineId = _this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange()).slice();\n buffer.unmap();\n _this._dstBuffers[_this._dstBuffers.length] = buffer;\n return arrayBuf;\n }, err => {\n if (_this._engine.isDisposed || _this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return null;\n }\n throw err;\n });\n })();\n }\n readValue(firstQuery = 0) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n const buffer = _this2._getBuffer(firstQuery, 1);\n if (buffer === null) {\n return null;\n }\n const engineId = _this2._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[0]);\n buffer.unmap();\n _this2._dstBuffers[_this2._dstBuffers.length] = buffer;\n return value;\n }, err => {\n if (_this2._engine.isDisposed || _this2._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n })();\n }\n readTwoValuesAndSubtract(firstQuery = 0) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n const buffer = _this3._getBuffer(firstQuery, 2);\n if (buffer === null) {\n return null;\n }\n const engineId = _this3._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[1] - arrayBuf[0]);\n buffer.unmap();\n _this3._dstBuffers[_this3._dstBuffers.length] = buffer;\n return value;\n }, err => {\n if (_this3._engine.isDisposed || _this3._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n })();\n }\n dispose() {\n this._querySet.destroy();\n this._bufferManager.releaseBuffer(this._queryBuffer);\n for (let i = 0; i < this._dstBuffers.length; ++i) {\n this._bufferManager.releaseBuffer(this._dstBuffers[i]);\n }\n }\n}","map":{"version":3,"names":["WebGPUConstants","WebGPUQuerySet","querySet","_querySet","constructor","engine","count","type","device","bufferManager","canUseMultipleBuffers","label","_dstBuffers","_engine","_device","_bufferManager","_count","_canUseMultipleBuffers","createQuerySet","_queryBuffer","createRawBuffer","BufferUsage","QueryResolve","CopySrc","undefined","push","MapRead","CopyDst","_getBuffer","firstQuery","queryCount","length","encoderResult","createCommandEncoder","buffer","resolveQuerySet","copyBufferToBuffer","queue","submit","finish","readValues","_this","_asyncToGenerator","engineId","uniqueId","mapAsync","then","arrayBuf","BigUint64Array","getMappedRange","slice","unmap","err","isDisposed","readValue","_this2","value","Number","readTwoValuesAndSubtract","_this3","dispose","destroy","releaseBuffer","i"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/WebGPU/webgpuQuerySet.js"],"sourcesContent":["import * as WebGPUConstants from \"./webgpuConstants.js\";\n/** @internal */\nexport class WebGPUQuerySet {\n get querySet() {\n return this._querySet;\n }\n constructor(engine, count, type, device, bufferManager, canUseMultipleBuffers = true, label) {\n this._dstBuffers = [];\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n this._count = count;\n this._canUseMultipleBuffers = canUseMultipleBuffers;\n this._querySet = device.createQuerySet({\n label: label ?? \"QuerySet\",\n type,\n count,\n });\n this._queryBuffer = bufferManager.createRawBuffer(8 * count, WebGPUConstants.BufferUsage.QueryResolve | WebGPUConstants.BufferUsage.CopySrc, undefined, \"QueryBuffer\");\n if (!canUseMultipleBuffers) {\n this._dstBuffers.push(this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferNoMultipleBuffers\"));\n }\n }\n _getBuffer(firstQuery, queryCount) {\n if (!this._canUseMultipleBuffers && this._dstBuffers.length === 0) {\n return null;\n }\n const encoderResult = this._device.createCommandEncoder();\n let buffer;\n if (this._dstBuffers.length === 0) {\n buffer = this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferAdditionalBuffer\");\n }\n else {\n buffer = this._dstBuffers[this._dstBuffers.length - 1];\n this._dstBuffers.length--;\n }\n encoderResult.resolveQuerySet(this._querySet, firstQuery, queryCount, this._queryBuffer, 0);\n encoderResult.copyBufferToBuffer(this._queryBuffer, 0, buffer, 0, 8 * queryCount);\n this._device.queue.submit([encoderResult.finish()]);\n return buffer;\n }\n async readValues(firstQuery = 0, queryCount = 1) {\n const buffer = this._getBuffer(firstQuery, queryCount);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange()).slice();\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return arrayBuf;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return null;\n }\n throw err;\n });\n }\n async readValue(firstQuery = 0) {\n const buffer = this._getBuffer(firstQuery, 1);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[0]);\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return value;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n }\n async readTwoValuesAndSubtract(firstQuery = 0) {\n const buffer = this._getBuffer(firstQuery, 2);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[1] - arrayBuf[0]);\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return value;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n }\n dispose() {\n this._querySet.destroy();\n this._bufferManager.releaseBuffer(this._queryBuffer);\n for (let i = 0; i < this._dstBuffers.length; ++i) {\n this._bufferManager.releaseBuffer(this._dstBuffers[i]);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|