1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { Logger } from "../../Misc/logger.js";
- import { Tools } from "../../Misc/tools.js";
- /** @internal */
- export class WebGPUTintWASM {
- async initTwgsl(twgslOptions) {
- if (WebGPUTintWASM._Twgsl) {
- return;
- }
- twgslOptions = twgslOptions || {};
- twgslOptions = {
- ...WebGPUTintWASM._TWgslDefaultOptions,
- ...twgslOptions,
- };
- if (twgslOptions.twgsl) {
- WebGPUTintWASM._Twgsl = twgslOptions.twgsl;
- return Promise.resolve();
- }
- if (twgslOptions.jsPath && twgslOptions.wasmPath) {
- await Tools.LoadBabylonScriptAsync(twgslOptions.jsPath);
- }
- if (self.twgsl) {
- WebGPUTintWASM._Twgsl = await self.twgsl(Tools.GetBabylonScriptURL(twgslOptions.wasmPath));
- return Promise.resolve();
- }
- return Promise.reject("twgsl is not available.");
- }
- convertSpirV2WGSL(code, disableUniformityAnalysis = false) {
- const ccode = WebGPUTintWASM._Twgsl.convertSpirV2WGSL(code, WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis);
- if (WebGPUTintWASM.ShowWGSLShaderCode) {
- Logger.Log(ccode);
- Logger.Log("***********************************************");
- }
- return WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis ? "diagnostic(off, derivative_uniformity);\n" + ccode : ccode;
- }
- }
- // Default twgsl options.
- WebGPUTintWASM._TWgslDefaultOptions = {
- jsPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.js`,
- wasmPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.wasm`,
- };
- WebGPUTintWASM.ShowWGSLShaderCode = false;
- WebGPUTintWASM.DisableUniformityAnalysis = false;
- WebGPUTintWASM._Twgsl = null;
- //# sourceMappingURL=webgpuTintWASM.js.map
|