@zephyr3d/device 0.2.4 → 0.2.6

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 (44) hide show
  1. package/dist/base_types.js +19 -79
  2. package/dist/base_types.js.map +1 -1
  3. package/dist/builder/ast.js +142 -162
  4. package/dist/builder/ast.js.map +1 -1
  5. package/dist/builder/base.js +29 -27
  6. package/dist/builder/base.js.map +1 -1
  7. package/dist/builder/builtinfunc.js +61 -7
  8. package/dist/builder/builtinfunc.js.map +1 -1
  9. package/dist/builder/constructors.js +3 -1
  10. package/dist/builder/constructors.js.map +1 -1
  11. package/dist/builder/errors.js +11 -11
  12. package/dist/builder/errors.js.map +1 -1
  13. package/dist/builder/misc.js +10 -0
  14. package/dist/builder/misc.js.map +1 -0
  15. package/dist/builder/programbuilder.js +62 -58
  16. package/dist/builder/programbuilder.js.map +1 -1
  17. package/dist/builder/reflection.js +1 -1
  18. package/dist/builder/reflection.js.map +1 -1
  19. package/dist/builder/types.js +76 -75
  20. package/dist/builder/types.js.map +1 -1
  21. package/dist/device.js +220 -80
  22. package/dist/device.js.map +1 -1
  23. package/dist/gpuobject.js +84 -25
  24. package/dist/gpuobject.js.map +1 -1
  25. package/dist/helpers/drawtext.js +30 -25
  26. package/dist/helpers/drawtext.js.map +1 -1
  27. package/dist/helpers/font.js +1 -0
  28. package/dist/helpers/font.js.map +1 -1
  29. package/dist/helpers/glyphmanager.js +33 -15
  30. package/dist/helpers/glyphmanager.js.map +1 -1
  31. package/dist/helpers/textureatlas.js +10 -8
  32. package/dist/helpers/textureatlas.js.map +1 -1
  33. package/dist/index.d.ts +465 -394
  34. package/dist/index.js +6 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/pool.js +69 -31
  37. package/dist/pool.js.map +1 -1
  38. package/dist/timer.js +3 -2
  39. package/dist/timer.js.map +1 -1
  40. package/dist/uniformdata.js +3 -3
  41. package/dist/uniformdata.js.map +1 -1
  42. package/dist/vertexdata.js +29 -3
  43. package/dist/vertexdata.js.map +1 -1
  44. package/package.json +80 -65
@@ -1 +1 @@
1
- {"version":3,"file":"builtinfunc.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"builtinfunc.js","sources":["../../src/builder/builtinfunc.ts"],"sourcesContent":["import * as typeinfo from './types';\r\nimport type { ASTExpression } from './ast';\r\nimport { ASTUnaryFunc, ASTBinaryFunc, ASTFunction, ASTAddressOf, ASTScalar } from './ast';\r\nimport { PBShaderExp } from './base';\r\nimport {\r\n PBDeviceNotSupport,\r\n PBOverloadingMatchError,\r\n PBParamLengthError,\r\n PBParamTypeError,\r\n PBParamValueError\r\n} from './errors';\r\nimport type { ExpValueType, ProgramBuilder } from './programbuilder';\r\nimport type { Nullable } from '@zephyr3d/base';\r\n\r\nconst genTypeList = [\r\n [typeinfo.typeF32, typeinfo.typeF32Vec2, typeinfo.typeF32Vec3, typeinfo.typeF32Vec4],\r\n [typeinfo.typeI32, typeinfo.typeI32Vec2, typeinfo.typeI32Vec3, typeinfo.typeI32Vec4],\r\n [typeinfo.typeU32, typeinfo.typeU32Vec2, typeinfo.typeU32Vec3, typeinfo.typeU32Vec4],\r\n [typeinfo.typeBool, typeinfo.typeBVec2, typeinfo.typeBVec3, typeinfo.typeBVec4]\r\n];\r\n\r\nconst genMatrixTypeList = [\r\n typeinfo.typeMat2,\r\n typeinfo.typeMat2x3,\r\n typeinfo.typeMat2x4,\r\n typeinfo.typeMat3x2,\r\n typeinfo.typeMat3,\r\n typeinfo.typeMat3x4,\r\n typeinfo.typeMat4x2,\r\n typeinfo.typeMat4x3,\r\n typeinfo.typeMat4\r\n];\r\n\r\nfunction matchFunctionOverloadings(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const bit =\r\n pb.getDevice().type === 'webgl'\r\n ? MASK_WEBGL1\r\n : pb.getDevice().type === 'webgl2'\r\n ? MASK_WEBGL2\r\n : MASK_WEBGPU;\r\n // @ts-ignore 7053\r\n const overloadings = builtinFunctionsAll[name].overloads\r\n // @ts-ignore 7006\r\n .filter((val) => !!(val[1] & bit))\r\n // @ts-ignore 7006\r\n .map((val) => val[0]);\r\n if (!overloadings || overloadings.length === 0) {\r\n throw new PBDeviceNotSupport(`builtin shader function '${name}'`);\r\n }\r\n const argsNonArray = args.map((val) => pb.normalizeExpValue(val)!);\r\n const matchResult = pb._matchFunctionOverloading(overloadings, argsNonArray);\r\n if (!matchResult) {\r\n throw new PBOverloadingMatchError(name);\r\n }\r\n return matchResult;\r\n}\r\nfunction callBuiltinChecked(pb: ProgramBuilder, matchResult: [ASTFunction, ASTExpression[]]) {\r\n return pb.$callFunction(matchResult[0].name, matchResult[1], matchResult[0]);\r\n}\r\nfunction callBuiltin(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n return callBuiltinChecked(pb, matchFunctionOverloadings(pb, name, ...args));\r\n}\r\n\r\nfunction genMatrixType(\r\n name: string,\r\n shaderTypeMask: number,\r\n r: Nullable<typeinfo.PBTypeInfo>,\r\n args: Nullable<typeinfo.PBPrimitiveTypeInfo>[]\r\n) {\r\n const result: [ASTFunction, number][] = [];\r\n for (let i = 0; i < genMatrixTypeList.length; i++) {\r\n const returnType = r || genMatrixTypeList[i];\r\n const argTypes = args.map((arg) => {\r\n return { type: arg || genMatrixTypeList[i] };\r\n });\r\n result.push([\r\n new ASTFunction(name, null, false, new typeinfo.PBFunctionTypeInfo(name, returnType, argTypes), true),\r\n shaderTypeMask\r\n ]);\r\n }\r\n return result;\r\n}\r\n\r\nfunction genType(\r\n name: string,\r\n shaderTypeMask: number,\r\n r: typeinfo.PBTypeInfo | number,\r\n args: (typeinfo.PBTypeInfo | number)[],\r\n vecOnly?: boolean\r\n) {\r\n if (args.findIndex((val) => typeof val === 'number') < 0) {\r\n return [\r\n [\r\n new ASTFunction(\r\n name,\r\n null,\r\n false,\r\n new typeinfo.PBFunctionTypeInfo(\r\n name,\r\n r as typeinfo.PBPrimitiveTypeInfo,\r\n args.map((arg) => ({ type: arg as typeinfo.PBTypeInfo }))\r\n ),\r\n true\r\n ),\r\n shaderTypeMask\r\n ]\r\n ];\r\n } else {\r\n const result: [ASTFunction, number][] = [];\r\n let i = vecOnly ? 1 : 0;\r\n for (; i < 4; i++) {\r\n const returnType = typeof r === 'number' ? genTypeList[r][i] : r;\r\n const argTypes = args.map((arg) => {\r\n if (typeof arg === 'number') {\r\n return { type: genTypeList[arg][i] };\r\n } else {\r\n return { type: arg };\r\n }\r\n });\r\n result.push([\r\n new ASTFunction(name, null, false, new typeinfo.PBFunctionTypeInfo(name, returnType, argTypes), true),\r\n shaderTypeMask\r\n ]);\r\n }\r\n return result;\r\n }\r\n}\r\n\r\nfunction unaryFunc(a: ASTExpression, op: string, type: typeinfo.PBTypeInfo) {\r\n const exp = new PBShaderExp('', type);\r\n exp.$ast = new ASTUnaryFunc(a, op, type);\r\n return exp;\r\n}\r\n\r\nfunction binaryFunc(a: ASTExpression, b: ASTExpression, op: string, type: typeinfo.PBTypeInfo) {\r\n const exp = new PBShaderExp('', type);\r\n exp.$ast = new ASTBinaryFunc(a, b, op, type);\r\n return exp;\r\n}\r\n\r\nconst MASK_WEBGL1 = 1 << 0;\r\nconst MASK_WEBGL2 = 1 << 1;\r\nconst MASK_WEBGPU = 1 << 2;\r\nconst MASK_WEBGL = MASK_WEBGL1 | MASK_WEBGL2;\r\nconst MASK_ALL = MASK_WEBGL | MASK_WEBGPU;\r\n\r\nconst builtinFunctionsAll = {\r\n add_2: {\r\n overloads: [\r\n ...genType('', MASK_ALL, 0, [0, 0]),\r\n ...genType('', MASK_ALL, 1, [1, 1]),\r\n ...genType('', MASK_ALL, 2, [2, 2]),\r\n ...genType('', MASK_ALL, 3, [3, 3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec2, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec4, typeinfo.typeF32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32, typeinfo.typeI32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32Vec2, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32, typeinfo.typeI32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32Vec3, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32, typeinfo.typeI32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32Vec4, typeinfo.typeI32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32, typeinfo.typeU32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32Vec2, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32, typeinfo.typeU32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32Vec3, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32, typeinfo.typeU32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32Vec4, typeinfo.typeU32]),\r\n\r\n ...genMatrixType('', MASK_ALL, null, [null, null])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length === 2 && typeof args[0] === 'number' && typeof args[1] === 'number') {\r\n return args[0] + args[1];\r\n }\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '+', matchResult[0].returnType!);\r\n }\r\n },\r\n add: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length < 2) {\r\n throw new PBParamLengthError('add');\r\n }\r\n let result = args[0];\r\n for (let i = 1; i < args.length; i++) {\r\n result = pb.add_2(result as number | PBShaderExp, args[i] as number | PBShaderExp);\r\n }\r\n return result as PBShaderExp;\r\n }\r\n },\r\n sub: {\r\n overloads: [\r\n ...genType('', MASK_ALL, 0, [0, 0]),\r\n ...genType('', MASK_ALL, 1, [1, 1]),\r\n ...genType('', MASK_ALL, 2, [2, 2]),\r\n ...genType('', MASK_ALL, 3, [3, 3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec2, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec4, typeinfo.typeF32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32, typeinfo.typeI32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32Vec2, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32, typeinfo.typeI32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32Vec3, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32, typeinfo.typeI32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32Vec4, typeinfo.typeI32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32, typeinfo.typeU32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32Vec2, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32, typeinfo.typeU32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32Vec3, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32, typeinfo.typeU32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32Vec4, typeinfo.typeU32]),\r\n\r\n ...genMatrixType('', MASK_ALL, null, [null, null])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '-', matchResult[0].returnType!);\r\n }\r\n },\r\n div: {\r\n overloads: [\r\n ...genType('', MASK_ALL, 0, [0, 0]),\r\n ...genType('', MASK_ALL, 1, [1, 1]),\r\n ...genType('', MASK_ALL, 2, [2, 2]),\r\n ...genType('', MASK_ALL, 3, [3, 3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec2, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec4, typeinfo.typeF32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32, typeinfo.typeI32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32Vec2, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32, typeinfo.typeI32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32Vec3, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32, typeinfo.typeI32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32Vec4, typeinfo.typeI32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32, typeinfo.typeU32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32Vec2, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32, typeinfo.typeU32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32Vec3, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32, typeinfo.typeU32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32Vec4, typeinfo.typeU32])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '/', matchResult[0].returnType!);\r\n }\r\n },\r\n mul_2: {\r\n overloads: [\r\n ...genType('', MASK_ALL, 0, [0, 0]),\r\n ...genType('', MASK_ALL, 1, [1, 1]),\r\n ...genType('', MASK_ALL, 2, [2, 2]),\r\n ...genType('', MASK_ALL, 3, [3, 3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec2, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeF32]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec4, typeinfo.typeF32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32, typeinfo.typeI32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec2, [typeinfo.typeI32Vec2, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32, typeinfo.typeI32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec3, [typeinfo.typeI32Vec3, typeinfo.typeI32]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32, typeinfo.typeI32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeI32Vec4, [typeinfo.typeI32Vec4, typeinfo.typeI32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32, typeinfo.typeU32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec2, [typeinfo.typeU32Vec2, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32, typeinfo.typeU32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec3, [typeinfo.typeU32Vec3, typeinfo.typeU32]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32, typeinfo.typeU32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeU32Vec4, [typeinfo.typeU32Vec4, typeinfo.typeU32]),\r\n\r\n ...genMatrixType('', MASK_ALL, null, [typeinfo.typeF32, null]),\r\n ...genMatrixType('', MASK_ALL, null, [null, typeinfo.typeF32]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2, [typeinfo.typeMat2, typeinfo.typeMat2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x2, [typeinfo.typeMat2, typeinfo.typeMat3x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x2, [typeinfo.typeMat2, typeinfo.typeMat4x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeMat2, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec2, typeinfo.typeMat2]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x3, [typeinfo.typeMat2x3, typeinfo.typeMat2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3, [typeinfo.typeMat2x3, typeinfo.typeMat3x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x3, [typeinfo.typeMat2x3, typeinfo.typeMat4x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeMat2x3, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec3, typeinfo.typeMat2x3]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x4, [typeinfo.typeMat2x4, typeinfo.typeMat2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x4, [typeinfo.typeMat2x4, typeinfo.typeMat3x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4, [typeinfo.typeMat2x4, typeinfo.typeMat4x2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeMat2x4, typeinfo.typeF32Vec2]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeF32Vec4, typeinfo.typeMat2x4]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2, [typeinfo.typeMat3x2, typeinfo.typeMat2x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x2, [typeinfo.typeMat3x2, typeinfo.typeMat3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x2, [typeinfo.typeMat3x2, typeinfo.typeMat4x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeMat3x2, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec2, typeinfo.typeMat3x2]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x3, [typeinfo.typeMat3, typeinfo.typeMat2x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3, [typeinfo.typeMat3, typeinfo.typeMat3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x3, [typeinfo.typeMat3, typeinfo.typeMat4x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeMat3, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeMat3]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x4, [typeinfo.typeMat3x4, typeinfo.typeMat2x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x4, [typeinfo.typeMat3x4, typeinfo.typeMat3]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4, [typeinfo.typeMat3x4, typeinfo.typeMat4x3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeMat3x4, typeinfo.typeF32Vec3]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec4, typeinfo.typeMat3x4]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2, [typeinfo.typeMat4x2, typeinfo.typeMat2x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x2, [typeinfo.typeMat4x2, typeinfo.typeMat3x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x2, [typeinfo.typeMat4x2, typeinfo.typeMat4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec2, [typeinfo.typeMat4x2, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec2, typeinfo.typeMat4x2]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x3, [typeinfo.typeMat4x3, typeinfo.typeMat2x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3, [typeinfo.typeMat4x3, typeinfo.typeMat3x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4x3, [typeinfo.typeMat4x3, typeinfo.typeMat4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeMat4x3, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec3, typeinfo.typeMat4x3]),\r\n\r\n ...genType('', MASK_ALL, typeinfo.typeMat2x4, [typeinfo.typeMat4, typeinfo.typeMat2x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat3x4, [typeinfo.typeMat4, typeinfo.typeMat3x4]),\r\n ...genType('', MASK_ALL, typeinfo.typeMat4, [typeinfo.typeMat4, typeinfo.typeMat4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeMat4, typeinfo.typeF32Vec4]),\r\n ...genType('', MASK_ALL, typeinfo.typeF32Vec4, [typeinfo.typeF32Vec4, typeinfo.typeMat4])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '*', matchResult[0].returnType!);\r\n }\r\n },\r\n mul: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length < 2) {\r\n throw new PBParamLengthError('mul');\r\n }\r\n let result = args[0];\r\n for (let i = 1; i < args.length; i++) {\r\n result = pb.mul_2(result as number | PBShaderExp, args[i] as number | PBShaderExp);\r\n }\r\n return result as PBShaderExp;\r\n }\r\n },\r\n mod: {\r\n overloads: [\r\n ...genType('mod', MASK_ALL, 0, [0, 0]),\r\n ...genType('mod', MASK_ALL, 1, [1, 1]),\r\n ...genType('mod', MASK_ALL, 2, [2, 2]),\r\n ...genType('mod', MASK_ALL, 3, [3, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n const isIntegerType =\r\n argType.isPrimitiveType() &&\r\n (argType.scalarType === typeinfo.PBPrimitiveType.I32 ||\r\n argType.scalarType === typeinfo.PBPrimitiveType.U32);\r\n if (pb.getDevice().type === 'webgl' && isIntegerType) {\r\n throw new PBDeviceNotSupport('integer modulus');\r\n }\r\n if (pb.getDevice().type === 'webgpu' || isIntegerType) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '%', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n radians: { overloads: genType('radians', MASK_ALL, 0, [0]) },\r\n degrees: { overloads: genType('degrees', MASK_ALL, 0, [0]) },\r\n sin: { overloads: genType('sin', MASK_ALL, 0, [0]) },\r\n cos: { overloads: genType('cos', MASK_ALL, 0, [0]) },\r\n tan: { overloads: genType('tan', MASK_ALL, 0, [0]) },\r\n asin: { overloads: genType('asin', MASK_ALL, 0, [0]) },\r\n acos: { overloads: genType('acos', MASK_ALL, 0, [0]) },\r\n atan: { overloads: genType('atan', MASK_ALL, 0, [0]) },\r\n atan2: {\r\n overloads: [...genType('atan', MASK_WEBGL, 0, [0, 0]), ...genType('atan2', MASK_WEBGPU, 0, [0, 0])]\r\n },\r\n sinh: { overloads: genType('sinh', MASK_WEBGL2 | MASK_WEBGPU, 0, [0]) },\r\n cosh: { overloads: genType('cosh', MASK_WEBGL2 | MASK_WEBGPU, 0, [0]) },\r\n tanh: { overloads: genType('tanh', MASK_WEBGL2 | MASK_WEBGPU, 0, [0]) },\r\n asinh: { overloads: genType('asinh', MASK_WEBGL2, 0, [0]) },\r\n acosh: { overloads: genType('acosh', MASK_WEBGL2, 0, [0]) },\r\n atanh: { overloads: genType('atanh', MASK_WEBGL2, 0, [0]) },\r\n pow: { overloads: genType('pow', MASK_ALL, 0, [0, 0]) },\r\n exp: { overloads: genType('exp', MASK_ALL, 0, [0]) },\r\n exp2: { overloads: genType('exp2', MASK_ALL, 0, [0]) },\r\n log: { overloads: genType('log', MASK_ALL, 0, [0]) },\r\n log2: { overloads: genType('log2', MASK_ALL, 0, [0]) },\r\n sqrt: { overloads: genType('sqrt', MASK_ALL, 0, [0]) },\r\n inverseSqrt: {\r\n overloads: [...genType('inversesqrt', MASK_WEBGL, 0, [0]), ...genType('inverseSqrt', MASK_WEBGPU, 0, [0])]\r\n },\r\n abs: {\r\n overloads: [\r\n ...genType('abs', MASK_ALL, 0, [0]),\r\n ...genType('abs', MASK_WEBGL2 | MASK_WEBGPU, 1, [1]),\r\n ...genType('abs', MASK_WEBGPU, 2, [2])\r\n ]\r\n },\r\n sign: {\r\n overloads: [...genType('sign', MASK_ALL, 0, [0]), ...genType('sign', MASK_WEBGL2, 1, [1])]\r\n },\r\n floor: { overloads: genType('floor', MASK_ALL, 0, [0]) },\r\n ceil: { overloads: genType('ceil', MASK_ALL, 0, [0]) },\r\n fract: { overloads: genType('fract', MASK_ALL, 0, [0]) },\r\n fma: {\r\n overloads: genType('fma', MASK_ALL, 0, [0, 0, 0]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n if (pb.getDevice().type === 'webgpu') {\r\n return callBuiltinChecked(pb, matchResult);\r\n } else {\r\n return pb.add(pb.mul(args[0] as any, args[1] as any), args[2] as any);\r\n }\r\n }\r\n },\r\n round: { overloads: genType('round', MASK_WEBGPU, 0, [0]) },\r\n trunc: { overloads: genType('trunc', MASK_WEBGPU, 0, [0]) },\r\n // TODO: modf\r\n min: {\r\n overloads: [\r\n ...genType('min', MASK_ALL, 0, [0, 0]),\r\n ...genType('min', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1]),\r\n ...genType('min', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ]\r\n },\r\n max: {\r\n overloads: [\r\n ...genType('max', MASK_ALL, 0, [0, 0]),\r\n ...genType('max', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1]),\r\n ...genType('max', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ]\r\n },\r\n clamp: {\r\n overloads: [\r\n ...genType('clamp', MASK_ALL, 0, [0, 0, 0]),\r\n ...genType('clamp', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1, 1]),\r\n ...genType('clamp', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2, 2])\r\n ]\r\n },\r\n saturate: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('saturate');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n throw new PBParamValueError('saturate', 'x');\r\n }\r\n const argType = args[0].$ast.getType();\r\n if (!argType.isPrimitiveType() || (!argType.isScalarType() && !argType.isVectorType())) {\r\n throw new PBParamTypeError('saturate', 'x');\r\n }\r\n // @ts-ignore 7053\r\n const a = argType.isScalarType() ? 0 : pb[`vec${argType.cols}`](0);\r\n // @ts-ignore 7053\r\n const b = argType.isScalarType() ? 1 : pb[`vec${argType.cols}`](1);\r\n return pb.clamp(args[0], a, b);\r\n }\r\n },\r\n mix: {\r\n overloads: [\r\n ...genType('mix', MASK_ALL, 0, [0, 0, 0]),\r\n ...genType('mix', MASK_ALL, 0, [0, 0, typeinfo.typeF32])\r\n ]\r\n },\r\n step: { overloads: genType('step', MASK_ALL, 0, [0, 0]) },\r\n smoothStep: { overloads: genType('smoothstep', MASK_ALL, 0, [0, 0, 0]) },\r\n isnan: { overloads: genType('isnan', MASK_WEBGL2, 3, [0]) },\r\n isinf: { overloads: genType('isinf', MASK_WEBGL2, 3, [0]) },\r\n length: { overloads: genType('length', MASK_ALL, typeinfo.typeF32, [0]) },\r\n distance: { overloads: genType('distance', MASK_ALL, typeinfo.typeF32, [0, 0]) },\r\n dot: {\r\n overloads: [\r\n ...genType('dot', MASK_ALL, typeinfo.typeF32, [0, 0], true),\r\n ...genType('dot', MASK_WEBGPU, typeinfo.typeI32, [1, 1], true),\r\n ...genType('dot', MASK_WEBGPU, typeinfo.typeU32, [2, 2], true)\r\n ]\r\n },\r\n cross: {\r\n overloads: genType('cross', MASK_ALL, typeinfo.typeF32Vec3, [typeinfo.typeF32Vec3, typeinfo.typeF32Vec3])\r\n },\r\n normalize: { overloads: genType('normalize', MASK_ALL, 0, [0], true) },\r\n faceForward: {\r\n overloads: [\r\n ...genType('faceforward', MASK_WEBGL, 0, [0, 0, 0], true),\r\n ...genType('faceForward', MASK_WEBGPU, 0, [0, 0, 0], true)\r\n ]\r\n },\r\n reflect: { overloads: genType('reflect', MASK_ALL, 0, [0, 0], true) },\r\n refract: { overloads: genType('refract', MASK_ALL, 0, [0, 0, typeinfo.typeF32], true) },\r\n frexp: {\r\n overloads: [\r\n ...genType('frexp', MASK_WEBGPU, typeinfo.typeFrexpResult, [typeinfo.typeF32]),\r\n ...genType('frexp', MASK_WEBGPU, typeinfo.typeFrexpResultVec2, [typeinfo.typeF32Vec2]),\r\n ...genType('frexp', MASK_WEBGPU, typeinfo.typeFrexpResultVec3, [typeinfo.typeF32Vec3]),\r\n ...genType('frexp', MASK_WEBGPU, typeinfo.typeFrexpResultVec4, [typeinfo.typeF32Vec4])\r\n ]\r\n },\r\n outerProduct: {\r\n overloads: [\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat2, [\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat3, [\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat4, [\r\n typeinfo.typeF32Vec4,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat2x3, [\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat3x2, [\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat2x4, [\r\n typeinfo.typeF32Vec4,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat4x2, [\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat3x4, [\r\n typeinfo.typeF32Vec4,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('outerProduct', MASK_WEBGL2, typeinfo.typeMat4x3, [\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec4\r\n ])\r\n ]\r\n },\r\n transpose: {\r\n overloads: [\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat2, [typeinfo.typeMat2]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat3, [typeinfo.typeMat3]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat4, [typeinfo.typeMat4]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat2x3, [typeinfo.typeMat3x2]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat3x2, [typeinfo.typeMat2x3]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat2x4, [typeinfo.typeMat4x2]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat4x2, [typeinfo.typeMat2x4]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat3x4, [typeinfo.typeMat4x3]),\r\n ...genType('transpose', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeMat4x3, [typeinfo.typeMat3x4])\r\n ]\r\n },\r\n determinant: {\r\n overloads: [\r\n ...genType('determinant', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeF32, [typeinfo.typeMat2]),\r\n ...genType('determinant', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeF32, [typeinfo.typeMat3]),\r\n ...genType('determinant', MASK_WEBGL2 | MASK_WEBGPU, typeinfo.typeF32, [typeinfo.typeMat4])\r\n ]\r\n },\r\n inverse: {\r\n overloads: [\r\n ...genType('inverse', MASK_WEBGL2, typeinfo.typeMat2, [typeinfo.typeMat2]),\r\n ...genType('inverse', MASK_WEBGL2, typeinfo.typeMat3, [typeinfo.typeMat3]),\r\n ...genType('inverse', MASK_WEBGL2, typeinfo.typeMat4, [typeinfo.typeMat4])\r\n ]\r\n },\r\n lessThan: {\r\n overloads: [\r\n ...genType('lessThan', MASK_ALL, 3, [0, 0]),\r\n ...genType('lessThan', MASK_ALL, 3, [1, 1]),\r\n ...genType('lessThan', MASK_ALL, 3, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '<', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n lessThanEqual: {\r\n overloads: [\r\n ...genType('lessThanEqual', MASK_ALL, 3, [0, 0]),\r\n ...genType('lessThanEqual', MASK_ALL, 3, [1, 1]),\r\n ...genType('lessThanEqual', MASK_ALL, 3, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '<=', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n greaterThan: {\r\n overloads: [\r\n ...genType('greaterThan', MASK_ALL, 3, [0, 0]),\r\n ...genType('greaterThan', MASK_ALL, 3, [1, 1]),\r\n ...genType('greaterThan', MASK_ALL, 3, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '>', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n greaterThanEqual: {\r\n overloads: [\r\n ...genType('greaterThanEqual', MASK_ALL, 3, [0, 0]),\r\n ...genType('greaterThanEqual', MASK_ALL, 3, [1, 1]),\r\n ...genType('greaterThanEqual', MASK_ALL, 3, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '>=', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n compEqual: {\r\n overloads: [\r\n ...genType('equal', MASK_ALL, 3, [0, 0]),\r\n ...genType('equal', MASK_ALL, 3, [1, 1]),\r\n ...genType('equal', MASK_ALL, 3, [2, 2]),\r\n ...genType('equal', MASK_ALL, 3, [3, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '==', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n compNotEqual: {\r\n overloads: [\r\n ...genType('notEqual', MASK_ALL, 3, [0, 0]),\r\n ...genType('notEqual', MASK_ALL, 3, [1, 1]),\r\n ...genType('notEqual', MASK_ALL, 3, [2, 2]),\r\n ...genType('notEqual', MASK_ALL, 3, [3, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '!=', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n equal: {\r\n overloads: [\r\n ...genType('equal', MASK_ALL, typeinfo.typeBool, [0, 0]),\r\n ...genType('equal', MASK_ALL, typeinfo.typeBool, [1, 1]),\r\n ...genType('equal', MASK_ALL, typeinfo.typeBool, [2, 2]),\r\n ...genType('equal', MASK_ALL, typeinfo.typeBool, [3, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' && argType.isPrimitiveType() && !argType.isScalarType()) {\r\n return pb.all(pb.compEqual(args[0] as PBShaderExp, args[1] as PBShaderExp));\r\n } else {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '==', matchResult[0].returnType!);\r\n }\r\n }\r\n },\r\n notEqual: {\r\n overloads: [\r\n ...genType('notEqual', MASK_ALL, typeinfo.typeBool, [0, 0]),\r\n ...genType('notEqual', MASK_ALL, typeinfo.typeBool, [1, 1]),\r\n ...genType('notEqual', MASK_ALL, typeinfo.typeBool, [2, 2]),\r\n ...genType('notEqual', MASK_ALL, typeinfo.typeBool, [3, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' && argType.isPrimitiveType() && !argType.isScalarType()) {\r\n return pb.any(pb.compNotEqual(args[0] as PBShaderExp, args[1] as PBShaderExp));\r\n } else {\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '!=', matchResult[0].returnType!);\r\n }\r\n }\r\n },\r\n any: { overloads: genType('any', MASK_ALL, typeinfo.typeBool, [3], true) },\r\n all: { overloads: genType('all', MASK_ALL, typeinfo.typeBool, [3], true) },\r\n not: {\r\n overloads: genType('not', MASK_ALL, 3, [3]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n const argType = matchResult[1][0].getType();\r\n if (pb.getDevice().type === 'webgpu' || (argType.isPrimitiveType() && argType.isScalarType())) {\r\n return unaryFunc(matchResult[1][0], '!', matchResult[0].returnType!);\r\n } else {\r\n return callBuiltinChecked(pb, matchResult);\r\n }\r\n }\r\n },\r\n neg: {\r\n overloads: [...genType('neg', MASK_ALL, 0, [0]), ...genType('neg', MASK_ALL, 1, [1])],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return unaryFunc(matchResult[1][0], '-', matchResult[0].returnType!);\r\n }\r\n },\r\n or_2: {\r\n overloads: genType('or', MASK_ALL, typeinfo.typeBool, [3, 3]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '||', matchResult[0].returnType!);\r\n }\r\n },\r\n or: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length < 2) {\r\n throw new PBParamLengthError('or');\r\n }\r\n let result = args[0];\r\n for (let i = 1; i < args.length; i++) {\r\n result = pb.or_2(result as boolean | PBShaderExp, args[i] as boolean | PBShaderExp);\r\n }\r\n return result as PBShaderExp;\r\n }\r\n },\r\n compOr: {\r\n overloads: [\r\n ...genType('compOr', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1]),\r\n ...genType('compOr', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '|', matchResult[0].returnType!);\r\n }\r\n },\r\n and_2: {\r\n overloads: genType('and', MASK_ALL, typeinfo.typeBool, [3, 3]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '&&', matchResult[0].returnType!);\r\n }\r\n },\r\n and: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length < 2) {\r\n throw new PBParamLengthError('and');\r\n }\r\n let result = args[0];\r\n for (let i = 1; i < args.length; i++) {\r\n result = pb.and_2(\r\n result as PBShaderExp | number | boolean,\r\n args[i] as PBShaderExp | number | boolean\r\n );\r\n }\r\n return result as PBShaderExp;\r\n }\r\n },\r\n compAnd: {\r\n overloads: [\r\n ...genType('compAnd', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1]),\r\n ...genType('compAnd', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '&', matchResult[0].returnType!);\r\n }\r\n },\r\n compXor: {\r\n overloads: [\r\n ...genType('compXor', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 1]),\r\n ...genType('compXor', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '^', matchResult[0].returnType!);\r\n }\r\n },\r\n sal: {\r\n overloads: [\r\n ...genType('sal', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 2]),\r\n ...genType('sal', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '<<', matchResult[0].returnType!);\r\n }\r\n },\r\n sar: {\r\n overloads: [\r\n ...genType('sar', MASK_WEBGL2 | MASK_WEBGPU, 1, [1, 2]),\r\n ...genType('sar', MASK_WEBGL2 | MASK_WEBGPU, 2, [2, 2])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const matchResult = matchFunctionOverloadings(pb, name, ...args);\r\n return binaryFunc(matchResult[1][0], matchResult[1][1], '>>', matchResult[0].returnType!);\r\n }\r\n },\r\n arrayLength: {\r\n overloads: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('arrayLength');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n throw new PBParamValueError('arrayLength', 'array');\r\n }\r\n const type = args[0].$ast.getType();\r\n const arrayType = type.isPointerType() ? type.pointerType : type;\r\n if (!arrayType.isArrayType() || arrayType.dimension !== 0) {\r\n throw new PBParamTypeError('arrayLength', 'array');\r\n }\r\n const arg = type.isArrayType() ? pb.addressOf(args[0]).$ast : args[0].$ast;\r\n return pb.$callFunctionNoCheck(name, [arg], typeinfo.typeU32);\r\n }\r\n },\r\n select: {\r\n overloads: [\r\n ...genType('select', MASK_WEBGPU, 0, [0, 0, typeinfo.typeBool]),\r\n ...genType('select', MASK_WEBGPU, 1, [1, 1, typeinfo.typeBool]),\r\n ...genType('select', MASK_WEBGPU, 2, [2, 2, typeinfo.typeBool]),\r\n ...genType('select', MASK_WEBGPU, 3, [3, 3, typeinfo.typeBool]),\r\n ...genType('select', MASK_WEBGPU, 0, [0, 0, 3], true),\r\n ...genType('select', MASK_WEBGPU, 1, [1, 1, 3], true),\r\n ...genType('select', MASK_WEBGPU, 2, [2, 2, 3], true),\r\n ...genType('select', MASK_WEBGPU, 3, [3, 3, 3], true),\r\n ...genType('mix', MASK_WEBGL, 0, [0, 0, 3]),\r\n ...genType('mix', MASK_WEBGL, 1, [1, 1, 3]),\r\n ...genType('mix', MASK_WEBGL, 2, [2, 2, 3])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (pb.getDevice().type === 'webgl') {\r\n const cond = args[2];\r\n let newCond: Nullable<number | PBShaderExp> = null;\r\n if (typeof cond === 'boolean') {\r\n newCond = cond ? 1 : 0;\r\n } else if (typeof cond === 'number') {\r\n newCond = cond;\r\n } else if (cond instanceof PBShaderExp) {\r\n const type = cond.$ast.getType();\r\n if (type.typeId === typeinfo.typeBool.typeId) {\r\n newCond = pb.float(cond);\r\n } else if (type.typeId === typeinfo.typeBVec2.typeId) {\r\n newCond = pb.vec2(cond);\r\n } else if (type.typeId === typeinfo.typeBVec3.typeId) {\r\n newCond = pb.vec3(cond);\r\n } else if (type.typeId === typeinfo.typeBVec4.typeId) {\r\n newCond = pb.vec4(cond);\r\n }\r\n }\r\n if (newCond === null) {\r\n throw new PBParamValueError('select', 'cond');\r\n }\r\n return callBuiltin(pb, 'mix', args[0], args[1], newCond);\r\n } else {\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n floatBitsToInt: {\r\n overloads: genType('floatBitsToInt', MASK_WEBGL2, 1, [0]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('floatBitsToInt');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n if (typeof args[0] !== 'number') {\r\n throw new PBParamValueError('floatBitsToInt', 'x');\r\n }\r\n } else {\r\n const type = args[0].$ast.getType();\r\n if (type.typeId !== typeinfo.typeF32.typeId) {\r\n throw new PBParamTypeError('floatBitsToInt', 'x');\r\n }\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n return pb.$callFunctionNoCheck(\r\n 'bitcast<i32>',\r\n [args[0] instanceof PBShaderExp ? args[0].$ast : new ASTScalar(args[0], typeinfo.typeF32)],\r\n typeinfo.typeI32\r\n );\r\n } else {\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n floatBitsToUint: {\r\n overloads: genType('floatBitsToUint', MASK_WEBGL2, 2, [0]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('floatBitsToUint');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n if (typeof args[0] !== 'number') {\r\n throw new PBParamValueError('floatBitsToUint', 'x');\r\n }\r\n } else {\r\n const type = args[0].$ast.getType();\r\n if (type.typeId !== typeinfo.typeF32.typeId) {\r\n throw new PBParamTypeError('floatBitsToUint', 'x');\r\n }\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n return pb.$callFunctionNoCheck(\r\n 'bitcast<u32>',\r\n [args[0] instanceof PBShaderExp ? args[0].$ast : new ASTScalar(args[0], typeinfo.typeF32)],\r\n typeinfo.typeU32\r\n );\r\n } else {\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n intBitsToFloat: {\r\n overloads: genType('intBitsToFloat', MASK_WEBGL2, 0, [1]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('intBitsToFloat');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n if (typeof args[0] !== 'number') {\r\n throw new PBParamValueError('intBitsToFloat', 'x');\r\n }\r\n } else {\r\n const type = args[0].$ast.getType();\r\n if (type.typeId !== typeinfo.typeI32.typeId) {\r\n throw new PBParamTypeError('intBitsToFloat', 'x');\r\n }\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n return pb.$callFunctionNoCheck(\r\n 'bitcast<f32>',\r\n [args[0] instanceof PBShaderExp ? args[0].$ast : new ASTScalar(args[0], typeinfo.typeI32)],\r\n typeinfo.typeF32\r\n );\r\n } else {\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n uintBitsToFloat: {\r\n overloads: genType('uintBitsToFloat', MASK_WEBGL2, 0, [2]),\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError('uintBitsToFloat');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n if (typeof args[0] !== 'number') {\r\n throw new PBParamValueError('uintBitsToFloat', 'x');\r\n }\r\n } else {\r\n const type = args[0].$ast.getType();\r\n if (type.typeId !== typeinfo.typeU32.typeId) {\r\n throw new PBParamTypeError('uintBitsToFloat', 'x');\r\n }\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n return pb.$callFunctionNoCheck(\r\n 'bitcast<f32>',\r\n [args[0] instanceof PBShaderExp ? args[0].$ast : new ASTScalar(args[0], typeinfo.typeU32)],\r\n typeinfo.typeF32\r\n );\r\n } else {\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n pack4x8snorm: { overloads: genType('pack4x8snorm', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeF32Vec4]) },\r\n unpack4x8snorm: {\r\n overloads: genType('unpack4x8snorm', MASK_WEBGPU, typeinfo.typeF32Vec4, [typeinfo.typeU32])\r\n },\r\n pack4x8unorm: { overloads: genType('pack4x8unorm', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeF32Vec4]) },\r\n unpack4x8unorm: {\r\n overloads: genType('unpack4x8unorm', MASK_WEBGPU, typeinfo.typeF32Vec4, [typeinfo.typeU32])\r\n },\r\n pack2x16snorm: {\r\n overloads: [\r\n ...genType('pack2x16snorm', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeF32Vec2]),\r\n ...genType('packSnorm2x16', MASK_WEBGL2, typeinfo.typeU32, [typeinfo.typeF32Vec2])\r\n ]\r\n },\r\n unpack2x16snorm: {\r\n overloads: [\r\n ...genType('unpack2x16snorm', MASK_WEBGPU, typeinfo.typeF32Vec2, [typeinfo.typeU32]),\r\n ...genType('unpackSnorm2x16', MASK_WEBGL2, typeinfo.typeF32Vec2, [typeinfo.typeU32])\r\n ]\r\n },\r\n pack2x16unorm: {\r\n overloads: [\r\n ...genType('pack2x16unorm', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeF32Vec2]),\r\n ...genType('packUnorm2x16', MASK_WEBGL2, typeinfo.typeU32, [typeinfo.typeF32Vec2])\r\n ]\r\n },\r\n unpack2x16unorm: {\r\n overloads: [\r\n ...genType('unpack2x16unorm', MASK_WEBGPU, typeinfo.typeF32Vec2, [typeinfo.typeU32]),\r\n ...genType('unpackUnorm2x16', MASK_WEBGL2, typeinfo.typeF32Vec2, [typeinfo.typeU32])\r\n ]\r\n },\r\n pack2x16float: {\r\n overloads: [\r\n ...genType('pack2x16float', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeF32Vec2]),\r\n ...genType('packHalf2x16', MASK_WEBGL2, typeinfo.typeU32, [typeinfo.typeF32Vec2])\r\n ]\r\n },\r\n unpack2x16float: {\r\n overloads: [\r\n ...genType('unpack2x16float', MASK_WEBGPU, typeinfo.typeF32Vec2, [typeinfo.typeU32]),\r\n ...genType('unpackHalf2x16', MASK_WEBGL2, typeinfo.typeF32Vec2, [typeinfo.typeU32])\r\n ]\r\n },\r\n matrixCompMult: { overloads: genMatrixType('matrixCompMult', MASK_WEBGL, null, [null, null]) },\r\n dpdx: {\r\n overloads: [...genType('dFdx', MASK_WEBGL, 0, [0]), ...genType('dpdx', MASK_WEBGPU, 0, [0])]\r\n },\r\n dpdy: {\r\n overloads: [...genType('dFdy', MASK_WEBGL, 0, [0]), ...genType('dpdy', MASK_WEBGPU, 0, [0])]\r\n },\r\n fwidth: { overloads: genType('fwidth', MASK_ALL, 0, [0]) },\r\n dpdxCoarse: {\r\n overloads: [...genType('dpdxCoarse', MASK_WEBGPU, 0, [0]), ...genType('dFdx', MASK_WEBGL, 0, [0])]\r\n },\r\n dpdxFine: {\r\n overloads: [...genType('dpdxFine', MASK_WEBGPU, 0, [0]), ...genType('dFdx', MASK_WEBGL, 0, [0])]\r\n },\r\n dpdyCoarse: {\r\n overloads: [...genType('dpdyCoarse', MASK_WEBGPU, 0, [0]), ...genType('dFdy', MASK_WEBGL, 0, [0])]\r\n },\r\n dpdyFine: {\r\n overloads: [...genType('dpdyFine', MASK_WEBGPU, 0, [0]), ...genType('dFdy', MASK_WEBGL, 0, [0])]\r\n },\r\n // textureDimensions(tex: PBShaderExp, level?: number|PBShaderExp);\r\n textureDimensions: {\r\n overloads: [\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTex1D, typeinfo.typeI32]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeITex1D, typeinfo.typeI32]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeUTex1D, typeinfo.typeI32]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeITex2D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeUTex2D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeITex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeUTex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeITex3D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeUTex3D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeITexCube,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeUTexCube,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeITexCubeArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeUTexCubeArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [typeinfo.typeTexMultisampled2D]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [typeinfo.typeITexMultisampled2D]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [typeinfo.typeUTexMultisampled2D]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexDepthMultisampled2D\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba8unorm]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba8snorm]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba8uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba8sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba16uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba16sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba16float]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba32uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba32sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rgba32float]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rg32uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rg32sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_rg32float]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_r32uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_r32sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32, [typeinfo.typeTexStorage1D_r32float]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba8unorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba8snorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba8uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba8sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba16uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba16sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba16float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rgba32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rg32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rg32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_rg32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [typeinfo.typeTexStorage2D_r32uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [typeinfo.typeTexStorage2D_r32sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2D_r32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba8unorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba8snorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba8uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba8sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba16uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba16sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba16float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rgba32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rg32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rg32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_rg32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_r32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_r32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec2, [\r\n typeinfo.typeTexStorage2DArray_r32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba8unorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba8snorm\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba8uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba8sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba16uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba16sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba16float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rgba32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rg32uint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rg32sint\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_rg32float\r\n ]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [typeinfo.typeTexStorage3D_r32uint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [typeinfo.typeTexStorage3D_r32sint]),\r\n ...genType('textureDimensions', MASK_WEBGPU, typeinfo.typeU32Vec3, [\r\n typeinfo.typeTexStorage3D_r32float\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeTex1D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeTex2D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeITex1D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeITex2D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeUTex1D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeUTex2D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeITex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeUTex2DArray,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeTexCube, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeITexCube, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [typeinfo.typeUTexCube, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec3, [typeinfo.typeTex3D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec3, [typeinfo.typeITex3D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec3, [typeinfo.typeUTex3D, typeinfo.typeI32]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSize', MASK_WEBGL2, typeinfo.typeI32Vec2, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeI32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length < 1 || args.length > 2) {\r\n throw new PBParamLengthError('textureDimensions');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n throw new PBParamValueError('textureDimensions', 'tex');\r\n }\r\n const texType = args[0].$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureDimensions', 'tex');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n if (texType.isMultisampledTexture() || texType.isStorageTexture()) {\r\n if (args[1] !== undefined) {\r\n throw new PBParamValueError('textureDimensions', 'level');\r\n }\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n } else if (pb.getDevice().type === 'webgl2') {\r\n const tex = args[0];\r\n const level = args[1] || 0;\r\n return texType.is1DTexture()\r\n ? callBuiltin(pb, name, tex, level).x\r\n : callBuiltin(pb, name, tex, level);\r\n }\r\n }\r\n },\r\n // textureGather(tex: PBShaderExp, sampler: PBShaderExp, coords: PBShaderExp);\r\n // textureGather(component: number|PBShaderExp, tex: PBShaderExp, sampler: PBShaderExp, coords: PBShaderExp);\r\n textureGather: {\r\n overloads: [\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeITex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeUTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeITexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeUTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ])\r\n ]\r\n },\r\n // textureArrayGather(tex: PBShaderExp, sampler: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp);\r\n // textureArrayGather(component: number|PBShaderExp, tex: PBShaderExp, sampler: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp);\r\n textureArrayGather: {\r\n overloads: [\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeITex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeUTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeITexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeI32,\r\n typeinfo.typeUTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureGather', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ])\r\n ]\r\n },\r\n // textureGatherCompare(tex: PBShaderExp, samplerCompare: PBShaderExp, coords: PBShaderExp, depthRef: number|PBShaderExp);\r\n textureGatherCompare: {\r\n overloads: [\r\n ...genType('textureGatherCompare', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureGatherCompare', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ])\r\n ]\r\n },\r\n // textureArrayGatherCompare(tex: PBShaderExp, samplerCompare: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, depthRef: number|PBShaderExp);\r\n textureArrayGatherCompare: {\r\n overloads: [\r\n ...genType('textureGatherCompare', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureGatherCompare', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ])\r\n ]\r\n },\r\n // textureLoad(tex: PBShaderExp, coords: number|PBShaderExp, levelOrSampleIndex: number|PBShaderExp);\r\n textureLoad: {\r\n overloads: [\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex1D,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex1D,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex1D,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_bgra8unorm,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_r32float,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage1D_r32sint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage1D_r32uint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_rg32float,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage1D_rg32sint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage1D_rg32uint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba16float,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba16sint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba16uint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba32float,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba32sint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba32uint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba8sint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba8uint,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba8snorm,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage1D_rgba8unorm,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_bgra8unorm,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_r32float,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage2D_r32sint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage2D_r32uint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_rg32float,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage2D_rg32sint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage2D_rg32uint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba16float,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba16sint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba16uint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba32float,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba32sint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba32uint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba8sint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba8uint,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba8snorm,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage2D_rgba8unorm,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_bgra8unorm,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_r32float,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage3D_r32sint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage3D_r32uint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_rg32float,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage3D_rg32sint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage3D_rg32uint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba16float,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba16sint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba16uint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba32float,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba32sint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba32uint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba8sint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba8uint,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba8snorm,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexStorage3D_rgba8unorm,\r\n typeinfo.typeI32Vec3\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexMultisampled2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITexMultisampled2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTexMultisampled2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeI32Vec2\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthMultisampled2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex1D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeU32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeITex1D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeUTex1D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex2D,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex3D,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length === 0) {\r\n throw new PBParamLengthError('textureLoad');\r\n }\r\n if (!(args[0] instanceof PBShaderExp)) {\r\n throw new PBParamValueError('textureLoad', 'tex');\r\n }\r\n const texType = args[0].$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureLoad', 'tex');\r\n }\r\n if (pb.getDevice().type === 'webgl2') {\r\n if (args.length !== 3) {\r\n throw new PBParamLengthError('textureLoad');\r\n }\r\n if (texType.is1DTexture()) {\r\n if (typeof args[1] === 'number') {\r\n if (!Number.isInteger(args[1])) {\r\n throw new PBParamTypeError('textureLoad', 'coord');\r\n }\r\n } else if (args[1] instanceof PBShaderExp) {\r\n const coordType = args[1].$ast.getType();\r\n if (\r\n !coordType.isPrimitiveType() ||\r\n !coordType.isScalarType() ||\r\n coordType.scalarType !== typeinfo.PBPrimitiveType.I32\r\n ) {\r\n throw new PBParamTypeError('textureLoad', 'coord');\r\n }\r\n } else {\r\n throw new PBParamTypeError('textureLoad', 'coord');\r\n }\r\n args[1] = pb.ivec2(args[1], 0);\r\n }\r\n } else if (pb.getDevice().type === 'webgpu') {\r\n if (texType.isExternalTexture()) {\r\n args = args.slice(0, 2);\r\n }\r\n if (texType.isStorageTexture()) {\r\n texType.readable = true;\r\n }\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n },\r\n // textureArrayLoad(tex: PBShaderExp, coords: number|PBShaderExp, arrayIndex: number|PBShaderExp, level: number|PBShaderExp);\r\n textureArrayLoad: {\r\n overloads: [\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex2DArray,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex2DArray,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLoad', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeI32Vec4, [\r\n typeinfo.typeITex2DArray,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texelFetch', MASK_WEBGL2, typeinfo.typeU32Vec4, [\r\n typeinfo.typeUTex2DArray,\r\n typeinfo.typeI32Vec3,\r\n typeinfo.typeI32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length === 0) {\r\n throw new PBParamLengthError('textureArrayLoad');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamValueError('textureArrayLoad', 'tex');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureArrayLoad', 'tex');\r\n }\r\n if (pb.getDevice().type === 'webgl2') {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureArrayLoad');\r\n }\r\n const coords = pb.ivec3(args[1] as PBShaderExp, args[2] as PBShaderExp);\r\n const level = args[3];\r\n return callBuiltin(pb, name, tex, coords, level);\r\n } else {\r\n if (texType.isStorageTexture()) {\r\n texType.readable = true;\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n // textureStore(tex: PBShaderExp, coords: number|PBShaderExp, value: PBShaderExp);\r\n textureStore: {\r\n overloads: [\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba8unorm,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba8snorm,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba8uint,\r\n typeinfo.typeU32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba8sint,\r\n typeinfo.typeU32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba16uint,\r\n typeinfo.typeU32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba16sint,\r\n typeinfo.typeU32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba16float,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba32uint,\r\n typeinfo.typeU32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba32sint,\r\n typeinfo.typeU32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rgba32float,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rg32uint,\r\n typeinfo.typeU32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rg32sint,\r\n typeinfo.typeU32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_rg32float,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_r32uint,\r\n typeinfo.typeU32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_r32sint,\r\n typeinfo.typeU32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage1D_r32float,\r\n typeinfo.typeU32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba8unorm,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba8snorm,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba8uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba8sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba16uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba16sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba16float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rgba32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rg32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rg32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_rg32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_r32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_r32uint,\r\n typeinfo.typeI32Vec2,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_r32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2D_r32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba8unorm,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba8snorm,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba8uint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba8sint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba16uint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba16sint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba16float,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba32uint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba32sint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rgba32float,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rg32uint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rg32sint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_rg32float,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_r32uint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_r32sint,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage3D_r32float,\r\n typeinfo.typeU32Vec3,\r\n typeinfo.typeF32Vec4\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (pb.getDevice().type === 'webgpu') {\r\n const tex = args[0];\r\n if (tex instanceof PBShaderExp) {\r\n const texType = tex.$ast.getType();\r\n if (texType?.isTextureType() && texType.isStorageTexture()) {\r\n texType.writable = true;\r\n }\r\n }\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n },\r\n // textureArrayStore(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, value: PBShaderExp);\r\n textureArrayStore: {\r\n overloads: [\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba8unorm,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba8snorm,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba8uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba8sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba16uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba16sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba16float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rgba32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rg32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rg32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_rg32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_r32uint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeU32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_r32sint,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32Vec4\r\n ]),\r\n ...genType('textureStore', MASK_WEBGPU, typeinfo.typeVoid, [\r\n typeinfo.typeTexStorage2DArray_r32float,\r\n typeinfo.typeU32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec4\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (pb.getDevice().type === 'webgpu') {\r\n const tex = args[0];\r\n if (tex instanceof PBShaderExp) {\r\n const texType = tex.$ast.getType();\r\n if (texType?.isTextureType() && texType.isStorageTexture()) {\r\n texType.writable = true;\r\n }\r\n }\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n },\r\n // textureNumLayers(tex: PBShaderExp);\r\n textureNumLayers: {\r\n overloads: [\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTex2DArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITex2DArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTex2DArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexCubeArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITexCubeArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTexCubeArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepth2DArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepthCubeArray]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_r32float\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexStorage2DArray_r32sint]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexStorage2DArray_r32uint]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rg32float\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rg32sint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rg32uint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba16float\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba16sint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba16uint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba32float\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba32sint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba32uint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba8sint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba8snorm\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba8uint\r\n ]),\r\n ...genType('textureNumLayers', MASK_WEBGPU, typeinfo.typeI32, [\r\n typeinfo.typeTexStorage2DArray_rgba8unorm\r\n ])\r\n ]\r\n },\r\n // textureNumLevels(tex: PBShaderExp);\r\n textureNumLevels: {\r\n overloads: [\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTex1D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITex1D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTex1D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTex2D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITex2D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTex2D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTex2DArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITex2DArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTex2DArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTex3D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITex3D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTex3D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexCube]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITexCube]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTexCube]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexCubeArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITexCubeArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTexCubeArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepth2D]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepth2DArray]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepthCube]),\r\n ...genType('textureNumLevels', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepthCubeArray])\r\n ]\r\n },\r\n // textureNumSamples(tex: PBShaderExp);\r\n textureNumSamples: {\r\n overloads: [\r\n ...genType('textureNumSamples', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexMultisampled2D]),\r\n ...genType('textureNumSamples', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeITexMultisampled2D]),\r\n ...genType('textureNumSamples', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeUTexMultisampled2D]),\r\n ...genType('textureNumSamples', MASK_WEBGPU, typeinfo.typeI32, [typeinfo.typeTexDepthMultisampled2D])\r\n ]\r\n },\r\n // textureSample(tex: texture, coords: number|PBShaderExp);\r\n textureSample: {\r\n overloads: [\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex1D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureSampleBaseClampToEdge', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [typeinfo.typeTex1D, typeinfo.typeF32Vec2]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [typeinfo.typeTex2D, typeinfo.typeF32Vec2]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [typeinfo.typeTex3D, typeinfo.typeF32Vec3]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [typeinfo.typeTexCube, typeinfo.typeF32Vec3]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('texture2D', MASK_WEBGL1, typeinfo.typeF32Vec4, [typeinfo.typeTex1D, typeinfo.typeF32Vec2]),\r\n ...genType('texture2D', MASK_WEBGL1, typeinfo.typeF32Vec4, [typeinfo.typeTex2D, typeinfo.typeF32Vec2]),\r\n ...genType('texture2D', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('texture2D', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureCube', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureCube', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeF32Vec3\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 2) {\r\n throw new PBParamLengthError('textureSample');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSample', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureSample', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n if (texType.isStorageTexture()) {\r\n throw new PBParamTypeError('textureSample', 'texture');\r\n }\r\n const sampler = pb.getDefaultSampler(tex, false)!;\r\n const coords = args[1];\r\n const ret = callBuiltin(pb, name, tex, sampler, coords);\r\n if (ret.$ast.getType().isCompatibleType(typeinfo.typeF32)) {\r\n return pb.vec4(ret);\r\n } else {\r\n return ret;\r\n }\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n if (texType.is1DTexture()) {\r\n if (args[1] instanceof PBShaderExp) {\r\n const coordType = args[1].$ast.getType();\r\n if (\r\n !coordType.isPrimitiveType() ||\r\n !coordType.isScalarType() ||\r\n coordType.scalarType !== typeinfo.PBPrimitiveType.F32\r\n ) {\r\n throw new PBParamTypeError('textureSample', 'coord');\r\n }\r\n } else if (typeof args[1] !== 'number') {\r\n throw new PBParamTypeError('textureSample', 'coord');\r\n }\r\n args[1] = pb.vec2(args[1], 0);\r\n }\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n // textureArraySample(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp)\r\n textureArraySample: {\r\n overloads: [\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSample', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeF32Vec3\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 3) {\r\n throw new PBParamLengthError('textureArraySample');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySample', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureArraySample', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n const coords = args[1];\r\n const arrayIndex = args[2];\r\n const ret = callBuiltin(pb, name, tex, sampler!, coords, arrayIndex);\r\n if (ret.$ast.getType().isCompatibleType(typeinfo.typeF32)) {\r\n return pb.vec4(ret);\r\n } else {\r\n return ret;\r\n }\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n const coords = args[1];\r\n const arrayIndex = args[2];\r\n const coordsComposit = pb.vec3(coords as number | PBShaderExp, pb.float(arrayIndex as PBShaderExp));\r\n return callBuiltin(pb, name, tex, coordsComposit);\r\n }\r\n }\r\n },\r\n // textureSampleBias(tex: PBShaderExp, coords: PBShaderExp, bias: number|PBShaderExp)\r\n textureSampleBias: {\r\n overloads: [\r\n ...genType('textureSampleBias', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleBias', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleBias', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture2D', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureCube', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 3) {\r\n throw new PBParamLengthError('textureSampleBias');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSampleBias', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureSampleBias', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2]);\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n // textureArraySampleBias(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, bias: number|PBShaderExp)\r\n textureArraySampleBias: {\r\n overloads: [\r\n ...genType('textureSampleBias', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleBias', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureArraySampleBias');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySampleBias', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureArraySampleBias', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2], args[3]);\r\n } else if (pb.getDevice().type === 'webgl2') {\r\n pb.getDefaultSampler(tex, false);\r\n const coords = args[1];\r\n const arrayIndex = args[2];\r\n const coordsComposit = pb.vec3(coords as number | PBShaderExp, pb.float(arrayIndex as PBShaderExp));\r\n return callBuiltin(pb, name, tex, coordsComposit, args[3]);\r\n }\r\n }\r\n },\r\n // textureSampleCompare(tex: PBShaderExp, coords: PBShaderExp, depthRef: number|PBShaderExp)\r\n textureSampleCompare: {\r\n overloads: [\r\n ...genType('textureSampleCompare', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleCompare', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32, [typeinfo.typeTexDepth2D, typeinfo.typeF32Vec3]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32, [typeinfo.typeTexDepthCube, typeinfo.typeF32Vec4])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 3) {\r\n throw new PBParamLengthError('textureSampleCompare');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSampleCompare', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType() || !texType.isDepthTexture()) {\r\n throw new PBParamTypeError('textureSampleCompare', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2]);\r\n } else {\r\n pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n let coordsComposite: PBShaderExp;\r\n if (texType.isCubeTexture() || texType.isArrayTexture()) {\r\n coordsComposite = pb.vec4(args[1] as any, args[2] as any);\r\n } else {\r\n coordsComposite = pb.vec3(args[1] as any, args[2] as any);\r\n }\r\n return callBuiltin(pb, name, tex, coordsComposite);\r\n }\r\n }\r\n },\r\n // textureArraySampleCompare(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, depthRef: number|PBShaderExp)\r\n textureArraySampleCompare: {\r\n overloads: [\r\n ...genType('textureSampleCompare', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleCompare', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeF32Vec4\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureArraySampleCompare');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySampleCompare', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType() || !texType.isDepthTexture()) {\r\n throw new PBParamTypeError('textureArraySampleCompare', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2], args[3]);\r\n } else {\r\n pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n const coordsComposite = pb.vec4(args[1] as any, pb.float(args[2] as any), args[3] as any);\r\n return callBuiltin(pb, name, tex, coordsComposite);\r\n }\r\n }\r\n },\r\n // textureSampleLevel(tex: PBShaderExp, coords: PBShaderExp, level: number|PBShaderExp)\r\n textureSampleLevel: {\r\n overloads: [\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture2DLodEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture2DLodEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture2DLodEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexExternal,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureCubeLodEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureCubeLodEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSampleLevel', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureSampleLevel', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgl' && pb.shaderKind === 'vertex') {\r\n // WebGL1 does not support vertex texture lod\r\n return pb.textureSample(tex, args[1] as any);\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n if (texType.isExternalTexture()) {\r\n return pb.textureLoad(tex, pb.ivec2(args[1] as any), 0);\r\n } else {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n const level =\r\n texType.isDepthTexture() &&\r\n (typeof args[2] === 'number' ||\r\n (args[2] instanceof PBShaderExp && args[2].$ast.getType().isCompatibleType(typeinfo.typeF32)))\r\n ? pb.int(args[2])\r\n : args[2];\r\n const ret = texType.isExternalTexture()\r\n ? callBuiltin(pb, name, tex, sampler!, args[1])\r\n : callBuiltin(pb, name, tex, sampler!, args[1], level);\r\n if (ret.$ast.getType().isCompatibleType(typeinfo.typeF32)) {\r\n return pb.vec4(ret);\r\n } else {\r\n return ret;\r\n }\r\n }\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n return texType.isExternalTexture()\r\n ? callBuiltin(pb, name, args[0], args[1], 0)\r\n : callBuiltin(pb, name, args[0], args[1], args[2]);\r\n }\r\n }\r\n },\r\n // textureArraySampleLevel(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, level: number|PBShaderExp)\r\n textureArraySampleLevel: {\r\n overloads: [\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureSampleLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeI32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureArraySampleLevel');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySampleLevel', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureArraySampleLevel', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n const level =\r\n texType.isDepthTexture() &&\r\n (typeof args[3] === 'number' ||\r\n (args[3] instanceof PBShaderExp && args[3].$ast.getType().isCompatibleType(typeinfo.typeF32)))\r\n ? pb.int(args[3])\r\n : args[3];\r\n const ret = callBuiltin(pb, name, tex, sampler!, args[1], args[2], level);\r\n if (ret.$ast.getType().isCompatibleType(typeinfo.typeF32)) {\r\n return pb.vec4(ret);\r\n } else {\r\n return ret;\r\n }\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n const coordsComposite = pb.vec3(args[1] as any, pb.float(args[2] as any));\r\n return callBuiltin(pb, name, tex, coordsComposite, args[3]);\r\n }\r\n }\r\n },\r\n // textureSampleCompare(tex: PBShaderExp, coords: PBShaderExp, depthRef: number|PBShaderExp)\r\n textureSampleCompareLevel: {\r\n overloads: [\r\n ...genType('textureSampleCompareLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleCompareLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCube,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureLod', MASK_WEBGL2, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2D,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32, [typeinfo.typeTexDepthCube, typeinfo.typeF32Vec4])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 3) {\r\n throw new PBParamLengthError('textureSampleCompareLevel');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSampleCompareLevel', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType() || !texType.isDepthTexture()) {\r\n throw new PBParamTypeError('textureSampleCompareLevel', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, true);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2]);\r\n } else {\r\n pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n let coordsComposite: PBShaderExp;\r\n if (texType.isCubeTexture() || texType.isArrayTexture()) {\r\n coordsComposite = pb.vec4(args[1] as any, args[2] as any);\r\n } else {\r\n coordsComposite = pb.vec3(args[1] as any, args[2] as any);\r\n }\r\n return texType.isCubeTexture()\r\n ? callBuiltin(pb, name, tex, coordsComposite)\r\n : callBuiltin(pb, name, tex, coordsComposite, 0);\r\n }\r\n }\r\n },\r\n // textureArraySampleCompareLevel(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, depthRef: number|PBShaderExp)\r\n textureArraySampleCompareLevel: {\r\n overloads: [\r\n ...genType('textureSampleCompareLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('textureSampleCompareLevel', MASK_WEBGPU, typeinfo.typeF32, [\r\n typeinfo.typeTexDepthCubeArray,\r\n typeinfo.typeSamplerComparison,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32\r\n ]),\r\n ...genType('texture', MASK_WEBGL2, typeinfo.typeF32, [\r\n typeinfo.typeTexDepth2DArray,\r\n typeinfo.typeF32Vec4\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureArraySampleCompareLevel');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySampleCompareLevel', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType() || !texType.isDepthTexture()) {\r\n throw new PBParamTypeError('textureArraySampleCompareLevel', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, true);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2], args[3]);\r\n } else {\r\n pb.getDefaultSampler(args[0] as PBShaderExp, true);\r\n const coordsComposite = pb.vec4(args[1] as any, pb.float(args[2] as any), args[3] as any);\r\n return callBuiltin(pb, name, tex, coordsComposite);\r\n }\r\n }\r\n },\r\n // textureSampleGrad(tex: PBShaderExp, coords: PBShaderExp, ddx: PBShaderExp, ddy: PBShaderExp)\r\n textureSampleGrad: {\r\n overloads: [\r\n ...genType('textureSampleGrad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureSampleGrad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureSampleGrad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGrad', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureGrad', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex3D,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGrad', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('texture2DGradEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2D,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureCubeGradEXT', MASK_WEBGL1, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCube,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 4) {\r\n throw new PBParamLengthError('textureSampleGrad');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureSampleGrad', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType()) {\r\n throw new PBParamTypeError('textureSampleGrad', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2], args[3]);\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, ...args);\r\n }\r\n }\r\n },\r\n // textureArraySampleGrad(tex: PBShaderExp, coords: PBShaderExp, arrayIndex: number|PBShaderExp, ddx: PBShaderExp, ddy: PBShaderExp)\r\n textureArraySampleGrad: {\r\n overloads: [\r\n ...genType('textureSampleGrad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ]),\r\n ...genType('textureSampleGrad', MASK_WEBGPU, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTexCubeArray,\r\n typeinfo.typeSampler,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeI32,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec3\r\n ]),\r\n ...genType('textureGrad', MASK_WEBGL2, typeinfo.typeF32Vec4, [\r\n typeinfo.typeTex2DArray,\r\n typeinfo.typeF32Vec3,\r\n typeinfo.typeF32Vec2,\r\n typeinfo.typeF32Vec2\r\n ])\r\n ],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 5) {\r\n throw new PBParamLengthError('textureArraySampleGrad');\r\n }\r\n const tex = args[0];\r\n if (!(tex instanceof PBShaderExp)) {\r\n throw new PBParamTypeError('textureArraySampleGrad', 'texture');\r\n }\r\n const texType = tex.$ast.getType();\r\n if (!texType.isTextureType() || !texType.isArrayTexture()) {\r\n throw new PBParamTypeError('textureArraySampleGrad', 'texture');\r\n }\r\n if (pb.getDevice().type === 'webgpu') {\r\n const sampler = pb.getDefaultSampler(tex, false);\r\n return callBuiltin(pb, name, tex, sampler!, args[1], args[2], args[3], args[4]);\r\n } else {\r\n pb.getDefaultSampler(tex, false);\r\n const coordsComposite = pb.vec3(args[1] as any, pb.float(args[2] as any));\r\n return callBuiltin(pb, name, tex, coordsComposite, args[3], args[4]);\r\n }\r\n }\r\n },\r\n storageBarrier: { overloads: genType('storageBarrier', MASK_WEBGPU, typeinfo.typeVoid, []) },\r\n workgroupBarrier: { overloads: genType('workgroupBarrier', MASK_WEBGPU, typeinfo.typeVoid, []) },\r\n atomicLoad: {\r\n overloades: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 1) {\r\n throw new PBParamLengthError(name);\r\n }\r\n const arg = args[0];\r\n if (!(arg instanceof PBShaderExp)) {\r\n throw new PBParamTypeError(name, 'ptr');\r\n }\r\n if (arg.$ast.getType().typeId === typeinfo.typeAtomicI32.typeId) {\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg.$ast)], typeinfo.typeI32);\r\n } else if (arg.$ast.getType().typeId === typeinfo.typeAtomicU32.typeId) {\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg.$ast)], typeinfo.typeU32);\r\n } else {\r\n throw new PBParamValueError(name, 'ptr must be atomic type');\r\n }\r\n }\r\n },\r\n atomicStore: {\r\n overloades: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 2) {\r\n throw new PBParamLengthError(name);\r\n }\r\n const arg1 = args[0];\r\n const arg2 = args[1];\r\n if (!(arg1 instanceof PBShaderExp)) {\r\n throw new PBParamTypeError(name, 'ptr');\r\n }\r\n if (arg1.$ast.getType().typeId === typeinfo.typeAtomicI32.typeId) {\r\n if (typeof arg2 === 'number') {\r\n if (!Number.isInteger(arg2)) {\r\n throw new PBParamValueError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(\r\n name,\r\n [new ASTAddressOf(arg1.$ast), new ASTScalar(arg2, typeinfo.typeI32)],\r\n typeinfo.typeVoid\r\n );\r\n } else if (arg2 instanceof PBShaderExp) {\r\n if (arg2.$ast.getType().typeId !== typeinfo.typeI32.typeId) {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg1.$ast), arg2.$ast], typeinfo.typeVoid);\r\n } else {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n } else if (arg1.$ast.getType().typeId === typeinfo.typeAtomicU32.typeId) {\r\n if (typeof arg2 === 'number') {\r\n if (!Number.isInteger(arg2)) {\r\n throw new PBParamValueError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(\r\n name,\r\n [new ASTAddressOf(arg1.$ast), new ASTScalar(arg2, typeinfo.typeU32)],\r\n typeinfo.typeVoid\r\n );\r\n } else if (arg2 instanceof PBShaderExp) {\r\n if (arg2.$ast.getType().typeId !== typeinfo.typeU32.typeId) {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg1.$ast), arg2.$ast], typeinfo.typeVoid);\r\n } else {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n } else {\r\n throw new PBParamValueError(name, 'ptr must be atomic type');\r\n }\r\n }\r\n }\r\n};\r\n\r\nfor (const name of [\r\n 'atomicAdd',\r\n 'atomicSub',\r\n 'atomicMax',\r\n 'atomicMin',\r\n 'atomicAnd',\r\n 'atomicOr',\r\n 'atomicXor',\r\n 'atomicExchange'\r\n]) {\r\n // @ts-ignore 7053\r\n builtinFunctionsAll[name] = {\r\n overloades: [],\r\n normalizeFunc(pb: ProgramBuilder, name: string, ...args: ExpValueType[]) {\r\n if (args.length !== 2) {\r\n throw new PBParamLengthError(name);\r\n }\r\n const arg1 = args[0];\r\n const arg2 = args[1];\r\n if (!(arg1 instanceof PBShaderExp)) {\r\n throw new PBParamTypeError(name, 'ptr');\r\n }\r\n if (arg1.$ast.getType().typeId === typeinfo.typeAtomicI32.typeId) {\r\n if (typeof arg2 === 'number') {\r\n if (!Number.isInteger(arg2)) {\r\n throw new PBParamValueError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(\r\n name,\r\n [new ASTAddressOf(arg1.$ast), new ASTScalar(arg2, typeinfo.typeI32)],\r\n typeinfo.typeI32\r\n );\r\n } else if (arg2 instanceof PBShaderExp) {\r\n if (arg2.$ast.getType().typeId !== typeinfo.typeI32.typeId) {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg1.$ast), arg2.$ast], typeinfo.typeI32);\r\n } else {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n } else if (arg1.$ast.getType().typeId === typeinfo.typeAtomicU32.typeId) {\r\n if (typeof arg2 === 'number') {\r\n if (!Number.isInteger(arg2)) {\r\n throw new PBParamValueError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(\r\n name,\r\n [new ASTAddressOf(arg1.$ast), new ASTScalar(arg2, typeinfo.typeU32)],\r\n typeinfo.typeU32\r\n );\r\n } else if (arg2 instanceof PBShaderExp) {\r\n if (arg2.$ast.getType().typeId !== typeinfo.typeU32.typeId) {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n return pb.$callFunctionNoCheck(name, [new ASTAddressOf(arg1.$ast), arg2.$ast], typeinfo.typeU32);\r\n } else {\r\n throw new PBParamTypeError(name, 'value');\r\n }\r\n } else {\r\n throw new PBParamValueError(name, 'ptr must be atomic type');\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport type PBBuiltinFunction = keyof typeof builtinFunctionsAll;\r\nexport type PBBuiltinFunctionWrapper = (\r\n pb: ProgramBuilder,\r\n name: string,\r\n ...args: ExpValueType[]\r\n) => PBShaderExp;\r\nexport type PBBuiltinFunctionOverloadsInfo = {\r\n overloads?: [typeinfo.PBFunctionTypeInfo, number][];\r\n normalizeFunc?: PBBuiltinFunctionWrapper;\r\n};\r\n\r\n/** @internal */\r\nexport function setBuiltinFuncs(cls: typeof ProgramBuilder) {\r\n for (const k of Object.keys(builtinFunctionsAll)) {\r\n // @ts-ignore 7053\r\n cls.prototype[k] = function (this: ProgramBuilder, ...args: ExpValueType[]) {\r\n // @ts-ignore 7053\r\n const normalizeFunc = builtinFunctionsAll?.[k]?.normalizeFunc || callBuiltin;\r\n return normalizeFunc(this, k, ...args);\r\n };\r\n }\r\n}\r\n"],"names":["genTypeList","typeinfo","genMatrixTypeList","matchFunctionOverloadings","pb","name","args","bit","getDevice","type","MASK_WEBGL1","MASK_WEBGL2","MASK_WEBGPU","overloadings","builtinFunctionsAll","overloads","filter","val","map","length","PBDeviceNotSupport","argsNonArray","normalizeExpValue","matchResult","_matchFunctionOverloading","PBOverloadingMatchError","callBuiltinChecked","$callFunction","callBuiltin","genMatrixType","shaderTypeMask","r","result","i","returnType","argTypes","arg","push","ASTFunction","genType","vecOnly","findIndex","unaryFunc","a","op","exp","PBShaderExp","$ast","ASTUnaryFunc","binaryFunc","b","ASTBinaryFunc","MASK_WEBGL","MASK_ALL","add_2","normalizeFunc","add","PBParamLengthError","sub","div","mul_2","mul","mod","argType","getType","isIntegerType","isPrimitiveType","scalarType","I32","U32","radians","degrees","sin","cos","tan","asin","acos","atan","atan2","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp2","log","log2","sqrt","inverseSqrt","abs","sign","floor","ceil","fract","fma","round","trunc","min","max","clamp","saturate","PBParamValueError","isScalarType","isVectorType","PBParamTypeError","cols","mix","step","smoothStep","isnan","isinf","distance","dot","cross","normalize","faceForward","reflect","refract","frexp","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","compEqual","compNotEqual","equal","all","notEqual","any","not","neg","or_2","or","compOr","and_2","and","compAnd","compXor","sal","sar","arrayLength","arrayType","isPointerType","pointerType","isArrayType","dimension","addressOf","$callFunctionNoCheck","select","cond","newCond","typeId","float","vec2","vec3","vec4","floatBitsToInt","ASTScalar","floatBitsToUint","intBitsToFloat","uintBitsToFloat","pack4x8snorm","unpack4x8snorm","pack4x8unorm","unpack4x8unorm","pack2x16snorm","unpack2x16snorm","pack2x16unorm","unpack2x16unorm","pack2x16float","unpack2x16float","matrixCompMult","dpdx","dpdy","fwidth","dpdxCoarse","dpdxFine","dpdyCoarse","dpdyFine","textureDimensions","texType","isTextureType","isMultisampledTexture","isStorageTexture","undefined","tex","level","is1DTexture","x","textureGather","textureArrayGather","textureGatherCompare","textureArrayGatherCompare","textureLoad","Number","isInteger","coordType","ivec2","isExternalTexture","slice","readable","textureArrayLoad","coords","ivec3","textureStore","writable","textureArrayStore","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","sampler","getDefaultSampler","ret","isCompatibleType","F32","textureArraySample","arrayIndex","coordsComposit","textureSampleBias","textureArraySampleBias","textureSampleCompare","isDepthTexture","coordsComposite","isCubeTexture","isArrayTexture","textureArraySampleCompare","textureSampleLevel","shaderKind","int","textureArraySampleLevel","textureSampleCompareLevel","textureArraySampleCompareLevel","textureSampleGrad","textureArraySampleGrad","storageBarrier","workgroupBarrier","atomicLoad","overloades","ASTAddressOf","atomicStore","arg1","arg2","setBuiltinFuncs","cls","k","Object","keys","prototype"],"mappings":"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"}