From 6e75f19212e3deaebd5bd8542fe10a6fdedc0cdf Mon Sep 17 00:00:00 2001 From: Jiawei Shao Date: Sat, 25 Nov 2023 13:32:04 +0800 Subject: [PATCH] Add tests on createBindGroupLayout() with new storage texture accesses (#3186) * Add tests about creating bind group layouts with new storage texture accesses * Run generate-cache * Address reviewer's comments * Revert "Run generate-cache" This reverts commit 51de69c4d19699df9e7ac1f9ef2879469eeeb26f. * generate cache * Revert "generate cache" This reverts commit a4de0911f2c7c71bbf40e7ea73fc8a1c37bd8835. * generate caches * Revert "generate caches" This reverts commit f0dff6e11198b0dac8eb90f8f00c1aecd7f6e73b. * Generate caches * Update src/webgpu/api/validation/createBindGroupLayout.spec.ts Co-authored-by: jzm-intel * Update src/webgpu/api/validation/createBindGroupLayout.spec.ts Co-authored-by: jzm-intel * Run `npx grunt fix` --------- Co-authored-by: jzm-intel --- package-lock.json | 14 +- package.json | 2 +- src/resources/cache/hashes.json | 208 ++--- .../cache/webgpu/shader/execution/abs.bin | Bin 3143 -> 3143 bytes .../cache/webgpu/shader/execution/acos.bin | Bin 3563 -> 3563 bytes .../cache/webgpu/shader/execution/acosh.bin | Bin 4022 -> 4022 bytes .../cache/webgpu/shader/execution/asin.bin | Bin 3673 -> 3673 bytes .../cache/webgpu/shader/execution/asinh.bin | Bin 1662 -> 1662 bytes .../cache/webgpu/shader/execution/atan.bin | Bin 2465 -> 2465 bytes .../cache/webgpu/shader/execution/atan2.bin | Bin 4598 -> 4598 bytes .../cache/webgpu/shader/execution/atanh.bin | Bin 2397 -> 2397 bytes .../shader/execution/binary/af_addition.bin | Bin 15731 -> 15731 bytes .../shader/execution/binary/af_division.bin | Bin 6107 -> 6107 bytes .../shader/execution/binary/af_logical.bin | Bin 1057 -> 1057 bytes .../execution/binary/af_matrix_addition.bin | Bin 42208 -> 42208 bytes .../binary/af_matrix_subtraction.bin | Bin 45488 -> 45488 bytes .../execution/binary/af_multiplication.bin | Bin 16994 -> 16994 bytes .../shader/execution/binary/af_remainder.bin | Bin 4312 -> 4312 bytes .../execution/binary/af_subtraction.bin | Bin 15890 -> 15890 bytes .../shader/execution/binary/f16_addition.bin | Bin 15162 -> 15162 bytes .../shader/execution/binary/f16_division.bin | Bin 13007 -> 13007 bytes .../shader/execution/binary/f16_logical.bin | Bin 1079 -> 1079 bytes .../execution/binary/f16_matrix_addition.bin | Bin 40004 -> 40004 bytes .../f16_matrix_matrix_multiplication.bin | Bin 179718 -> 179718 bytes .../f16_matrix_scalar_multiplication.bin | Bin 68678 -> 68678 bytes .../binary/f16_matrix_subtraction.bin | Bin 47045 -> 47045 bytes .../f16_matrix_vector_multiplication.bin | Bin 55531 -> 55531 bytes .../execution/binary/f16_multiplication.bin | Bin 16007 -> 16007 bytes .../shader/execution/binary/f16_remainder.bin | Bin 9680 -> 9680 bytes .../execution/binary/f16_subtraction.bin | Bin 15446 -> 15446 bytes .../shader/execution/binary/f32_addition.bin | Bin 17903 -> 17903 bytes .../shader/execution/binary/f32_division.bin | Bin 15397 -> 15397 bytes .../shader/execution/binary/f32_logical.bin | Bin 1224 -> 1224 bytes .../execution/binary/f32_matrix_addition.bin | Bin 68273 -> 68273 bytes .../f32_matrix_matrix_multiplication.bin | Bin 282050 -> 282050 bytes .../f32_matrix_scalar_multiplication.bin | Bin 121768 -> 121768 bytes .../binary/f32_matrix_subtraction.bin | Bin 79035 -> 79035 bytes .../f32_matrix_vector_multiplication.bin | Bin 70974 -> 70974 bytes .../execution/binary/f32_multiplication.bin | Bin 20017 -> 20017 bytes .../shader/execution/binary/f32_remainder.bin | Bin 11497 -> 11497 bytes .../execution/binary/f32_subtraction.bin | Bin 18221 -> 18221 bytes .../execution/binary/i32_arithmetic.bin | Bin 119525 -> 119525 bytes .../execution/binary/i32_comparison.bin | Bin 539 -> 539 bytes .../execution/binary/u32_arithmetic.bin | Bin 21910 -> 21910 bytes .../execution/binary/u32_comparison.bin | Bin 249 -> 249 bytes .../cache/webgpu/shader/execution/bitcast.bin | Bin 249811 -> 249811 bytes .../cache/webgpu/shader/execution/ceil.bin | Bin 1811 -> 1811 bytes .../cache/webgpu/shader/execution/clamp.bin | Bin 64713 -> 64713 bytes .../cache/webgpu/shader/execution/cos.bin | Bin 2860 -> 2860 bytes .../cache/webgpu/shader/execution/cosh.bin | Bin 1436 -> 1436 bytes .../cache/webgpu/shader/execution/cross.bin | Bin 277132 -> 277132 bytes .../cache/webgpu/shader/execution/degrees.bin | Bin 4489 -> 4489 bytes .../webgpu/shader/execution/determinant.bin | Bin 811 -> 811 bytes .../webgpu/shader/execution/distance.bin | Bin 194559 -> 194559 bytes .../cache/webgpu/shader/execution/dot.bin | Bin 73552 -> 73552 bytes .../cache/webgpu/shader/execution/exp.bin | Bin 4469 -> 4469 bytes .../cache/webgpu/shader/execution/exp2.bin | Bin 4493 -> 4493 bytes .../webgpu/shader/execution/faceForward.bin | Bin 190227 -> 190227 bytes .../cache/webgpu/shader/execution/floor.bin | Bin 3022 -> 3022 bytes .../cache/webgpu/shader/execution/fma.bin | Bin 83195 -> 83195 bytes .../cache/webgpu/shader/execution/fract.bin | Bin 1933 -> 1933 bytes .../cache/webgpu/shader/execution/frexp.bin | Bin 7422 -> 7422 bytes .../webgpu/shader/execution/inverseSqrt.bin | Bin 19659 -> 19659 bytes .../cache/webgpu/shader/execution/ldexp.bin | Bin 3172 -> 3172 bytes .../cache/webgpu/shader/execution/length.bin | Bin 4367 -> 4367 bytes .../cache/webgpu/shader/execution/log.bin | Bin 25940 -> 25940 bytes .../cache/webgpu/shader/execution/log2.bin | Bin 25900 -> 25900 bytes .../cache/webgpu/shader/execution/max.bin | Bin 162109 -> 162109 bytes .../cache/webgpu/shader/execution/min.bin | Bin 162108 -> 162108 bytes .../cache/webgpu/shader/execution/mix.bin | Bin 528608 -> 528608 bytes .../cache/webgpu/shader/execution/modf.bin | Bin 15725 -> 15725 bytes .../webgpu/shader/execution/normalize.bin | Bin 4987 -> 4987 bytes .../webgpu/shader/execution/pack2x16float.bin | Bin 94646 -> 94646 bytes .../cache/webgpu/shader/execution/pow.bin | Bin 175218 -> 175218 bytes .../webgpu/shader/execution/quantizeToF16.bin | Bin 1710 -> 1710 bytes .../cache/webgpu/shader/execution/radians.bin | Bin 4340 -> 4340 bytes .../cache/webgpu/shader/execution/reflect.bin | Bin 24101 -> 24101 bytes .../cache/webgpu/shader/execution/refract.bin | Bin 422906 -> 422906 bytes .../cache/webgpu/shader/execution/round.bin | Bin 2815 -> 2815 bytes .../webgpu/shader/execution/saturate.bin | Bin 3055 -> 3055 bytes .../cache/webgpu/shader/execution/sign.bin | Bin 2648 -> 2648 bytes .../cache/webgpu/shader/execution/sin.bin | Bin 3503 -> 3503 bytes .../cache/webgpu/shader/execution/sinh.bin | Bin 1652 -> 1652 bytes .../webgpu/shader/execution/smoothstep.bin | Bin 43271 -> 43271 bytes .../cache/webgpu/shader/execution/sqrt.bin | Bin 1920 -> 1920 bytes .../cache/webgpu/shader/execution/step.bin | Bin 103727 -> 103727 bytes .../cache/webgpu/shader/execution/tan.bin | Bin 3598 -> 3598 bytes .../cache/webgpu/shader/execution/tanh.bin | Bin 1540 -> 1540 bytes .../webgpu/shader/execution/transpose.bin | Bin 9583 -> 9583 bytes .../cache/webgpu/shader/execution/trunc.bin | Bin 2816 -> 2816 bytes .../shader/execution/unary/af_arithmetic.bin | Bin 5583 -> 5583 bytes .../shader/execution/unary/af_assignment.bin | Bin 2586 -> 2586 bytes .../execution/unary/bool_conversion.bin | Bin 1842 -> 1842 bytes .../shader/execution/unary/f16_arithmetic.bin | Bin 3940 -> 3940 bytes .../shader/execution/unary/f16_conversion.bin | Bin 8085 -> 8085 bytes .../shader/execution/unary/f32_arithmetic.bin | Bin 4924 -> 4924 bytes .../shader/execution/unary/f32_conversion.bin | Bin 10591 -> 10591 bytes .../shader/execution/unary/i32_arithmetic.bin | Bin 941 -> 941 bytes .../shader/execution/unary/i32_complement.bin | Bin 951 -> 951 bytes .../shader/execution/unary/i32_conversion.bin | Bin 2113 -> 2113 bytes .../shader/execution/unary/u32_complement.bin | Bin 589 -> 589 bytes .../shader/execution/unary/u32_conversion.bin | Bin 2122 -> 2122 bytes .../shader/execution/unpack2x16float.bin | Bin 900 -> 900 bytes .../shader/execution/unpack2x16snorm.bin | Bin 1129 -> 1129 bytes .../shader/execution/unpack2x16unorm.bin | Bin 1113 -> 1113 bytes .../shader/execution/unpack4x8snorm.bin | Bin 1529 -> 1529 bytes .../shader/execution/unpack4x8unorm.bin | Bin 1527 -> 1527 bytes .../validation/createBindGroupLayout.spec.ts | 46 +- src/webgpu/capability_info.ts | 2 +- src/webgpu/format_info.ts | 875 ++++++++++++++++-- 110 files changed, 918 insertions(+), 229 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4d86ed1daa1..b06437532f8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@types/serve-index": "^1.9.3", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "@webgpu/types": "^0.1.38", + "@webgpu/types": "^0.1.39", "ansi-colors": "4.1.3", "babel-plugin-add-header-comment": "^1.0.3", "babel-plugin-const-enum": "^1.2.0", @@ -1524,9 +1524,9 @@ "dev": true }, "node_modules/@webgpu/types": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz", - "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==", + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.39.tgz", + "integrity": "sha512-sSVNnZpvHMnVX4KLAIx6RSQj2jTIoA4NCQTayarQskTqfrflWVXBZttEhIYWg4mJBW9No8q0g2PFCx2QEnIj/Q==", "dev": true }, "node_modules/abbrev": { @@ -11582,9 +11582,9 @@ "dev": true }, "@webgpu/types": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz", - "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==", + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.39.tgz", + "integrity": "sha512-sSVNnZpvHMnVX4KLAIx6RSQj2jTIoA4NCQTayarQskTqfrflWVXBZttEhIYWg4mJBW9No8q0g2PFCx2QEnIj/Q==", "dev": true }, "abbrev": { diff --git a/package.json b/package.json index 608d0318f28d..dfa253e86001 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/serve-index": "^1.9.3", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "@webgpu/types": "^0.1.38", + "@webgpu/types": "^0.1.39", "ansi-colors": "4.1.3", "babel-plugin-add-header-comment": "^1.0.3", "babel-plugin-const-enum": "^1.2.0", diff --git a/src/resources/cache/hashes.json b/src/resources/cache/hashes.json index 1148577cce12..52f519294ca9 100644 --- a/src/resources/cache/hashes.json +++ b/src/resources/cache/hashes.json @@ -1,106 +1,106 @@ { - "webgpu/shader/execution/binary/af_addition.bin": "a5da1df9", - "webgpu/shader/execution/binary/af_logical.bin": "27d915bd", - "webgpu/shader/execution/binary/af_division.bin": "a5270697", - "webgpu/shader/execution/binary/af_matrix_addition.bin": "62f800a8", - "webgpu/shader/execution/binary/af_matrix_subtraction.bin": "9183d57f", - "webgpu/shader/execution/binary/af_multiplication.bin": "865258e7", - "webgpu/shader/execution/binary/af_remainder.bin": "4c61df7e", - "webgpu/shader/execution/binary/af_subtraction.bin": "43dd47ae", - "webgpu/shader/execution/binary/f16_addition.bin": "513d71c8", - "webgpu/shader/execution/binary/f16_logical.bin": "443f9a98", - "webgpu/shader/execution/binary/f16_division.bin": "f54e29cb", - "webgpu/shader/execution/binary/f16_matrix_addition.bin": "f910cec6", - "webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin": "b70ddbb2", - "webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin": "62afef7a", - "webgpu/shader/execution/binary/f16_matrix_subtraction.bin": "29e3722d", - "webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin": "f4a29ad1", - "webgpu/shader/execution/binary/f16_multiplication.bin": "9baf80a1", - "webgpu/shader/execution/binary/f16_remainder.bin": "85c74732", - "webgpu/shader/execution/binary/f16_subtraction.bin": "b06f0345", - "webgpu/shader/execution/binary/f32_addition.bin": "e0f9ce70", - "webgpu/shader/execution/binary/f32_logical.bin": "47cadba6", - "webgpu/shader/execution/binary/f32_division.bin": "7005e989", - "webgpu/shader/execution/binary/f32_matrix_addition.bin": "98e53a9", - "webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin": "b5c60cda", - "webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin": "522a3569", - "webgpu/shader/execution/binary/f32_matrix_subtraction.bin": "c19e488c", - "webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin": "9af1d0c3", - "webgpu/shader/execution/binary/f32_multiplication.bin": "e59c1749", - "webgpu/shader/execution/binary/f32_remainder.bin": "f0aa263b", - "webgpu/shader/execution/binary/f32_subtraction.bin": "f4bc3081", - "webgpu/shader/execution/binary/i32_arithmetic.bin": "e92caa13", - "webgpu/shader/execution/binary/i32_comparison.bin": "21f566be", - "webgpu/shader/execution/binary/u32_arithmetic.bin": "4190d758", - "webgpu/shader/execution/binary/u32_comparison.bin": "91fe8844", - "webgpu/shader/execution/abs.bin": "40c39d52", - "webgpu/shader/execution/acos.bin": "9998e303", - "webgpu/shader/execution/acosh.bin": "7636c6b9", - "webgpu/shader/execution/asin.bin": "fd7059cd", - "webgpu/shader/execution/asinh.bin": "58959a2", - "webgpu/shader/execution/atan.bin": "ed0a5fe5", - "webgpu/shader/execution/atan2.bin": "bcfaa17a", - "webgpu/shader/execution/atanh.bin": "fe79d05d", - "webgpu/shader/execution/bitcast.bin": "ab8f3a85", - "webgpu/shader/execution/ceil.bin": "82690ce1", - "webgpu/shader/execution/clamp.bin": "a30a2b8e", - "webgpu/shader/execution/cos.bin": "bf80f288", - "webgpu/shader/execution/cosh.bin": "2add503b", - "webgpu/shader/execution/cross.bin": "ce546995", - "webgpu/shader/execution/degrees.bin": "af783136", - "webgpu/shader/execution/determinant.bin": "16d6108", - "webgpu/shader/execution/distance.bin": "34788cf8", - "webgpu/shader/execution/dot.bin": "5d8d3fff", - "webgpu/shader/execution/exp.bin": "e890f3d", - "webgpu/shader/execution/exp2.bin": "80f0c788", - "webgpu/shader/execution/faceForward.bin": "4cf3e04d", - "webgpu/shader/execution/floor.bin": "4d91b147", - "webgpu/shader/execution/fma.bin": "9579e337", - "webgpu/shader/execution/fract.bin": "a1372b54", - "webgpu/shader/execution/frexp.bin": "7d140601", - "webgpu/shader/execution/inverseSqrt.bin": "515fb6e3", - "webgpu/shader/execution/ldexp.bin": "826a29a8", - "webgpu/shader/execution/length.bin": "124ac33b", - "webgpu/shader/execution/log.bin": "aad3a1a8", - "webgpu/shader/execution/log2.bin": "7ef34360", - "webgpu/shader/execution/max.bin": "69a1807", - "webgpu/shader/execution/min.bin": "8dfa353d", - "webgpu/shader/execution/mix.bin": "96c9d02d", - "webgpu/shader/execution/modf.bin": "26670f53", - "webgpu/shader/execution/normalize.bin": "60571bc4", - "webgpu/shader/execution/pack2x16float.bin": "31601129", - "webgpu/shader/execution/pow.bin": "8f5de92", - "webgpu/shader/execution/quantizeToF16.bin": "9936c450", - "webgpu/shader/execution/radians.bin": "56c3610d", - "webgpu/shader/execution/reflect.bin": "61beb0cf", - "webgpu/shader/execution/refract.bin": "d0180f9b", - "webgpu/shader/execution/round.bin": "3bc78d47", - "webgpu/shader/execution/saturate.bin": "8478071d", - "webgpu/shader/execution/sign.bin": "58d75a88", - "webgpu/shader/execution/sin.bin": "b14cf00a", - "webgpu/shader/execution/sinh.bin": "a8d76c62", - "webgpu/shader/execution/smoothstep.bin": "246c76eb", - "webgpu/shader/execution/sqrt.bin": "f6c4f4c1", - "webgpu/shader/execution/step.bin": "8268c823", - "webgpu/shader/execution/tan.bin": "af3ecb02", - "webgpu/shader/execution/tanh.bin": "c22b8364", - "webgpu/shader/execution/transpose.bin": "f8663cd3", - "webgpu/shader/execution/trunc.bin": "b532e654", - "webgpu/shader/execution/unpack2x16float.bin": "67d0b480", - "webgpu/shader/execution/unpack2x16snorm.bin": "be8c0687", - "webgpu/shader/execution/unpack2x16unorm.bin": "8ef57a36", - "webgpu/shader/execution/unpack4x8snorm.bin": "a807e0f6", - "webgpu/shader/execution/unpack4x8unorm.bin": "b8ed39e8", - "webgpu/shader/execution/unary/af_arithmetic.bin": "f6181e3d", - "webgpu/shader/execution/unary/af_assignment.bin": "1da130e3", - "webgpu/shader/execution/unary/bool_conversion.bin": "166e7b55", - "webgpu/shader/execution/unary/f16_arithmetic.bin": "576d8432", - "webgpu/shader/execution/unary/f16_conversion.bin": "187365c9", - "webgpu/shader/execution/unary/f32_arithmetic.bin": "abfce14d", - "webgpu/shader/execution/unary/f32_conversion.bin": "69c41336", - "webgpu/shader/execution/unary/i32_arithmetic.bin": "cca83969", - "webgpu/shader/execution/unary/i32_complement.bin": "2a173277", - "webgpu/shader/execution/unary/i32_conversion.bin": "11d03e95", - "webgpu/shader/execution/unary/u32_complement.bin": "6fce0665", - "webgpu/shader/execution/unary/u32_conversion.bin": "53c94e7b" + "webgpu/shader/execution/binary/af_addition.bin": "78c94ad8", + "webgpu/shader/execution/binary/af_logical.bin": "fa9ec211", + "webgpu/shader/execution/binary/af_division.bin": "5d6cb4be", + "webgpu/shader/execution/binary/af_matrix_addition.bin": "207aebd0", + "webgpu/shader/execution/binary/af_matrix_subtraction.bin": "1ccdc3af", + "webgpu/shader/execution/binary/af_multiplication.bin": "8a7b42df", + "webgpu/shader/execution/binary/af_remainder.bin": "5d2c6e8c", + "webgpu/shader/execution/binary/af_subtraction.bin": "c35c12b3", + "webgpu/shader/execution/binary/f16_addition.bin": "e269395b", + "webgpu/shader/execution/binary/f16_logical.bin": "bd056fdd", + "webgpu/shader/execution/binary/f16_division.bin": "63aee0a5", + "webgpu/shader/execution/binary/f16_matrix_addition.bin": "391be16b", + "webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin": "57d98880", + "webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin": "136c0f5f", + "webgpu/shader/execution/binary/f16_matrix_subtraction.bin": "16730051", + "webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin": "ca591b1e", + "webgpu/shader/execution/binary/f16_multiplication.bin": "3ea00fdc", + "webgpu/shader/execution/binary/f16_remainder.bin": "9bd500da", + "webgpu/shader/execution/binary/f16_subtraction.bin": "833605e7", + "webgpu/shader/execution/binary/f32_addition.bin": "85e552cb", + "webgpu/shader/execution/binary/f32_logical.bin": "6ca238d2", + "webgpu/shader/execution/binary/f32_division.bin": "a1ef6e58", + "webgpu/shader/execution/binary/f32_matrix_addition.bin": "f68b863f", + "webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin": "d55c0d78", + "webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin": "2cb1e", + "webgpu/shader/execution/binary/f32_matrix_subtraction.bin": "83a77306", + "webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin": "2a68c52", + "webgpu/shader/execution/binary/f32_multiplication.bin": "8b4452d3", + "webgpu/shader/execution/binary/f32_remainder.bin": "528d99c4", + "webgpu/shader/execution/binary/f32_subtraction.bin": "e2f72c71", + "webgpu/shader/execution/binary/i32_arithmetic.bin": "431e0f57", + "webgpu/shader/execution/binary/i32_comparison.bin": "8517891f", + "webgpu/shader/execution/binary/u32_arithmetic.bin": "15cec499", + "webgpu/shader/execution/binary/u32_comparison.bin": "c96a5982", + "webgpu/shader/execution/abs.bin": "d3fd65c2", + "webgpu/shader/execution/acos.bin": "5839852", + "webgpu/shader/execution/acosh.bin": "515c1629", + "webgpu/shader/execution/asin.bin": "2979db33", + "webgpu/shader/execution/asinh.bin": "884df7af", + "webgpu/shader/execution/atan.bin": "ea30536d", + "webgpu/shader/execution/atan2.bin": "a495e35a", + "webgpu/shader/execution/atanh.bin": "3920b6af", + "webgpu/shader/execution/bitcast.bin": "d3408cce", + "webgpu/shader/execution/ceil.bin": "b73e93a3", + "webgpu/shader/execution/clamp.bin": "931ba49e", + "webgpu/shader/execution/cos.bin": "8de6752", + "webgpu/shader/execution/cosh.bin": "f2ad6585", + "webgpu/shader/execution/cross.bin": "661dbc74", + "webgpu/shader/execution/degrees.bin": "613a2afc", + "webgpu/shader/execution/determinant.bin": "c3f6ebf9", + "webgpu/shader/execution/distance.bin": "a30afaad", + "webgpu/shader/execution/dot.bin": "1d5bc868", + "webgpu/shader/execution/exp.bin": "7094a6ee", + "webgpu/shader/execution/exp2.bin": "bd0da4cf", + "webgpu/shader/execution/faceForward.bin": "91757e9d", + "webgpu/shader/execution/floor.bin": "5d113e8e", + "webgpu/shader/execution/fma.bin": "6dd1e30a", + "webgpu/shader/execution/fract.bin": "5911d29a", + "webgpu/shader/execution/frexp.bin": "8a6b3d88", + "webgpu/shader/execution/inverseSqrt.bin": "c3060fd7", + "webgpu/shader/execution/ldexp.bin": "8af64f84", + "webgpu/shader/execution/length.bin": "94590226", + "webgpu/shader/execution/log.bin": "be9fbfea", + "webgpu/shader/execution/log2.bin": "67d7b594", + "webgpu/shader/execution/max.bin": "3f5dffbf", + "webgpu/shader/execution/min.bin": "909df14e", + "webgpu/shader/execution/mix.bin": "251864be", + "webgpu/shader/execution/modf.bin": "34d66497", + "webgpu/shader/execution/normalize.bin": "e4bd21a9", + "webgpu/shader/execution/pack2x16float.bin": "4de3bb3b", + "webgpu/shader/execution/pow.bin": "8da22713", + "webgpu/shader/execution/quantizeToF16.bin": "c40fe1ed", + "webgpu/shader/execution/radians.bin": "483c3033", + "webgpu/shader/execution/reflect.bin": "3a22a937", + "webgpu/shader/execution/refract.bin": "3f042dba", + "webgpu/shader/execution/round.bin": "a217f9d7", + "webgpu/shader/execution/saturate.bin": "a7c98160", + "webgpu/shader/execution/sign.bin": "8dff863c", + "webgpu/shader/execution/sin.bin": "165f57ee", + "webgpu/shader/execution/sinh.bin": "67e7427d", + "webgpu/shader/execution/smoothstep.bin": "12b9ef22", + "webgpu/shader/execution/sqrt.bin": "6f1cec1b", + "webgpu/shader/execution/step.bin": "9accf537", + "webgpu/shader/execution/tan.bin": "fa3b129a", + "webgpu/shader/execution/tanh.bin": "e189b51d", + "webgpu/shader/execution/transpose.bin": "a4fed513", + "webgpu/shader/execution/trunc.bin": "9017e528", + "webgpu/shader/execution/unpack2x16float.bin": "ec98d914", + "webgpu/shader/execution/unpack2x16snorm.bin": "a830e40e", + "webgpu/shader/execution/unpack2x16unorm.bin": "ad12839", + "webgpu/shader/execution/unpack4x8snorm.bin": "2313f18a", + "webgpu/shader/execution/unpack4x8unorm.bin": "42a3a55f", + "webgpu/shader/execution/unary/af_arithmetic.bin": "96b3c6cd", + "webgpu/shader/execution/unary/af_assignment.bin": "d57b4a12", + "webgpu/shader/execution/unary/bool_conversion.bin": "82a9a2b3", + "webgpu/shader/execution/unary/f16_arithmetic.bin": "af2058d6", + "webgpu/shader/execution/unary/f16_conversion.bin": "f506caaf", + "webgpu/shader/execution/unary/f32_arithmetic.bin": "12031f63", + "webgpu/shader/execution/unary/f32_conversion.bin": "6ecbbe5b", + "webgpu/shader/execution/unary/i32_arithmetic.bin": "b7af3db9", + "webgpu/shader/execution/unary/i32_complement.bin": "10b546c7", + "webgpu/shader/execution/unary/i32_conversion.bin": "dc30bd80", + "webgpu/shader/execution/unary/u32_complement.bin": "ee0256a4", + "webgpu/shader/execution/unary/u32_conversion.bin": "c57cea18" } \ No newline at end of file diff --git a/src/resources/cache/webgpu/shader/execution/abs.bin b/src/resources/cache/webgpu/shader/execution/abs.bin index 17e2229752b14d040a9312dac710ee2c91d0e631..8a7de730cc972cfc85a8a01cf84b3f8988a1eada 100644 GIT binary patch delta 19 XcmX>uaa@8+zMF#q47fIO+42AYERX|< delta 19 XcmX>uaa@8+zMF#q445}^+42AYENugV diff --git a/src/resources/cache/webgpu/shader/execution/acos.bin b/src/resources/cache/webgpu/shader/execution/acos.bin index a18c5a808b67301716c7a42b53440abe501a3276..9782c52757a2d3eced660fd918e038fbfcdbecdf 100644 GIT binary patch delta 19 XcmaDY{aTt!zMF#q47fIOJ>&%dGfxD3 delta 19 XcmaDY{aTt!zMF#q445}^J>&%dGb{vk diff --git a/src/resources/cache/webgpu/shader/execution/acosh.bin b/src/resources/cache/webgpu/shader/execution/acosh.bin index a265710f2f03478124c578e632617524694fed47..06827ec5bb629c6a872b28087a45caec8fc2bc48 100644 GIT binary patch delta 19 XcmdlczfGP?zMF#q47fIOt>Fg%EBgcI delta 19 XcmdlczfGP?zMF#q445}^t>Fg%E7$|z diff --git a/src/resources/cache/webgpu/shader/execution/asin.bin b/src/resources/cache/webgpu/shader/execution/asin.bin index b4083247f2ec9df64d775df268dc9777541f7e20..54821e6ee25e3425b4c5e86558491cb7f1453c83 100644 GIT binary patch delta 19 Xcmca9b5n*(zMF#q47fIO`SSq)FUAAO delta 19 Xcmca9b5n*(zMF#q445}^`SSq)FQWs( diff --git a/src/resources/cache/webgpu/shader/execution/asinh.bin b/src/resources/cache/webgpu/shader/execution/asinh.bin index 620167622d34b1b1cb4bf91c00d389b7a77640c6..bb13f64a0bd2e275e8425086cb997772b14d28b8 100644 GIT binary patch delta 19 Xcmeyz^N)v1zMF#q47fIOm9PN-GaLjE delta 19 Xcmeyz^N)v1zMF#q445}^m9PN-GWi4v diff --git a/src/resources/cache/webgpu/shader/execution/atan.bin b/src/resources/cache/webgpu/shader/execution/atan.bin index 18de2e07afd89c7fb2e8b59892efb7bd3b3fc621..d5c3bf8cd04afd12809996fc25b79fb6544bc880 100644 GIT binary patch delta 19 XcmZ1|yik}+zMF#q47fIOP3HsvCqDy< delta 19 XcmZ1|yik}+zMF#q445}^P3HsvCmaKV diff --git a/src/resources/cache/webgpu/shader/execution/atan2.bin b/src/resources/cache/webgpu/shader/execution/atan2.bin index 0fca2d1ad0f6cb0080512696f97c00154ea16922..cbcfbf7c78197655fb1d550ebe603ed7a37770d0 100644 GIT binary patch delta 19 XcmeyS{7solzMF#q47fIOy%7WeHU$K+ delta 19 XcmeyS{7solzMF#q445}^y%7WeHR1%S diff --git a/src/resources/cache/webgpu/shader/execution/atanh.bin b/src/resources/cache/webgpu/shader/execution/atanh.bin index 2d037ed476643b1e07640f952eb0291ae8fa7271..9c690228f2b83c501efbbb55ce0a65184bd1d4e0 100644 GIT binary patch delta 19 XcmcaBbXSN=zMF#q47fIO1#_L diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_division.bin b/src/resources/cache/webgpu/shader/execution/binary/af_division.bin index d7967e87879cdd2c83d85712bc212f14cbdde8e0..d2d17bbab1250daddb8d9ba3bb870a647f1b9de5 100644 GIT binary patch delta 19 Xcmcbue_NkRzMF#q47fIOT@(iZGob{2 delta 19 Xcmcbue_NkRzMF#q445}^T@(iZGkyej diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_logical.bin b/src/resources/cache/webgpu/shader/execution/binary/af_logical.bin index da7a412aa50346a29e2bdaff86881281bd167540..a77850a98d942366e139341d98406c5392f9c7a7 100644 GIT binary patch delta 19 XcmZ3;v5?!`22ub3 delta 21 ZcmaEGlIg)oCNBAI4hAq_-pF-r2>?!j21@_{ diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_matrix_subtraction.bin b/src/resources/cache/webgpu/shader/execution/binary/af_matrix_subtraction.bin index cb19969f9202dcd1befaac2781e65035ee45aff1..a418a2f1d6dd084316f52755aa592f2469c66442 100644 GIT binary patch delta 21 Zcmdn+m}$dfCNBAI4hAsb+Q_wRBLGUm1_J;9 delta 21 Zcmdn+m}$dfCNBAI4hAq_-pI9VBLGUD1^fU2 diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/af_multiplication.bin index 35474be82ff2b081aa845ad6210a3592115403fb..1911d15759485301d58ffe70cf32cf4d74225624 100644 GIT binary patch delta 21 ZcmaFV!uY6#kxRatg8>YYfH*!Td0RTf(1mgez diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_remainder.bin b/src/resources/cache/webgpu/shader/execution/binary/af_remainder.bin index 3df87ee1a7b0e87f426dfce5ef0cd2e521c7422e..2b7ad02e6af43059360573161743861381fdfd09 100644 GIT binary patch delta 19 Xcmcbictep(zMF#q47fIOof7~6F-!zf delta 19 Xcmcbictep(zMF#q445}^of7~6F)0K~ diff --git a/src/resources/cache/webgpu/shader/execution/binary/af_subtraction.bin b/src/resources/cache/webgpu/shader/execution/binary/af_subtraction.bin index 61e6da6a4d8375b0147c693c103e378ef9f2054b..5ee03f47bac83fb12b8c4a9c28d3db48582c54cd 100644 GIT binary patch delta 19 XcmbPKGpUA4zMF#q47fIOao7O>GAsk+ delta 19 XcmbPKGpUA4zMF#q445}^ao7O>G6@6S diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_addition.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_addition.bin index 5542654a2240d7258b9beb7413ff01e48d6e36d7..54b0d81165b3380319f2be1d210d268782e18219 100644 GIT binary patch delta 19 Xcmdm0wyTUwzMF#q47fIO8CU}VH%$ah delta 19 Xcmdm0wyTUwzMF#q445}^8CU}VH!1{1 diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_division.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_division.bin index cb1a05e05437d59c07e7c87fd14148a497a84cf2..56f209c13eefe993c6370617ebcd433970c94eba 100644 GIT binary patch delta 19 XcmX?~dOnp)zMF#q47fIO9W?>~IUoe# delta 19 XcmX?~dOnp)zMF#q445}^9W?>~IQ<0L diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_logical.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_logical.bin index 5659be99762dd62766144aea08fee22491d2409c..72376b589ae8fbd92421bfe42a6dd54b645911bd 100644 GIT binary patch delta 19 Xcmdnav7LiUzMF#q47fIO>9PO-C9PO-C*=bw diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_addition.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_addition.bin index 2876edf54f52c6d600036c78b732c34b04c97929..91165360dd5351b409e851908e65a3a918f13b32 100644 GIT binary patch delta 21 ZcmX@IgXzc)CNBAI4hAsb+Q?-!2LMK@1yle4 delta 21 ZcmX@IgXzc)CNBAI4hAq_-pFM&2LMKg1x)|| diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin index 81342f521bf84bc3ae32ebae6a7469349d1d7ec7..138f0cbc5b433f60cdd4ccdb6d6919d44176c5f6 100644 GIT binary patch delta 27 fcmZqs!`1eOi%Y(ng8>Y<8o64z7`JjU{n-luYp@4& delta 27 fcmZqs!`1eOi%Y(ng8>Yf8@XD!7`JjU{n-luYhwp( diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin index dc2d43e235d5252434859fa85c72dd75155206f5..9f2b93b1db8996aa4c743204956bb366db9202cf 100644 GIT binary patch delta 24 ccmX>$gXP!^7B2a24hAsbYUJ9=#c0C=08vN<9smFU delta 24 ccmX>$gXP!^7B2a24hAq_Zsgj^#c0C=08tPH7XSbN diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_subtraction.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_subtraction.bin index a2d8ac6c072af206677575d33fb5cbdf48a1a3da..9e8d19991ffbb40f9adb175966274ee310941c0b 100644 GIT binary patch delta 21 ZcmX^5p6Td&CNBAI4hAsb+Q_wgI{;7N24DaH delta 21 ZcmX^5p6Td&CNBAI4hAq_-pI9kI{;6<23Y_A diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin index 2b8bbc058c640f17a147228f95fac924fb3fa826..205c10b2144468903b0496a17e3a303b4b7ad22e 100644 GIT binary patch delta 21 ZcmaF8k@@vTW-j?|4hAsb+Q{|r1^`V(26+Gg delta 21 ZcmaF8k@@vTW-j?|4hAq_-pKXv1^`VW266xZ diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_multiplication.bin index b834ed8acf2cc08b07ded954127b0bb222d4f2ed..f108e7b71bbf3f608e5e7488be1433c7b7961806 100644 GIT binary patch delta 19 WcmZp#ZLj5$@8)0t1Fnr+wRQk8tOP{> delta 19 WcmZp#ZLj5$@8)0t1LlofwRQk8i3C0X diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_remainder.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_remainder.bin index ef3e80fb2b80777329e52dcc4ad4c3e908005fff..5897ad72d9e8d23f96026af56bdc9ec4e98701d4 100644 GIT binary patch delta 19 XcmccMeZiYczMF#q47fIO9a9AWHN^y@ delta 19 XcmccMeZiYczMF#q445}^9a9AWHKGKZ diff --git a/src/resources/cache/webgpu/shader/execution/binary/f16_subtraction.bin b/src/resources/cache/webgpu/shader/execution/binary/f16_subtraction.bin index 10be022dbb529f1589bdecdc869de820b91fe65c..decd75bb980ad14657a704dea46dd2c2e288e16a 100644 GIT binary patch delta 19 Xcmcasajk+&zMF#q47fIO`PcveJGum> delta 19 Xcmcasajk+&zMF#q445}^`PcveJC_8X diff --git a/src/resources/cache/webgpu/shader/execution/binary/f32_addition.bin b/src/resources/cache/webgpu/shader/execution/binary/f32_addition.bin index e55501474584d3542d2a5e7307e2f933973548bd..25a86f5b8ae47a34b43c11373468efcccbe84ed9 100644 GIT binary patch delta 21 ZcmaFg&G^2XkxRatg8>YYfH*!671pr5H1)Bf> diff --git a/src/resources/cache/webgpu/shader/execution/binary/f32_division.bin b/src/resources/cache/webgpu/shader/execution/binary/f32_division.bin index 54333f2a6dfdd0177d5b8db2671ef375e04e982b..61a13f478db6116d4a8f4f58b7e76b249722532a 100644 GIT binary patch delta 19 XcmZ2lv9y9qzMF#q47fION!tJbG;{!Tkz0qK`!}j4hAsbYUFC=Vr=DNYUN_y%Ehw77XXZl2dMx6 delta 33 lcmX>!Tkz0qK`!}j4hAq_Zscm^Vr=DNYUN_y%Ehw77XXYD2ciG~ diff --git a/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin b/src/resources/cache/webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin index 90849e89f4a755b1edaf88e4d66bc951e7d052d8..5fcb388048148cb472eab0cf821986e7c86b5705 100644 GIT binary patch delta 24 ccmZ3noqff2b}spD4hAsbYUJ9=#W?Ra08>QYYfH*zVv0{}cu1YH0C diff --git a/src/resources/cache/webgpu/shader/execution/binary/i32_arithmetic.bin b/src/resources/cache/webgpu/shader/execution/binary/i32_arithmetic.bin index b1b925a9cb7ab91024a2a16ba7dc0dd7bed96b3a..a818bc6a87615eb2b637ea21afa0309848bcacce 100644 GIT binary patch delta 24 ccmaF5l>O;ab}spD4hAsbYUJ9=#d!M?09$DW;Q#;t delta 24 ccmaF5l>O;ab}spD4hAq_Zsgj^#d!M?09!Ez+5i9m diff --git a/src/resources/cache/webgpu/shader/execution/binary/i32_comparison.bin b/src/resources/cache/webgpu/shader/execution/binary/i32_comparison.bin index c14b31a89e5d1b4a7c385d1ac7208940f1ea985c..268ba181fbb432b43d130210aff69bccd105e40c 100644 GIT binary patch delta 19 XcmbQuGMj}_ delta 19 XcmbQuGMj}+-KzMF#q47et8y$1j-9Rx)H delta 18 Wcmey#_>+-KzMF#q445Z!y$1j-0R%n( diff --git a/src/resources/cache/webgpu/shader/execution/bitcast.bin b/src/resources/cache/webgpu/shader/execution/bitcast.bin index 1f171337d745563caebabb5ca5b065e5a5ca0d2e..84423d4a0f82f42fb68eb656780d525e36bf60f5 100644 GIT binary patch delta 30 icmcaSpa1fFelGcL4hAsbYUFC=Vr=DN+RDXz@;m^1`UlSd delta 30 icmcaSpa1fFelGcL4hAq_Zscm^Vr=DN+RDXz@;m^1mY<8o64z7+blRTDh3FaYf8@XD!7+blRTDh3FaneomZAzMF#q47fIO9pMH5E_VbQ delta 19 XcmX>neomZAzMF#q445}^9pMH5E>r{* diff --git a/src/resources/cache/webgpu/shader/execution/fma.bin b/src/resources/cache/webgpu/shader/execution/fma.bin index ee4d9b9eb14b5ef95b723cadc18a6d6b21dcaa8b..dd1d749f3290a987ff05595791f02c338c7448bc 100644 GIT binary patch delta 24 ccmey}$@;sKl}o;xg8>Y<8o9P|F@AIb09oG#SpWb4 delta 24 ccmey}$@;sKl}o;xg8>Yf8@aY}F@AIb09mI7QUCw| diff --git a/src/resources/cache/webgpu/shader/execution/fract.bin b/src/resources/cache/webgpu/shader/execution/fract.bin index 6e1bbfd23ba297949ed0354f994d964f931e02ca..5c5bc2634cb2bc6c4619617e837e4b0d94f955fb 100644 GIT binary patch delta 19 WcmeC>@8#!`@8)0t1Fnr+&Flapy#qu5 delta 19 WcmeC>@8#!`@8)0t1Llof&Flapngcxm diff --git a/src/resources/cache/webgpu/shader/execution/frexp.bin b/src/resources/cache/webgpu/shader/execution/frexp.bin index c4b8abad73bc725b412fc6899fef52aeb88c758a..01b2e4994823cdd73029a912b3d50c40385b0767 100644 GIT binary patch delta 19 Xcmexo`OlI|zMF#q47fIOeUSkGIxGbM delta 19 Xcmexo`OlI|zMF#q445}^eUSkGItc{% diff --git a/src/resources/cache/webgpu/shader/execution/inverseSqrt.bin b/src/resources/cache/webgpu/shader/execution/inverseSqrt.bin index 2e757f360fa83def9b92d4bb0dc867c967706fc7..ffca9fbab154ff1f7dfc7017d17779b6f68e0e07 100644 GIT binary patch delta 21 ZcmX>-lkxOSMlSho4hAsb+Q@a#2LMCc1z7+9 delta 21 ZcmX>-lkxOSMlSho4hAq_-pF;(2LMC31yTS2 diff --git a/src/resources/cache/webgpu/shader/execution/ldexp.bin b/src/resources/cache/webgpu/shader/execution/ldexp.bin index 2aa23b335dce069794ad0b6f3c416c1a5b43b3b0..30955edef888ecde1c6d35c3491b499c68d21796 100644 GIT binary patch delta 19 XcmaDN@kD}4zMF#q47fIOMezUtFx~^; delta 19 XcmaDN@kD}4zMF#q445}^MezUtFuMcU diff --git a/src/resources/cache/webgpu/shader/execution/length.bin b/src/resources/cache/webgpu/shader/execution/length.bin index 4e30ab9100fb3601e2d77c244956f781fdeb244a..360000f141d9d589e8a47d552cfae907f1d77f81 100644 GIT binary patch delta 19 WcmeBI>Q~~D@8)0t1Fnr+tbza~nF9I% delta 19 WcmeBI>Q~~D@8)0t1Lloftbza~b^`MN diff --git a/src/resources/cache/webgpu/shader/execution/log.bin b/src/resources/cache/webgpu/shader/execution/log.bin index be7b1a07b90ed61b02ddcd92cdcf8e1366d11dd1..4b9514a84c3cc01938f9dbaf0159d12fb787b7b6 100644 GIT binary patch delta 21 Zcmca|it)-RMlSho4hAsb+Q{XV3II!b1#bWV delta 21 Zcmca|it)-RMlSho4hAq_-pJ*Z3II!21!w>O diff --git a/src/resources/cache/webgpu/shader/execution/log2.bin b/src/resources/cache/webgpu/shader/execution/log2.bin index b2c4a26a41ac25eacdcfbdcb31b4310297ff9a08..942c173b5455186194fd681934ae157e5358c442 100644 GIT binary patch delta 21 ZcmZ2;igC>;MlSho4hAsb+Q_Ap3IIhC1or>{ delta 21 ZcmZ2;igC>;MlSho4hAq_-pHkt3IIg!1n>X= diff --git a/src/resources/cache/webgpu/shader/execution/max.bin b/src/resources/cache/webgpu/shader/execution/max.bin index d88e859e32d12250b972a0faf4c347c3159618b8..07c43e63ad4603b9378e0223984042420b944bd0 100644 GIT binary patch delta 27 fcmdn{iF5BKPA>Uw4hAsbYUFC=V%*BbWLyaVa<&G) delta 27 fcmdn{iF5BKPA>Uw4hAq_Zscm^V%*BbWLyaVa%l#* diff --git a/src/resources/cache/webgpu/shader/execution/min.bin b/src/resources/cache/webgpu/shader/execution/min.bin index fa68f932f493fa0aab58d315b18c159c740f2db6..1dbefebc8eef48edf6ec088e8dc04c606bd1f160 100644 GIT binary patch delta 27 fcmdnUw4hAsbYUFC=V%*BbWK;Uw4hAq_Zscm^V%*BbWK;pF diff --git a/src/resources/cache/webgpu/shader/execution/pow.bin b/src/resources/cache/webgpu/shader/execution/pow.bin index c1ffbb0fa59b1c3795f976a2f9a3110333037327..a702265c435668058a67b98f80388cd3ff9b8f21 100644 GIT binary patch delta 27 fcmex#gX_}`E-v|Q4hAsbYUFC=V%*Bbl(7Z?c^3y? delta 27 fcmex#gX_}`E-v|Q4hAq_Zscm^V%*Bbl(7Z?c*+M@ diff --git a/src/resources/cache/webgpu/shader/execution/quantizeToF16.bin b/src/resources/cache/webgpu/shader/execution/quantizeToF16.bin index 0018c258c0db117a9555a051aa0ddd9a1c7159eb..9bd85005917bca2d483fd09f3756e28668336b67 100644 GIT binary patch delta 19 XcmZ3-yN;JjzMF#q47fIOEnx!yC|(1i delta 19 XcmZ3-yN;JjzMF#q445}^Enx!yC_4k2 diff --git a/src/resources/cache/webgpu/shader/execution/radians.bin b/src/resources/cache/webgpu/shader/execution/radians.bin index baa1cbcc8be89cae22e06858032a5d831d83ff35..d82c08aa74b7d0eba7c0aba9a4efecdd5ea01278 100644 GIT binary patch delta 19 XcmeyO_(hRRzMF#q47fIOy%GQbHFN}~ delta 19 XcmeyO_(hRRzMF#q445}^y%GQbHBkhg diff --git a/src/resources/cache/webgpu/shader/execution/reflect.bin b/src/resources/cache/webgpu/shader/execution/reflect.bin index dfa6e2dca169ecad15cbabf2452fe244e10ee37f..a5a3635dd86b3cbcaf16ed4e607753bffb3f5243 100644 GIT binary patch delta 21 ZcmZ3whjHm1MlSho4hAsb+Q=mx2LM6l1it_P delta 21 ZcmZ3whjHm1MlSho4hAq_-pC~#2LM6C1h@bI diff --git a/src/resources/cache/webgpu/shader/execution/refract.bin b/src/resources/cache/webgpu/shader/execution/refract.bin index 39a9a79e872f94ebf2fe27b0d872e1d9f8654fec..da3d481d2f3a8a316aabfea2871ad05c6059a387 100644 GIT binary patch delta 39 rcmezMT=Lg*NiO+r4hAsbYUFC=Vr=DNYUN^X>=fGhGCJ delta 19 XcmaDa{$89*zMF#q445}^J>>=fGdcu! diff --git a/src/resources/cache/webgpu/shader/execution/sign.bin b/src/resources/cache/webgpu/shader/execution/sign.bin index fee195390e79d18be1583ef580544fa562b91c6b..3e1ac5038758ff5a14548aae5f863588d7b53c8d 100644 GIT binary patch delta 19 Xcmca1azlhmzMF#q47fIO`EdaNE{p@R delta 19 Xcmca1azlhmzMF#q445}^`EdaNE@=a+ diff --git a/src/resources/cache/webgpu/shader/execution/sin.bin b/src/resources/cache/webgpu/shader/execution/sin.bin index 2c74717a43193bb8e11de2ce94cc91464e767480..0d4c3d59dfcaacea84d3b939ad33cb7bb099eebc 100644 GIT binary patch delta 19 XcmZ24yYFDu delta 21 ZcmZp_#MFL?iA%nlg8>YfH*)=50RTdf1=aun diff --git a/src/resources/cache/webgpu/shader/execution/sqrt.bin b/src/resources/cache/webgpu/shader/execution/sqrt.bin index 6778436fc63a4fc9722f5485750b3b0ed6797c73..65a054f4a7973e8e9d12256a5f8fbbb9f9e5f8b4 100644 GIT binary patch delta 19 WcmZqRZ{X*W@8)0t1Fnr+W$XYU&jTF* delta 19 WcmZqRZ{X*W@8)0t1LlofW$XYUtOFJR diff --git a/src/resources/cache/webgpu/shader/execution/step.bin b/src/resources/cache/webgpu/shader/execution/step.bin index 783bb91cf9ec982c0f78c28dc2798ebcc322fcb9..ea29dc940690c20a35690ee2ecc1b8cb601b680c 100644 GIT binary patch delta 24 ccmZ3#if#QWHZJ*Y4hAsbYUJ9=#i%+J08sD+iU0rr delta 24 ccmZ3#if#QWHZJ*Y4hAq_Zsgj^#i%+J08qFEg8%>k diff --git a/src/resources/cache/webgpu/shader/execution/tan.bin b/src/resources/cache/webgpu/shader/execution/tan.bin index 937d7e78883f0933c2b105e4bc0072ecfe88b343..09c6c6802e683afdef2174db259ac0c3b4beaa80 100644 GIT binary patch delta 19 WcmeB^>677-@8)0t1Fnr+EPMbYqyp#w delta 19 WcmeB^>677-@8)0t1LlofEPMbYfdb(G diff --git a/src/resources/cache/webgpu/shader/execution/tanh.bin b/src/resources/cache/webgpu/shader/execution/tanh.bin index 3c180bcba4b813fc30b73e009911b6b1cf45c4a9..44d320ace23ad3b1658ce7e2621ff7103a7c65fc 100644 GIT binary patch delta 19 WcmZqSY2o3L@8)0t1Fnr+zgPhx{{x`_ delta 19 WcmZqSY2o3L@8)0t1LlofzgPhx+yj~b diff --git a/src/resources/cache/webgpu/shader/execution/transpose.bin b/src/resources/cache/webgpu/shader/execution/transpose.bin index 76590b2836a9a2b9ae8156ccf067c24832a03a37..6a58c7c768e30eb964b6403f6e07420e89f82280 100644 GIT binary patch delta 19 XcmaFw_1=q1zMF#q47fIOrK$n|IXwh^ delta 19 XcmaFw_1=q1zMF#q445}^rK$n|IT{3a diff --git a/src/resources/cache/webgpu/shader/execution/trunc.bin b/src/resources/cache/webgpu/shader/execution/trunc.bin index 2b49373ba0788a422d90ef5b36e00a1e7b1e31bc..f03b0f3db248cb81208067441bfe52a0464cc62a 100644 GIT binary patch delta 19 WcmZn=YY^j-@8)0t1Fnr+-?#uHzyq!T delta 19 WcmZn=YY^j-@8)0t1Llof-?#uHodc%; diff --git a/src/resources/cache/webgpu/shader/execution/unary/af_arithmetic.bin b/src/resources/cache/webgpu/shader/execution/unary/af_arithmetic.bin index fc5bf8dc2fd7eaebf1196f552870be1ef5a63f38..e0e6bf535726de5daeef970880d225998ebe4fc1 100644 GIT binary patch delta 19 XcmX@FeO{YOzMF#q47fIO9Tf!tF;4_g delta 19 XcmX@FeO{YOzMF#q445}^9Tf!tF)Rd0 diff --git a/src/resources/cache/webgpu/shader/execution/unary/af_assignment.bin b/src/resources/cache/webgpu/shader/execution/unary/af_assignment.bin index 4fca4df4de8203c9e8368365013be0d42be46e56..0bf18ce61b517e2e1c9d417641565ea1979762e0 100644 GIT binary patch delta 19 XcmbOwGE0O@zMF#q47fIO32*@bC0GLZ delta 19 XcmbOwGE0O@zMF#q445}^32*@bB{c%^ diff --git a/src/resources/cache/webgpu/shader/execution/unary/bool_conversion.bin b/src/resources/cache/webgpu/shader/execution/unary/bool_conversion.bin index bf0d864abcbe905955725acd5b5fd6f622765192..af224bf8466204b2c633ee9785efda7faba7039a 100644 GIT binary patch delta 19 XcmdnQw~3ESzMF#q47fIOX|MwTC>aAW delta 19 XcmdnQw~3ESzMF#q445}^X|MwTC-ws> diff --git a/src/resources/cache/webgpu/shader/execution/unary/f16_arithmetic.bin b/src/resources/cache/webgpu/shader/execution/unary/f16_arithmetic.bin index 5603e4b1f70ae28f7c0c0222f96ac6d8b7ab8ee9..e6c1ff36df6aec2ece8ebbd306302d69373af8d9 100644 GIT binary patch delta 19 XcmaDN_e73MzMF#q47fIOMezdwF|7md delta 19 XcmaDN_e73MzMF#q445}^MezdwF^U7| diff --git a/src/resources/cache/webgpu/shader/execution/unary/f16_conversion.bin b/src/resources/cache/webgpu/shader/execution/unary/f16_conversion.bin index 9f6c86c14880cdce24a5f28c8ecd509d8c3373b9..1084364c058a5a3cba58bf6a0fc37f38d5259225 100644 GIT binary patch delta 19 XcmbPgKh>T~zMF#q47fIOb;|<)D`f-J delta 19 XcmbPgKh>T~zMF#q445}^b;|<)D?$U! diff --git a/src/resources/cache/webgpu/shader/execution/unary/f32_arithmetic.bin b/src/resources/cache/webgpu/shader/execution/unary/f32_arithmetic.bin index 10d979f8d4651aed08f061e8dd9943cb45e515ae..d6b2b474df205cdf1eea804048e0fee429d8ae9e 100644 GIT binary patch delta 19 Xcmdm^wnvRizMF#q47fIO83_XbEYSmt delta 19 Xcmdm^wnvRizMF#q445}^83_XbEUp8D diff --git a/src/resources/cache/webgpu/shader/execution/unary/f32_conversion.bin b/src/resources/cache/webgpu/shader/execution/unary/f32_conversion.bin index 0511d67c357abe5dc4c7968a88089e39280c456c..aea129471e86c9d755c425320a000d54554b3fce 100644 GIT binary patch delta 19 XcmcZ~bU%nozMF#q47fIOg=zu-H}M2w delta 19 XcmcZ~bU%nozMF#q445}^g=zu-H_ilG diff --git a/src/resources/cache/webgpu/shader/execution/unary/i32_arithmetic.bin b/src/resources/cache/webgpu/shader/execution/unary/i32_arithmetic.bin index a7c3688700a40cd11d93a05e070df3fd34144041..7b08a4b003cae7a5bee045fcea80702a9e43ecca 100644 GIT binary patch delta 19 XcmZ3>zLuR!zMF#q47fIOEoKG)Cuswa delta 19 XcmZ3>zLuR!zMF#q445}^EoKG)Cq@H_ diff --git a/src/resources/cache/webgpu/shader/execution/unary/i32_complement.bin b/src/resources/cache/webgpu/shader/execution/unary/i32_complement.bin index 1163ab7347c32d9b47aa8f066c293f14f98770a1..1425bf7a1cf37c49a0b43c304f699559891a024e 100644 GIT binary patch delta 19 XcmdnazMY**zMF#q47fIOtz`xPDCGmL delta 19 XcmdnazMY**zMF#q445}^tz`xPD8d7$ diff --git a/src/resources/cache/webgpu/shader/execution/unary/i32_conversion.bin b/src/resources/cache/webgpu/shader/execution/unary/i32_conversion.bin index f3c700f1148c92221f14b36007d92107862314c1..0dd269a0ad0ccb505134ebdcd83dbda73c3a43c2 100644 GIT binary patch delta 19 XcmX>oa8Q6tzMF#q47fIOnR5UDDwqRf delta 19 XcmX>oa8Q6tzMF#q445}^nR5UDDs=-~ diff --git a/src/resources/cache/webgpu/shader/execution/unary/u32_complement.bin b/src/resources/cache/webgpu/shader/execution/unary/u32_complement.bin index 778a8c9d5a818b16da6fd6bffc9963ee81b7c7ab..a811884889b2a0ef147527a8379391d631bd2598 100644 GIT binary patch delta 19 XcmX@ha+ZZlzMF#q47fIOIWqwOD#8P4 delta 19 XcmX@ha+ZZlzMF#q445}^IWqwODxU*l diff --git a/src/resources/cache/webgpu/shader/execution/unary/u32_conversion.bin b/src/resources/cache/webgpu/shader/execution/unary/u32_conversion.bin index f6668b3f96939a6f550953c92b93dafa0c30f80d..05e3a8d20e12b5d9ffa105d2c5ba19325fe4118c 100644 GIT binary patch delta 19 XcmX>la7utnzMF#q47fIOIdA{~EA9h+ delta 19 XcmX>la7utnzMF#q445}^IdA{~E6W3S diff --git a/src/resources/cache/webgpu/shader/execution/unpack2x16float.bin b/src/resources/cache/webgpu/shader/execution/unpack2x16float.bin index 869f74f9b42c973e999f398f2f157cc30525438b..79d46db2865bd2b0dc18f67024063f5c7d6f67c3 100644 GIT binary patch delta 19 WcmZo+Z(-+>@8)0t1Fnr+Rm=b(Qv($M delta 19 WcmZo+Z(-+>@8)0t1LlofRm=b(Far(% diff --git a/src/resources/cache/webgpu/shader/execution/unpack2x16snorm.bin b/src/resources/cache/webgpu/shader/execution/unpack2x16snorm.bin index ada02252247f6e4899767083a72624baa1906fef..7b9d1fa48338f603ce15253f7ebf23511eff9687 100644 GIT binary patch delta 19 XcmaFK@sfi}zMF#q47fIO#j^kaFLVRP delta 19 XcmaFK@sfi}zMF#q445}^#j^kaFHr-) diff --git a/src/resources/cache/webgpu/shader/execution/unpack2x16unorm.bin b/src/resources/cache/webgpu/shader/execution/unpack2x16unorm.bin index 95de6e1222a79764c78099ce3f858a39cf54edea..6e5f8886e345a2464862d34dd11d44361196bce6 100644 GIT binary patch delta 19 Xcmcb~ag&2fzMF#q47fIO`Lh53EffQn delta 19 Xcmcb~ag&2fzMF#q445}^`Lh53Eb#-7 diff --git a/src/resources/cache/webgpu/shader/execution/unpack4x8snorm.bin b/src/resources/cache/webgpu/shader/execution/unpack4x8snorm.bin index 3e3eceae1320c84cc21b98f3419767121f67ebb8..4173ffc3498c8349ef2a99fbe28afb96f5891c5b 100644 GIT binary patch delta 19 Xcmey#{gazZzMF#q47fIOy=MggGdl!+ delta 19 Xcmey#{gazZzMF#q445}^y=MggGZ+MS diff --git a/src/resources/cache/webgpu/shader/execution/unpack4x8unorm.bin b/src/resources/cache/webgpu/shader/execution/unpack4x8unorm.bin index 84fb6cb077d9952253126334f1c24b1bb25a4b5a..c4f4513015d5711c81aa6f1ecc308dc192ab2c35 100644 GIT binary patch delta 19 Xcmey){hgajzMF#q47fIOy=4UeGVcU< delta 19 Xcmey){hgajzMF#q445}^y=4UeGRy>V diff --git a/src/webgpu/api/validation/createBindGroupLayout.spec.ts b/src/webgpu/api/validation/createBindGroupLayout.spec.ts index a50247aa13e7..0db9f438763b 100644 --- a/src/webgpu/api/validation/createBindGroupLayout.spec.ts +++ b/src/webgpu/api/validation/createBindGroupLayout.spec.ts @@ -163,8 +163,10 @@ g.test('visibility,VERTEX_shader_stage_storage_texture_access') .fn(t => { const { shaderStage, access } = t.params; + const appliedAccess = access ?? 'write-only'; const success = !( - (access ?? 'write-only') === 'write-only' && shaderStage & GPUShaderStage.VERTEX + // If visibility includes VERETX, storageTexture.access must be "read-only" + (shaderStage & GPUShaderStage.VERTEX && appliedAccess !== 'read-only') ); t.expectValidationError(() => { @@ -173,7 +175,7 @@ g.test('visibility,VERTEX_shader_stage_storage_texture_access') { binding: 0, visibility: shaderStage, - storageTexture: { access, format: 'rgba8unorm' }, + storageTexture: { access, format: 'r32uint' }, }, ], }); @@ -436,29 +438,35 @@ g.test('storage_texture,layout_dimension') g.test('storage_texture,formats') .desc( ` - Test that a validation error is generated if the format doesn't support the storage usage. + Test that a validation error is generated if the format doesn't support the storage usage. A + validation error is also generated if the format doesn't support the 'read-write' storage access + when the storage access is 'read-write'. ` ) - .params(u => u.combine('format', kAllTextureFormats)) + .params(u => + u // + .combine('format', kAllTextureFormats) // + .combine('access', kStorageTextureAccessValues) + ) .beforeAllSubcases(t => { t.selectDeviceForTextureFormatOrSkipTestCase(t.params.format); }) .fn(t => { - const { format } = t.params; + const { format, access } = t.params; const info = kTextureFormatInfo[format]; - t.expectValidationError( - () => { - t.device.createBindGroupLayout({ - entries: [ - { - binding: 0, - visibility: GPUShaderStage.COMPUTE, - storageTexture: { format }, - }, - ], - }); - }, - !info.color?.storage - ); + const success = + info.color?.storage && !(access === 'read-write' && !info.color?.readWriteStorage); + + t.expectValidationError(() => { + t.device.createBindGroupLayout({ + entries: [ + { + binding: 0, + visibility: GPUShaderStage.COMPUTE, + storageTexture: { format, access }, + }, + ], + }); + }, !success); }); diff --git a/src/webgpu/capability_info.ts b/src/webgpu/capability_info.ts index e7d0bbe90306..933e7be916b3 100644 --- a/src/webgpu/capability_info.ts +++ b/src/webgpu/capability_info.ts @@ -490,7 +490,7 @@ export function storageTextureBindingTypeInfo(d: GPUStorageTextureBindingLayout) }; } /** List of all GPUStorageTextureAccess values. */ -export const kStorageTextureAccessValues = ['write-only'] as const; +export const kStorageTextureAccessValues = ['read-only', 'read-write', 'write-only'] as const; assertTypeTrue>(); /** GPUBindGroupLayoutEntry, but only the "union" fields, not the common fields. */ diff --git a/src/webgpu/format_info.ts b/src/webgpu/format_info.ts index 55bbfad55c20..3fd2f0b3fc82 100644 --- a/src/webgpu/format_info.ts +++ b/src/webgpu/format_info.ts @@ -72,7 +72,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ // plain, 8 bits per component r8unorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, colorRender: { blend: true, resolve: true, byteCost: 1, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -82,13 +89,27 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r8snorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, multisample: false, /*prettier-ignore*/ get sampleType() { return this.color.type; }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r8uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, colorRender: { blend: false, resolve: false, byteCost: 1, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -98,7 +119,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r8sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, colorRender: { blend: false, resolve: false, byteCost: 1, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -109,7 +137,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rg8unorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: true, resolve: true, byteCost: 2, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -119,13 +154,27 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg8snorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, multisample: false, /*prettier-ignore*/ get sampleType() { return this.color.type; }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg8uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: false, resolve: false, byteCost: 2, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -135,7 +184,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg8sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: false, resolve: false, byteCost: 2, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -146,7 +202,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rgba8unorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -157,7 +220,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'rgba8unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -168,13 +238,27 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba8snorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 4, + }, multisample: false, /*prettier-ignore*/ get sampleType() { return this.color.type; }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba8uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -184,7 +268,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba8sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -194,7 +285,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, bgra8unorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -205,7 +303,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bgra8unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 1 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -219,7 +324,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ // plain, 16 bits per component r16uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: false, resolve: false, byteCost: 2, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -229,7 +341,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r16sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: false, resolve: false, byteCost: 2, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -239,7 +358,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r16float: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, colorRender: { blend: true, resolve: true, byteCost: 2, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -250,7 +376,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rg16uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -260,7 +393,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg16sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -270,7 +410,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg16float: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 4, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -281,7 +428,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rgba16uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -291,7 +445,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba16sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -301,7 +462,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba16float: { - color: { type: 'float', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 2 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -314,7 +482,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ // plain, 32 bits per component r32uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: true, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -324,7 +499,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r32sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: true, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -334,7 +516,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, r32float: { - color: { type: 'unfilterable-float', copySrc: true, copyDst: true, storage: true, bytes: 4 }, + color: { + type: 'unfilterable-float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: true, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 4, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -345,7 +534,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rg32uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -355,7 +551,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg32sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -365,7 +568,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg32float: { - color: { type: 'unfilterable-float', copySrc: true, copyDst: true, storage: true, bytes: 8 }, + color: { + type: 'unfilterable-float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 8, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -376,7 +586,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ }, rgba32uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: true, bytes: 16 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 16, + }, colorRender: { blend: false, resolve: false, byteCost: 16, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -386,7 +603,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba32sint: { - color: { type: 'sint', copySrc: true, copyDst: true, storage: true, bytes: 16 }, + color: { + type: 'sint', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 16, + }, colorRender: { blend: false, resolve: false, byteCost: 16, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -396,7 +620,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgba32float: { - color: { type: 'unfilterable-float', copySrc: true, copyDst: true, storage: true, bytes: 16 }, + color: { + type: 'unfilterable-float', + copySrc: true, + copyDst: true, + storage: true, + readWriteStorage: false, + bytes: 16, + }, colorRender: { blend: false, resolve: false, byteCost: 16, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -409,7 +640,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ // plain, mixed component width, 32 bits per texel rgb10a2uint: { - color: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: false, resolve: false, byteCost: 8, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -419,7 +657,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rgb10a2unorm: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, colorRender: { blend: true, resolve: true, byteCost: 8, alignment: 4 }, renderable: true, /*prettier-ignore*/ get renderTargetComponentAlignment() { return this.colorRender.alignment; }, @@ -429,7 +674,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, rg11b10ufloat: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, multisample: false, /*prettier-ignore*/ get sampleType() { return this.color.type; }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, @@ -440,7 +692,14 @@ const kRegularTextureFormatInfo = formatTableWithDefaults({ // packed rgb9e5ufloat: { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 4 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 4, + }, multisample: false, /*prettier-ignore*/ get sampleType() { return this.color.type; }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, @@ -455,19 +714,40 @@ const kSizedDepthStencilFormatInfo = formatTableWithDefaults({ defaults: { blockWidth: 1, blockHeight: 1, multisample: true, copySrc: true, renderable: true }, table: { stencil8: { - stencil: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + stencil: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, sampleType: 'uint', copyDst: true, bytesPerBlock: 1, }, depth16unorm: { - depth: { type: 'depth', copySrc: true, copyDst: true, storage: false, bytes: 2 }, + depth: { + type: 'depth', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 2, + }, sampleType: 'depth', copyDst: true, bytesPerBlock: 2, }, depth32float: { - depth: { type: 'depth', copySrc: true, copyDst: false, storage: false, bytes: 4 }, + depth: { + type: 'depth', + copySrc: true, + copyDst: false, + storage: false, + readWriteStorage: false, + bytes: 4, + }, sampleType: 'depth', copyDst: false, bytesPerBlock: 4, @@ -478,23 +758,58 @@ const kUnsizedDepthStencilFormatInfo = formatTableWithDefaults({ defaults: { blockWidth: 1, blockHeight: 1, multisample: true }, table: { depth24plus: { - depth: { type: 'depth', copySrc: false, copyDst: false, storage: false, bytes: undefined }, + depth: { + type: 'depth', + copySrc: false, + copyDst: false, + storage: false, + readWriteStorage: false, + bytes: undefined, + }, copySrc: false, copyDst: false, sampleType: 'depth', renderable: true, }, 'depth24plus-stencil8': { - depth: { type: 'depth', copySrc: false, copyDst: false, storage: false, bytes: undefined }, - stencil: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + depth: { + type: 'depth', + copySrc: false, + copyDst: false, + storage: false, + readWriteStorage: false, + bytes: undefined, + }, + stencil: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, copySrc: false, copyDst: false, sampleType: 'depth', renderable: true, }, 'depth32float-stencil8': { - depth: { type: 'depth', copySrc: true, copyDst: false, storage: false, bytes: 4 }, - stencil: { type: 'uint', copySrc: true, copyDst: true, storage: false, bytes: 1 }, + depth: { + type: 'depth', + copySrc: true, + copyDst: false, + storage: false, + readWriteStorage: false, + bytes: 4, + }, + stencil: { + type: 'uint', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 1, + }, feature: 'depth32float-stencil8', copySrc: false, copyDst: false, @@ -516,72 +831,170 @@ const kBCTextureFormatInfo = formatTableWithDefaults({ }, table: { 'bc1-rgba-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'bc1-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc1-rgba-unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'bc1-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc2-rgba-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc2-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc2-rgba-unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc2-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc3-rgba-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc3-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc3-rgba-unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc3-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc4-r-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc4-r-snorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc5-rg-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc5-rg-snorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc6h-rgb-ufloat': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc6h-rgb-float': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc7-rgba-unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc7-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'bc7-rgba-unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'bc7-rgba-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -600,53 +1013,123 @@ const kETC2TextureFormatInfo = formatTableWithDefaults({ }, table: { 'etc2-rgb8unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'etc2-rgb8unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'etc2-rgb8unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'etc2-rgb8unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'etc2-rgb8a1unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'etc2-rgb8a1unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'etc2-rgb8a1unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, baseFormat: 'etc2-rgb8a1unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'etc2-rgba8unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'etc2-rgba8unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'etc2-rgba8unorm-srgb': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'etc2-rgba8unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'eac-r11unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'eac-r11snorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 8 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 8, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'eac-rg11unorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'eac-rg11snorm': { - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, }, @@ -664,14 +1147,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-4x4-unorm': { blockWidth: 4, blockHeight: 4, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-4x4-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-4x4-unorm-srgb': { blockWidth: 4, blockHeight: 4, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-4x4-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -679,14 +1176,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-5x4-unorm': { blockWidth: 5, blockHeight: 4, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-5x4-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-5x4-unorm-srgb': { blockWidth: 5, blockHeight: 4, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-5x4-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -694,14 +1205,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-5x5-unorm': { blockWidth: 5, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-5x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-5x5-unorm-srgb': { blockWidth: 5, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-5x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -709,14 +1234,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-6x5-unorm': { blockWidth: 6, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-6x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-6x5-unorm-srgb': { blockWidth: 6, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-6x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -724,14 +1263,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-6x6-unorm': { blockWidth: 6, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-6x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-6x6-unorm-srgb': { blockWidth: 6, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-6x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -739,14 +1292,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-8x5-unorm': { blockWidth: 8, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-8x5-unorm-srgb': { blockWidth: 8, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -754,14 +1321,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-8x6-unorm': { blockWidth: 8, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-8x6-unorm-srgb': { blockWidth: 8, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -769,14 +1350,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-8x8-unorm': { blockWidth: 8, blockHeight: 8, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x8-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-8x8-unorm-srgb': { blockWidth: 8, blockHeight: 8, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-8x8-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -784,14 +1379,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-10x5-unorm': { blockWidth: 10, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-10x5-unorm-srgb': { blockWidth: 10, blockHeight: 5, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x5-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -799,14 +1408,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-10x6-unorm': { blockWidth: 10, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-10x6-unorm-srgb': { blockWidth: 10, blockHeight: 6, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x6-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -814,14 +1437,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-10x8-unorm': { blockWidth: 10, blockHeight: 8, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x8-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-10x8-unorm-srgb': { blockWidth: 10, blockHeight: 8, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x8-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -829,14 +1466,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-10x10-unorm': { blockWidth: 10, blockHeight: 10, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x10-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-10x10-unorm-srgb': { blockWidth: 10, blockHeight: 10, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-10x10-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -844,14 +1495,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-12x10-unorm': { blockWidth: 12, blockHeight: 10, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-12x10-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-12x10-unorm-srgb': { blockWidth: 12, blockHeight: 10, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-12x10-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -859,14 +1524,28 @@ const kASTCTextureFormatInfo = formatTableWithDefaults({ 'astc-12x12-unorm': { blockWidth: 12, blockHeight: 12, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-12x12-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, 'astc-12x12-unorm-srgb': { blockWidth: 12, blockHeight: 12, - color: { type: 'float', copySrc: true, copyDst: true, storage: false, bytes: 16 }, + color: { + type: 'float', + copySrc: true, + copyDst: true, + storage: false, + readWriteStorage: false, + bytes: 16, + }, baseFormat: 'astc-12x12-unorm', /*prettier-ignore*/ get bytesPerBlock() { return this.color.bytes; }, }, @@ -937,6 +1616,8 @@ interface TextureFormatAspectInfo { copyDst: boolean; /** Whether the aspect can be used as `STORAGE`. */ storage: boolean; + /** Whether the aspect can be used as `STORAGE` with `read-write` storage texture access. */ + readWriteStorage: boolean; /** The "texel block copy footprint" of one texel block; `undefined` if the aspect is unsized. */ bytes: number | undefined; }