[WHLSL] Rewrite all tests to use WHLSL and delete the isWHLSL flag
authormmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Aug 2019 04:58:11 +0000 (04:58 +0000)
committermmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 27 Aug 2019 04:58:11 +0000 (04:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201162

Reviewed by Saam Barati.

Source/WebCore:

We want to keep the MSL codepath for debugging, so the codepath isn't deleted entirely, but it is no longer web exposed.

* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createShaderModule const):
* Modules/webgpu/WebGPUShaderModuleDescriptor.h:
* Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
* platform/graphics/gpu/GPUDevice.h:
* platform/graphics/gpu/GPUShaderModuleDescriptor.h:
* platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:
(WebCore::GPUShaderModule::tryCreate):

LayoutTests:

* webgpu/bind-groups.html:
* webgpu/blend-color-triangle-strip.html:
* webgpu/blend-triangle-strip.html:
* webgpu/buffer-command-buffer-races.html:
* webgpu/color-write-mask-triangle-strip.html:
* webgpu/compute-pipeline-errors.html:
* webgpu/depth-enabled-triangle-strip.html:
* webgpu/draw-indexed-triangles.html:
* webgpu/msl-harness-test-expected.txt: Removed.
* webgpu/msl-harness-test.html: Removed.
* webgpu/render-command-encoding.html:
* webgpu/render-pipeline-errors.html:
* webgpu/render-pipelines.html:
* webgpu/shader-modules.html:
* webgpu/simple-triangle-strip.html:
* webgpu/texture-triangle-strip.html:
* webgpu/vertex-buffer-triangle-strip.html:
* webgpu/viewport-scissor-rect-triangle-strip.html:
* webgpu/whlsl/arbitrary-vertex-attribute-locations.html:
* webgpu/whlsl/buffer-fragment.html:
* webgpu/whlsl/buffer-length.html:
* webgpu/whlsl/buffer-vertex.html:
* webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
* webgpu/whlsl/compute.html:
* webgpu/whlsl/dereference-pointer-should-type-check.html:
* webgpu/whlsl/device-proper-type-checker.html:
* webgpu/whlsl/do-while-loop-break.html:
* webgpu/whlsl/do-while-loop-continue.html:
* webgpu/whlsl/do-while-loop.html:
* webgpu/whlsl/dont-crash-parsing-enum.html:
* webgpu/whlsl/dot-expressions.html:
* webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
* webgpu/whlsl/ensure-proper-variable-lifetime-2.html:
* webgpu/whlsl/ensure-proper-variable-lifetime-3.html:
* webgpu/whlsl/ensure-proper-variable-lifetime.html:
* webgpu/whlsl/huge-array.html:
* webgpu/whlsl/js/test-harness.js:
(convertTypeToArrayType):
(Data):
(Harness):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype.callVoidFunction):
(Harness.prototype.async.checkCompileFail):
(Harness.prototype._setUpArguments):
(Harness.prototype.async._callFunction):
(Harness.prototype.set isWHLSL): Deleted.
(Harness.prototype.get isWHLSL): Deleted.
* webgpu/whlsl/loops-break.html:
* webgpu/whlsl/loops-continue.html:
* webgpu/whlsl/loops.html:
* webgpu/whlsl/make-array-reference.html:
* webgpu/whlsl/matrix-2.html:
* webgpu/whlsl/matrix-memory-layout.html:
* webgpu/whlsl/matrix.html:
* webgpu/whlsl/nested-dot-expression-rvalue.html:
* webgpu/whlsl/nested-loop.html:
* webgpu/whlsl/null-dereference.html:
* webgpu/whlsl/oob-access.html:
* webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html:
* webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html:
* webgpu/whlsl/propertyresolver/ander-lvalue.html:
* webgpu/whlsl/propertyresolver/ander.html:
* webgpu/whlsl/propertyresolver/getter.html:
* webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html:
* webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html:
* webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html:
* webgpu/whlsl/propertyresolver/indexer-ander.html:
* webgpu/whlsl/propertyresolver/indexer-getter.html:
* webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
* webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html:
* webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html:
* webgpu/whlsl/propertyresolver/indexer-setter.html:
* webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html:
* webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html:
* webgpu/whlsl/propertyresolver/setter-lvalue.html:
* webgpu/whlsl/read-modify-write-high-zombies.html:
* webgpu/whlsl/read-modify-write.html:
* webgpu/whlsl/return-local-variable.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
* webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
* webgpu/whlsl/simple-arrays.html:
* webgpu/whlsl/store-to-property-updates-properly.html:
* webgpu/whlsl/textures-getdimensions.html:
* webgpu/whlsl/textures-load.html:
* webgpu/whlsl/textures-sample.html:
* webgpu/whlsl/two-dimensional-array.html:
* webgpu/whlsl/use-undefined-variable-2.html:
* webgpu/whlsl/use-undefined-variable.html:
* webgpu/whlsl/while-loop-break.html:
* webgpu/whlsl/while-loop-continue.html:
* webgpu/whlsl/whlsl.html:
* webgpu/whlsl/zero-initialize-values-2.html:
* webgpu/whlsl/zero-initialize-values.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249131 268f45cc-cd09-0410-ab3c-d52691b4dbfc

116 files changed:
LayoutTests/ChangeLog
LayoutTests/webgpu/bind-groups.html
LayoutTests/webgpu/blend-color-triangle-strip.html
LayoutTests/webgpu/blend-triangle-strip.html
LayoutTests/webgpu/buffer-command-buffer-races.html
LayoutTests/webgpu/color-write-mask-triangle-strip.html
LayoutTests/webgpu/compute-pipeline-errors.html
LayoutTests/webgpu/depth-enabled-triangle-strip.html
LayoutTests/webgpu/draw-indexed-triangles.html
LayoutTests/webgpu/msl-harness-test-expected.txt [deleted file]
LayoutTests/webgpu/msl-harness-test.html [deleted file]
LayoutTests/webgpu/render-command-encoding.html
LayoutTests/webgpu/render-pipeline-errors.html
LayoutTests/webgpu/render-pipelines.html
LayoutTests/webgpu/shader-modules.html
LayoutTests/webgpu/simple-triangle-strip.html
LayoutTests/webgpu/texture-triangle-strip.html
LayoutTests/webgpu/vertex-buffer-triangle-strip.html
LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html
LayoutTests/webgpu/whlsl/arbitrary-vertex-attribute-locations.html
LayoutTests/webgpu/whlsl/buffer-fragment.html
LayoutTests/webgpu/whlsl/buffer-length.html
LayoutTests/webgpu/whlsl/buffer-vertex.html
LayoutTests/webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html
LayoutTests/webgpu/whlsl/compute.html
LayoutTests/webgpu/whlsl/dereference-pointer-should-type-check.html
LayoutTests/webgpu/whlsl/device-proper-type-checker.html
LayoutTests/webgpu/whlsl/do-while-loop-break.html
LayoutTests/webgpu/whlsl/do-while-loop-continue.html
LayoutTests/webgpu/whlsl/do-while-loop.html
LayoutTests/webgpu/whlsl/dont-crash-parsing-enum.html
LayoutTests/webgpu/whlsl/dot-expressions.html
LayoutTests/webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html
LayoutTests/webgpu/whlsl/ensure-proper-variable-lifetime-2.html
LayoutTests/webgpu/whlsl/ensure-proper-variable-lifetime-3.html
LayoutTests/webgpu/whlsl/ensure-proper-variable-lifetime.html
LayoutTests/webgpu/whlsl/huge-array.html
LayoutTests/webgpu/whlsl/js/test-harness.js
LayoutTests/webgpu/whlsl/loops-break.html
LayoutTests/webgpu/whlsl/loops-continue.html
LayoutTests/webgpu/whlsl/loops.html
LayoutTests/webgpu/whlsl/make-array-reference.html
LayoutTests/webgpu/whlsl/matrix-2.html
LayoutTests/webgpu/whlsl/matrix-memory-layout.html
LayoutTests/webgpu/whlsl/matrix.html
LayoutTests/webgpu/whlsl/nested-dot-expression-rvalue.html
LayoutTests/webgpu/whlsl/nested-loop.html
LayoutTests/webgpu/whlsl/null-dereference.html
LayoutTests/webgpu/whlsl/oob-access.html
LayoutTests/webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html
LayoutTests/webgpu/whlsl/propertyresolver/ander-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/ander.html
LayoutTests/webgpu/whlsl/propertyresolver/getter.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-ander.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-getter.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/indexer-setter.html
LayoutTests/webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html
LayoutTests/webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html
LayoutTests/webgpu/whlsl/propertyresolver/setter-lvalue.html
LayoutTests/webgpu/whlsl/read-modify-write-high-zombies.html
LayoutTests/webgpu/whlsl/read-modify-write.html
LayoutTests/webgpu/whlsl/return-local-variable.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html
LayoutTests/webgpu/whlsl/separate-shader-modules/separate-shader-modules.html
LayoutTests/webgpu/whlsl/simple-arrays.html
LayoutTests/webgpu/whlsl/store-to-property-updates-properly.html
LayoutTests/webgpu/whlsl/textures-getdimensions.html
LayoutTests/webgpu/whlsl/textures-load.html
LayoutTests/webgpu/whlsl/textures-sample.html
LayoutTests/webgpu/whlsl/two-dimensional-array.html
LayoutTests/webgpu/whlsl/use-undefined-variable-2.html
LayoutTests/webgpu/whlsl/use-undefined-variable.html
LayoutTests/webgpu/whlsl/while-loop-break.html
LayoutTests/webgpu/whlsl/while-loop-continue.html
LayoutTests/webgpu/whlsl/whlsl.html
LayoutTests/webgpu/whlsl/zero-initialize-values-2.html
LayoutTests/webgpu/whlsl/zero-initialize-values.html
Source/WebCore/ChangeLog
Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
Source/WebCore/Modules/webgpu/WebGPUShaderModuleDescriptor.h
Source/WebCore/Modules/webgpu/WebGPUShaderModuleDescriptor.idl
Source/WebCore/platform/graphics/gpu/GPUDevice.h
Source/WebCore/platform/graphics/gpu/GPUShaderModuleDescriptor.h
Source/WebCore/platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm

index 9428f30..04a9459 100644 (file)
@@ -1,3 +1,129 @@
+2019-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [WHLSL] Rewrite all tests to use WHLSL and delete the isWHLSL flag
+        https://bugs.webkit.org/show_bug.cgi?id=201162
+
+        Reviewed by Saam Barati.
+
+        * webgpu/bind-groups.html:
+        * webgpu/blend-color-triangle-strip.html:
+        * webgpu/blend-triangle-strip.html:
+        * webgpu/buffer-command-buffer-races.html:
+        * webgpu/color-write-mask-triangle-strip.html:
+        * webgpu/compute-pipeline-errors.html:
+        * webgpu/depth-enabled-triangle-strip.html:
+        * webgpu/draw-indexed-triangles.html:
+        * webgpu/msl-harness-test-expected.txt: Removed.
+        * webgpu/msl-harness-test.html: Removed.
+        * webgpu/render-command-encoding.html:
+        * webgpu/render-pipeline-errors.html:
+        * webgpu/render-pipelines.html:
+        * webgpu/shader-modules.html:
+        * webgpu/simple-triangle-strip.html:
+        * webgpu/texture-triangle-strip.html:
+        * webgpu/vertex-buffer-triangle-strip.html:
+        * webgpu/viewport-scissor-rect-triangle-strip.html:
+        * webgpu/whlsl/arbitrary-vertex-attribute-locations.html:
+        * webgpu/whlsl/buffer-fragment.html:
+        * webgpu/whlsl/buffer-length.html:
+        * webgpu/whlsl/buffer-vertex.html:
+        * webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
+        * webgpu/whlsl/compute.html:
+        * webgpu/whlsl/dereference-pointer-should-type-check.html:
+        * webgpu/whlsl/device-proper-type-checker.html:
+        * webgpu/whlsl/do-while-loop-break.html:
+        * webgpu/whlsl/do-while-loop-continue.html:
+        * webgpu/whlsl/do-while-loop.html:
+        * webgpu/whlsl/dont-crash-parsing-enum.html:
+        * webgpu/whlsl/dot-expressions.html:
+        * webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
+        * webgpu/whlsl/ensure-proper-variable-lifetime-2.html:
+        * webgpu/whlsl/ensure-proper-variable-lifetime-3.html:
+        * webgpu/whlsl/ensure-proper-variable-lifetime.html:
+        * webgpu/whlsl/huge-array.html:
+        * webgpu/whlsl/js/test-harness.js:
+        (convertTypeToArrayType):
+        (Data):
+        (Harness):
+        (Harness.prototype.async.callTypedFunction):
+        (Harness.prototype.callVoidFunction):
+        (Harness.prototype.async.checkCompileFail):
+        (Harness.prototype._setUpArguments):
+        (Harness.prototype.async._callFunction):
+        (Harness.prototype.set isWHLSL): Deleted.
+        (Harness.prototype.get isWHLSL): Deleted.
+        * webgpu/whlsl/loops-break.html:
+        * webgpu/whlsl/loops-continue.html:
+        * webgpu/whlsl/loops.html:
+        * webgpu/whlsl/make-array-reference.html:
+        * webgpu/whlsl/matrix-2.html:
+        * webgpu/whlsl/matrix-memory-layout.html:
+        * webgpu/whlsl/matrix.html:
+        * webgpu/whlsl/nested-dot-expression-rvalue.html:
+        * webgpu/whlsl/nested-loop.html:
+        * webgpu/whlsl/null-dereference.html:
+        * webgpu/whlsl/oob-access.html:
+        * webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html:
+        * webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html:
+        * webgpu/whlsl/propertyresolver/ander-lvalue.html:
+        * webgpu/whlsl/propertyresolver/ander.html:
+        * webgpu/whlsl/propertyresolver/getter.html:
+        * webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html:
+        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html:
+        * webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html:
+        * webgpu/whlsl/propertyresolver/indexer-ander.html:
+        * webgpu/whlsl/propertyresolver/indexer-getter.html:
+        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
+        * webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html:
+        * webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html:
+        * webgpu/whlsl/propertyresolver/indexer-setter.html:
+        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html:
+        * webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html:
+        * webgpu/whlsl/propertyresolver/setter-lvalue.html:
+        * webgpu/whlsl/read-modify-write-high-zombies.html:
+        * webgpu/whlsl/read-modify-write.html:
+        * webgpu/whlsl/return-local-variable.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
+        * webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
+        * webgpu/whlsl/simple-arrays.html:
+        * webgpu/whlsl/store-to-property-updates-properly.html:
+        * webgpu/whlsl/textures-getdimensions.html:
+        * webgpu/whlsl/textures-load.html:
+        * webgpu/whlsl/textures-sample.html:
+        * webgpu/whlsl/two-dimensional-array.html:
+        * webgpu/whlsl/use-undefined-variable-2.html:
+        * webgpu/whlsl/use-undefined-variable.html:
+        * webgpu/whlsl/while-loop-break.html:
+        * webgpu/whlsl/while-loop-continue.html:
+        * webgpu/whlsl/whlsl.html:
+        * webgpu/whlsl/zero-initialize-values-2.html:
+        * webgpu/whlsl/zero-initialize-values.html:
+
 2019-08-26  Devin Rousso  <drousso@apple.com>
 
         Unreviewed, fix test failure after r249127
index 083dbfb..19e3b25 100644 (file)
@@ -35,7 +35,7 @@ tests["Create and use a basic GPUBindGroup."] = async device => {
 
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
 
-    const basicShaderModule = device.createShaderModule({ code: basicBufferShader, isWHLSL: true });
+    const basicShaderModule = device.createShaderModule({ code: basicBufferShader });
     basicPipeline = device.createComputePipeline({
         layout: pipelineLayout,
         computeStage: {
@@ -139,7 +139,7 @@ tests["Create and access a uniform-buffer in a GPUBindGroup."] = async device =>
 
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
 
-    const shaderModule = device.createShaderModule({ code: uniformBufferShader, isWHLSL: true });
+    const shaderModule = device.createShaderModule({ code: uniformBufferShader });
 
     const pipeline = device.createComputePipeline({
         layout: pipelineLayout,
@@ -216,7 +216,7 @@ tests["Create and access a sampled texture in a GPUBindGroup."] = async device =
         }]
     });
 
-    const shaderModule = device.createShaderModule({ code: sampledTextureShader, isWHLSL: true });
+    const shaderModule = device.createShaderModule({ code: sampledTextureShader });
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
 
     const pipeline = device.createComputePipeline({
@@ -341,7 +341,7 @@ tests["Create and use multiple GPUBindGroups in a single dispatch."] = async dev
         }]
     });
 
-    const shaderModule = device.createShaderModule({ code: comboShader, isWHLSL: true });
+    const shaderModule = device.createShaderModule({ code: comboShader });
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bgl0, bgl1, bgl2, bgl3] });
 
     const pipeline = device.createComputePipeline({
@@ -418,7 +418,7 @@ tests["Bind a single GPUBuffer with different offsets in different GPUBindGroups
 
     const pipelineLayout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
 
-    const shaderModule = device.createShaderModule({ code: uniformBufferShader, isWHLSL: true });
+    const shaderModule = device.createShaderModule({ code: uniformBufferShader });
 
     const pipeline = device.createComputePipeline({
         layout: pipelineLayout,
index e0acfd2..65a844c 100644 (file)
@@ -11,36 +11,26 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct Vertex
-{
-    float4 position [[position]];
-};
-
-vertex Vertex vertex_main(uint vid [[vertex_id]])
-{
-    Vertex v;
+vertex float4 vertex_main(uint vid : SV_VertexID) : SV_Position {
+    float4 result;
     switch (vid) {
     case 0:
-        v.position = float4(-1, 1, 0, 1);
+        result = float4(-1, 1, 0, 1);
         break;
     case 1:
-        v.position = float4(-1, -1, 0, 1);
+        result = float4(-1, -1, 0, 1);
         break;
     case 2:
-        v.position = float4(1, 1, 0, 1);
+        result = float4(1, 1, 0, 1);
         break;
     default:
-        v.position = float4(1, -1, 0, 1);
+        result = float4(1, -1, 0, 1);
+        break;
     }
-    return v;
+    return result;
 }
 
-fragment float4 fragment_main()
-{
+fragment float4 fragment_main() : SV_Target 0 {
     return float4(0, 1, 1, 1);
 }
 `;
index c665f57..206a0a7 100644 (file)
@@ -13,32 +13,22 @@ if (window.testRunner)
 const positionAttributeNum = 0;
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float4 position [[attribute(${positionAttributeNum})]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float4 color;
+    float4 position : SV_Position;
+    float4 color : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]])
-{
+vertex VertexOut vertex_main(float4 position : attribute(${positionAttributeNum})) {
     VertexOut vOut;
-    vOut.position = vertexIn.position;
+    vOut.position = position;
     vOut.color = float4(0, 0.5, 0, 0.5);
     return vOut;
 }
 
-fragment float4 fragment_main(VertexOut v [[stage_in]])
+fragment float4 fragment_main(float4 color : attribute(0)) : SV_Target 0
 {
-    return v.color;
+    return color;
 }
 `;
 
index 01b1e58..a0b5c38 100644 (file)
@@ -11,34 +11,22 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float2 xy [[attribute(0)]];
-    float3 rgb [[attribute(1)]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float4 color;
+    float4 position : SV_Position;
+    float4 color : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]])
-{
+vertex VertexOut vertex_main(float2 xy : attribute(0), float3 rgb : attribute(1)) {
     VertexOut vOut;
-    vOut.position = float4(vertexIn.xy, 0, 1);
-    vOut.color = float4(vertexIn.rgb, 1);
-
+    vOut.position = float4(xy, 0, 1);
+    vOut.color = float4(rgb, 1);
     return vOut;
 }
 
-fragment float4 fragment_main(VertexOut v [[stage_in]])
+fragment float4 fragment_main(float4 color : attribute(0)) : SV_Target 0
 {
-    return v.color;
+    return color;
 }
 `
 
index 2f3f12c..287efde 100644 (file)
@@ -11,35 +11,27 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct Vertex
-{
-    float4 position [[position]];
-};
-
-vertex Vertex vertex_main(uint vid [[vertex_id]])
+vertex float4 vertex_main(uint vid : SV_VertexID) : SV_Position
 {
-    Vertex v;
+    float4 v;
     switch (vid) {
     case 0:
-        v.position = float4(-1, 1, 0, 1);
+        v = float4(-1, 1, 0, 1);
         break;
     case 1:
-        v.position = float4(-1, -1, 0, 1);
+        v = float4(-1, -1, 0, 1);
         break;
     case 2:
-        v.position = float4(1, 1, 0, 1);
+        v = float4(1, 1, 0, 1);
         break;
     default:
-        v.position = float4(1, -1, 0, 1);
+        v = float4(1, -1, 0, 1);
+        break;
     }
     return v;
 }
 
-fragment float4 fragment_main()
+fragment float4 fragment_main() : SV_Target 0
 {
     return float4(1, 1, 1, 1);
 }
index f8bbfe0..e97544d 100644 (file)
@@ -14,7 +14,7 @@ tests["Compute compilation failed due to incorrect entry point string."] = async
 [numthreads(1, 1, 1)]
 compute void _compute_main() { }
 `;
-    goodModule = device.createShaderModule({ code: goodWHLSL, isWHLSL: true });
+    goodModule = device.createShaderModule({ code: goodWHLSL });
 
     device.pushErrorScope("validation");
 
@@ -82,4 +82,4 @@ kernel void _compute_main() { }
 
 runTestsWithDevice(tests);
 </script>
-</body>
\ No newline at end of file
+</body>
index fb559a8..134424b 100644 (file)
@@ -11,25 +11,16 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float4 position [[attribute(0)]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float4 color;
+    float4 position : SV_Position;
+    float4 color : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]], uint iid [[instance_id]])
+vertex VertexOut vertex_main(float4 position : attribute(0), uint iid : SV_InstanceID)
 {
     VertexOut vOut;
-    vOut.position = vertexIn.position;
+    vOut.position = position;
 
     if (iid == 0) {
         vOut.position.z = 0.5;
@@ -41,9 +32,9 @@ vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]], uint iid [[instance
     return vOut;
 }
 
-fragment float4 fragment_main(VertexOut v [[stage_in]])
+fragment float4 fragment_main(float4 color : attribute(0)) : SV_Target 0
 {
-    return v.color;
+    return color;
 }
 `
 
index 11a2b46..d221b3b 100644 (file)
@@ -11,33 +11,23 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float4 position [[attribute(0)]];
-    float green [[attribute(1)]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float4 color;
+    float4 position : SV_Position;
+    float4 color : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]])
+vertex VertexOut vertex_main(float4 position : attribute(0), float green : attribute(1))
 {
     VertexOut vOut;
-    vOut.position = vertexIn.position;
-    vOut.color = float4(0, vertexIn.green, 0, 1);
+    vOut.position = position;
+    vOut.color = float4(0, green, 0, 1);
     return vOut;
 }
 
-fragment float4 fragment_main(VertexOut v [[stage_in]])
+fragment float4 fragment_main(float4 color : attribute(0)) : SV_Target 0
 {
-    return v.color;
+    return color;
 }
 `
 
diff --git a/LayoutTests/webgpu/msl-harness-test-expected.txt b/LayoutTests/webgpu/msl-harness-test-expected.txt
deleted file mode 100644 (file)
index e870956..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-PASS Return a literal of type bool. 
-PASS Return an expected float4 value. 
-PASS Return an expected int value. 
-PASS Return an expected uchar value. 
-PASS Return an expected uint value. 
-PASS Return an expected float value. 
-PASS Upload and return a bool value. 
-PASS Return an expected float4 value. 
-PASS Return an expected int value. 
-PASS Return an expected uchar value. 
-PASS Return an expected uint value. 
-PASS Return an expected float value. 
-PASS Upload many bool values and return a calculated result. 
-PASS Return an expected float4 value. 
-PASS Return an expected int value. 
-PASS Return an expected uchar value. 
-PASS Return an expected uint value. 
-PASS Return an expected float value. 
-PASS Access and return a single bool through a bool*. 
-PASS Return an expected float4 value. 
-PASS Return an expected int value. 
-PASS Return an expected uchar value. 
-PASS Return an expected uint value. 
-PASS Return an expected float value. 
-PASS Access multiple bools through various buffers and return a bool. 
-PASS Return an expected float4 value. 
-PASS Return an expected int value. 
-PASS Return an expected uchar value. 
-PASS Return an expected uint value. 
-PASS Return an expected float value. 
-PASS Upload and calculate a result from varied argument types. 
-PASS Store into a float4*. 
-PASS Upload a uchar* and store into a uchar*. 
-
diff --git a/LayoutTests/webgpu/msl-harness-test.html b/LayoutTests/webgpu/msl-harness-test.html
deleted file mode 100644 (file)
index ea30071..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE html>
-<html>
-<meta charset=utf-8>
-<title>Test the WHLSL test harness.</title>
-<script src="whlsl/js/test-harness.js"></script>
-<script src="../resources/testharness.js"></script>
-<script src="../resources/testharnessreport.js"></script>
-<script>
-const epsilon = 0.0001;
-
-const numericScalarTypes = ["int", "uchar", "uint", "float"];
-
-const numericScalarFuncs = {
-    "int": callIntFunction,
-    "uchar": callUcharFunction,
-    "uint": callUintFunction,
-    "float": callFloatFunction
-};
-
-const scalarArgMakers = {
-    "int": makeInt,
-    "uchar": makeUchar,
-    "uint": makeUint,
-    "float": makeFloat
-};
-
-let mslTests = {};
-
-mslTests.literals = () => {
-    checkBools("Return a literal of type bool.", "return true;");
-    checkFloat4s("return float4(0, 1, 2, 3);");
-    checkNumericScalars("return 42;", [], 42);
-};
-
-mslTests.singleArgument = () => {
-    checkBools("Upload and return a bool value.", "return in0;", [true]);
-    checkFloat4s("return in0.wzyx;", [[3, 2, 1, 0]]);
-    checkNumericScalars("return in0;", [42], 42);
-};
-
-mslTests.manyArguments = () => {
-    checkBools("Upload many bool values and return a calculated result.",
-        "return in0 & in1 & in2 & in3 & in4 & in5 & in6 & in7;",  
-        [true, true, true, true, true, true, true, true]);
-
-    const body = `return in0 + in1 + in2 + in3 + in4 + in5 + in6 + in7;`;
-    let args = [];
-    for (let i = 0; i < 8; ++i)
-        args.push([0, 1, 2, 3]);
-    checkFloat4s(body, args, [0, 8, 16, 24]);
-    checkNumericScalars(body, [0, 1, 2, 3, 4, 5, 6, 7], 28);
-};
-
-mslTests.buffersWithOneValue = () => {
-    const body = `return in0[0];`
-    checkBools("Access and return a single bool through a bool*.", body, [[true]]);
-    checkFloat4s(body, [[[0, 1, 2, 3]]]);
-    checkNumericScalars(body, [[42]], 42);
-};
-
-mslTests.multipleBufferArguments = () => {
-    checkBools("Access multiple bools through various buffers and return a bool.", 
-        "return in0[0] & in0[1] & in0[2] & in1 & in2[0];", 
-        [[true, true, true], true, [true]]);
-    
-    const body = `return in0[0] + in0[1] + in0[2] + in1 + in2[0];`;
-    const vector = [0, 1, 2, 3];
-    checkFloat4s(body, [[vector, vector, vector], vector, [vector]], [0, 5, 10, 15]);
-    checkNumericScalars(body, [[0, 1, 2], 3, [4]], 10);
-};
-
-mslTests.multipleArgumentTypes = () => {
-    const src = `float test(int i, uchar c, device uint* u, bool b, device bool* bs, float4 f4, device float* fs)
-    {
-        if (b && bs[0] && bs[1])
-            return i + c + u[0] + f4.x + f4.y + f4.z + f4.w + fs[0] + fs[1];
-        
-        return 0;
-    }`;
-    const i = makeInt(1);
-    const c = makeUchar(2);
-    const u = makeUint([3]);
-    const b = makeBool(true);
-    const bs = makeBool([true, true]);
-    const f4 = makeFloat4([4, 5, 6, 7]);
-    const fs = makeFloat([8, 9]);
-    webGPUPromiseTest(() => {
-        return callFloatFunction(src, "test", [i, c, u, b, bs, f4, fs]).then(result => {
-            assert_approx_equals(result, 45, epsilon, "Test returned expected value.");
-        });
-    }, "Upload and calculate a result from varied argument types.");
-};
-
-mslTests.bufferStores = () => {
-    let src = `void test(device float4* out) {
-        *out = float4(0, 1, 2, 3);
-    }`;
-    const float4Out = makeFloat4([[0, 0, 0, 0]]);
-    callVoidFunction(src, "test", float4Out);
-
-    webGPUPromiseTest(() => {
-        return float4Out.getArrayBuffer().then(arrayBuffer => {
-            const result = new Float32Array(arrayBuffer);
-            for (let i; i < 4; ++i) {
-                assert_approx_equals(result[i], i, "Test stored expected values.");
-            }
-        });
-    }, "Store into a float4*.");
-
-    src = `void test(device uchar* in, device uchar* out) {
-        for (uint i = 0; i < 5; ++i)
-            out[i] = in[i];
-    }`;
-    const array = [0, 1, 2, 3, 4];
-    const input = makeUchar(array);
-    const output = makeUchar([0, 0, 0, 0, 0]);
-    callVoidFunction(src, "test", [input, output]);
-
-    webGPUPromiseTest(() => {
-        return output.getArrayBuffer().then(arrayBuffer => {
-            const result = new Uint8Array(arrayBuffer);
-            assert_array_equals(array, result, "Test stored expected values.");
-        });
-    }, "Upload a uchar* and store into a uchar*.");
-};
-
-window.addEventListener("load", () => {
-    harness.isWHLSL = false;
-    for (const name in mslTests) {
-        mslTests[name]();
-    }
-});
-
-/* Helper functions */
-
-const checkNumericScalars = (body, argValues, expected) => {
-    let functions = [];
-    let src = "";
-    for (let type of numericScalarTypes) {
-        const name = `${type}Test`;
-
-        let inputArgs = [];
-        let values = [];
-        for (let i = 0; i < argValues.length; ++i) {
-            const isPointer = Array.isArray(argValues[i]);
-            inputArgs.push(`${isPointer ? "device " : ""}${type}${isPointer ? "*" : ""} in${i}`);
-            values.push(scalarArgMakers[type](argValues[i]));
-        }
-        
-        src += `${type} ${name}(${inputArgs.join(", ")}) { ${body} }
-        `;
-        functions.push({ type: type, name: name, args: values, expected: expected });
-    }
-
-    for (const f of functions) {
-        const callFunc = numericScalarFuncs[f.type];
-        webGPUPromiseTest(async () => {
-            return callFunc(src, f.name, f.args).then(result => {
-                assert_approx_equals(result, f.expected, epsilon, "Test returned expected value.");
-            });
-        }, `Return an expected ${f.type} value.`);
-    }
-};
-
-const checkBools = (msg = "Return an expected bool value.", body, argValues = [], expected = true) => {
-    let src = "";
-    let inputArgs = [];
-    let values = [];
-    for (let i = 0; i < argValues.length; ++i) {
-        const isPointer = Array.isArray(argValues[i]);
-        inputArgs.push(`${isPointer ? "device " : ""}bool${isPointer ? "*" : ""} in${i}`);
-        values.push(makeBool(argValues[i]));
-    }
-
-    src += `bool boolTest(${inputArgs.join(", ")}) { ${body} }
-    `;
-
-    webGPUPromiseTest(async () => {
-        return callBoolFunction(src, "boolTest", values).then(result => {
-            assert_equals(result, expected, "Test returned expected value.");
-        });
-    }, msg);
-};
-
-const checkFloat4s = (body, argValues = [], expected = [0, 1, 2, 3]) => {
-    let src = "";
-    let inputArgs = [];
-    let values = [];
-
-    for (let i = 0; i < argValues.length; ++i) {
-        // Support arrays of float4, including one with a single float4.
-        const totalLength = argValues[i].flat().length;
-        const isPointer = argValues[i].length === 1 || totalLength > 4;
-        inputArgs.push(`${isPointer ? "device " : ""}float4${isPointer ? "*" : ""} in${i}`);
-        values.push(makeFloat4(argValues[i]));
-    }
-
-    src += `float4 float4Test(${inputArgs.join(", ")}) { ${body} }
-    `;
-
-    webGPUPromiseTest(async () => {
-        return callFloat4Function(src, "float4Test", values).then(result => {
-            for (let i = 0; i < 4; ++i)
-                assert_approx_equals(result[i], expected[i], epsilon, "Test returned expected value.");
-        });
-    }, "Return an expected float4 value.");
-}
-</script>
-</html>
index 130bfd4..4948b6e 100644 (file)
@@ -7,23 +7,23 @@
 <script src="js/webgpu-functions.js"></script>
 <script>
 const shaders = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
 struct Vertex
 {
-    float4 position [[position]];
+    float4 position : SV_Position;
+    float4 attributePosition : attribute(0);
 };
 
 vertex Vertex vertex_main()
 {
-    return Vertex { float4(0, 0, 0, 1) };
+    Vertex result;
+    result.position = float4(0, 0, 0, 1);
+    result.attributePosition = result.position;
+    return result;
 }
 
-fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
+fragment float4 fragment_main(float4 position : attribute(0)) : SV_Target 0
 {
-    return vertexIn.position;
+    return position;
 }
 `
 
index a493e11..0b9bc73 100644 (file)
@@ -39,7 +39,7 @@ let goodRenderPipelineDescriptor, goodModule;
 let tests = {};
 
 tests["GPURenderPipeline creation succeeds with no errors."] = async device => {
-    goodModule = device.createShaderModule({ code: whlslSource, isWHLSL: true });
+    goodModule = device.createShaderModule({ code: whlslSource });
     
     goodRenderPipelineDescriptor = {
         vertexStage: { module: goodModule, entryPoint: "vertexMain" },
@@ -73,7 +73,7 @@ tests["GPURenderPipeline creation succeeds with no errors."] = async device => {
 
 tests["Invalid GPUShaderModule for vertex stage should fail."] = async device => {
     let badDescriptor = Object.assign({}, goodRenderPipelineDescriptor);
-    let badShaderModule = device.createShaderModule({ code: "Foo", isWHLSL: true });
+    let badShaderModule = device.createShaderModule({ code: "Foo" });
     badDescriptor.vertexStage = { module: badShaderModule, entryPoint: "vertexMain" };
 
     return createPipelineAndError(device, badDescriptor);
@@ -81,7 +81,7 @@ tests["Invalid GPUShaderModule for vertex stage should fail."] = async device =>
 
 tests["Invalid GPUShaderModule for fragment stage should fail."] = async device => {
     let badDescriptor = Object.assign({}, goodRenderPipelineDescriptor);
-    let badShaderModule = device.createShaderModule({ code: "Foo", isWHLSL: true  });
+    let badShaderModule = device.createShaderModule({ code: "Foo"  });
     badDescriptor.fragmentStage = { module: badShaderModule, entryPoint: "vertexMain" };
 
     return createPipelineAndError(device, badDescriptor);
@@ -89,7 +89,7 @@ tests["Invalid GPUShaderModule for fragment stage should fail."] = async device
 
 tests["Empty entry point for vertex stage should fail."] = async device => {
     let badDescriptor = Object.assign({}, goodRenderPipelineDescriptor);
-    let badShaderModule = device.createShaderModule({ code: "Foo", isWHLSL: true  });
+    let badShaderModule = device.createShaderModule({ code: "Foo"  });
     badDescriptor.vertexStage = { module: badShaderModule, entryPoint: "" };
 
     return createPipelineAndError(device, badDescriptor);
@@ -187,4 +187,4 @@ const createPipelineAndError = (device, descriptor) => {
 };
 
 </script>
-</body>
\ No newline at end of file
+</body>
index e6665bb..6bb8d26 100644 (file)
@@ -5,35 +5,27 @@
 <script src="../resources/testharnessreport.js"></script>
 <script>
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct Vertex
-{
-    float4 position [[position]];
-};
-
-vertex Vertex vertex_main(uint vid [[vertex_id]])
+vertex float4 vertex_main(uint vid [[vertex_id]]) : SV_Position
 {
-    Vertex v;
+    float4 v;
     switch (vid) {
     case 0:
-        v.position = float4(-1, 1, 0, 1);
+        v = float4(-1, 1, 0, 1);
         break;
     case 1:
-        v.position = float4(-1, -1, 0, 1);
+        v = float4(-1, -1, 0, 1);
         break;
     case 2:
-        v.position = float4(1, 1, 0, 1);
+        v = float4(1, 1, 0, 1);
         break;
     default:
-        v.position = float4(1, -1, 0, 1);
+        v = float4(1, -1, 0, 1);
+        break;
     }
     return v;
 }
 
-fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
+fragment float4 fragment_main() : SV_Target 0
 {
     return float4(0.0, 1.0, 0.0, 1.0);
 }
index 998559f..4262e11 100644 (file)
@@ -7,23 +7,23 @@
 <script src="../resources/testharnessreport.js"></script>
 <script>
 const shaders = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
 struct Vertex
 {
-    float4 position [[position]];
+    float4 position : SV_Position;
+    float4 attributePosition : attribute(0);
 };
 
 vertex Vertex vertex_main()
 {
-    return Vertex { float4(0, 0, 0, 1) };
+    Vertex result;
+    result.position = float4(0, 0, 0, 1);
+    result.attributePosition = result.position;
+    return result;
 }
 
-fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
+fragment float4 fragment_main(float4 position : attribute(0)) : SV_Target 0
 {
-    return vertexIn.position;
+    return position;
 }
 `
 
index c8d1e3b..2704d4b 100644 (file)
@@ -11,35 +11,27 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct Vertex
-{
-    float4 position [[position]];
-};
-
-vertex Vertex vertex_main(uint vid [[vertex_id]])
+vertex float4 vertex_main(uint vid : SV_VertexID) : SV_Position
 {
-    Vertex v;
+    float4 v;
     switch (vid) {
     case 0:
-        v.position = float4(-1, 1, 0, 1);
+        v = float4(-1, 1, 0, 1);
         break;
     case 1:
-        v.position = float4(-1, -1, 0, 1);
+        v = float4(-1, -1, 0, 1);
         break;
     case 2:
-        v.position = float4(1, 1, 0, 1);
+        v = float4(1, 1, 0, 1);
         break;
     default:
-        v.position = float4(1, -1, 0, 1);
+        v = float4(1, -1, 0, 1);
+        break;
     }
     return v;
 }
 
-fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
+fragment float4 fragment_main() : SV_Target 0
 {
     return float4(0.0, 1.0, 0.0, 1.0);
 }
index cae04b5..c68abc1 100644 (file)
@@ -19,39 +19,28 @@ const textureBindingNum = 0;
 const samplerBindingNum = 1;
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float4 position [[attribute(${positionAttributeNum})]];
-    float2 texCoords [[attribute(${texCoordsAttributeNum})]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float2 texCoords;
+    float4 position : SV_Position;
+    float2 texCoords : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]])
-{
+vertex VertexOut vertex_main(float4 position : attribute(${positionAttributeNum}), float2 texCoords : attribute(${texCoordsAttributeNum})) {
     VertexOut vOut;
-    vOut.position = vertexIn.position;
-    vOut.texCoords = vertexIn.texCoords;
+    vOut.position = position;
+    vOut.texCoords = texCoords;
     return vOut;
 }
 
 struct TextureSampler
 {
-    texture2d<float> t [[id(${textureBindingNum})]];
-    sampler s [[id(${samplerBindingNum})]];
+    Texture2D<float4> t : register(t${textureBindingNum}, space${bindGroupIndex});
+    sampler s : register(s${samplerBindingNum}, space${bindGroupIndex});
 };
 
-fragment float4 fragment_main(VertexOut v [[stage_in]], const device TextureSampler& args [[buffer(${bindGroupIndex})]])
+fragment float4 fragment_main(float2 texCoords : attribute(0), TextureSampler textureSampler) : SV_Target 0
 {
-    return args.t.sample(args.s, v.texCoords);
+    return Sample(textureSampler.t, textureSampler.s, texCoords);
 }
 `
 
index bd335e6..3bbe875 100644 (file)
@@ -11,33 +11,23 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct VertexIn
-{
-    float4 position [[attribute(0)]];
-    float green [[attribute(1)]];
-};
-
 struct VertexOut
 {
-    float4 position [[position]];
-    float4 color;
+    float4 position : SV_Position;
+    float4 color : attribute(0);
 };
 
-vertex VertexOut vertex_main(VertexIn vertexIn [[stage_in]])
+vertex VertexOut vertex_main(float4 position : attribute(0), float green : attribute(1))
 {
     VertexOut vOut;
-    vOut.position = vertexIn.position;
-    vOut.color = float4(0, vertexIn.green, 0, 1);
+    vOut.position = position;
+    vOut.color = float4(0, green, 0, 1);
     return vOut;
 }
 
-fragment float4 fragment_main(VertexOut v [[stage_in]])
+fragment float4 fragment_main(float4 color : attribute(0)) : SV_Target 0
 {
-    return v.color;
+    return color;
 }
 `
 
index b9ade87..0e79414 100644 (file)
@@ -11,35 +11,27 @@ if (window.testRunner)
     testRunner.waitUntilDone();
 
 const shaderCode = `
-#include <metal_stdlib>
-    
-using namespace metal;
-
-struct Vertex
-{
-    float4 position [[position]];
-};
-
-vertex Vertex vertex_main(uint vid [[vertex_id]])
+vertex float4 vertex_main(uint vid : SV_VertexID) : SV_Position
 {
-    Vertex v;
+    float4 v;
     switch (vid) {
     case 0:
-        v.position = float4(-1, 1, 0, 1);
+        v = float4(-1, 1, 0, 1);
         break;
     case 1:
-        v.position = float4(-1, -1, 0, 1);
+        v = float4(-1, -1, 0, 1);
         break;
     case 2:
-        v.position = float4(1, 1, 0, 1);
+        v = float4(1, 1, 0, 1);
         break;
     default:
-        v.position = float4(1, -1, 0, 1);
+        v = float4(1, -1, 0, 1);
+        break;
     }
     return v;
 }
 
-fragment float4 fragment_main(Vertex vertexIn [[stage_in]])
+fragment float4 fragment_main() : SV_Target 0
 {
     return float4(0.0, 1.0, 0.0, 1.0);
 }
index bc5d3d5..c239fae 100644 (file)
@@ -27,7 +27,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 4f4d5ea..c62b325 100644 (file)
@@ -19,7 +19,7 @@ fragment float4 fragmentShader(float4 position : SV_Position, constant float[] t
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d0ff360..96866e2 100644 (file)
@@ -14,7 +14,7 @@ compute void computeShader(device uint[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index dbfc190..4a6ab1e 100644 (file)
@@ -19,7 +19,7 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index b313fd6..61b22c5 100644 (file)
@@ -16,7 +16,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 3caa0f3..1f632e6 100644 (file)
@@ -14,7 +14,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 4482301..9adabd6 100644 (file)
@@ -32,7 +32,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index cee8cf1..b531205 100644 (file)
@@ -24,7 +24,7 @@ compute void computeShader(device Point[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index f481280..4bbfbf5 100644 (file)
@@ -36,7 +36,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 7aea5b0..d0a638b 100644 (file)
@@ -38,7 +38,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 2381b42..51b8c51 100644 (file)
@@ -33,7 +33,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 7cdef2a..c65c5a7 100644 (file)
@@ -24,7 +24,7 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index cd1e882..c6b6014 100644 (file)
@@ -27,7 +27,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 5842712..e72a473 100644 (file)
@@ -35,7 +35,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 05ad22f..86b810a 100644 (file)
@@ -56,7 +56,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index a548c72..c2627fd 100644 (file)
@@ -57,7 +57,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 16a1eed..cf81186 100644 (file)
@@ -56,7 +56,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 3438ff9..d93abd4 100644 (file)
@@ -51,7 +51,7 @@ compute void computeShader(device int[] buffer : register(u0), float3 threadID :
 }
 `;
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 8e61067..bbaa527 100644 (file)
@@ -24,13 +24,11 @@ function isScalar(type)
     }
 }
 
-function convertTypeToArrayType(isWHLSL, type)
+function convertTypeToArrayType(type)
 {
     switch(type) {
         case Types.BOOL:
-            if (isWHLSL)
-                return Int32Array;
-            return Uint8Array;
+            return Int32Array;
         case Types.INT:
             return Int32Array;
         case Types.UCHAR:
@@ -119,14 +117,14 @@ class Data {
         }
 
         this._type = type;
-        this._byteLength = (convertTypeToArrayType(harness.isWHLSL, type)).BYTES_PER_ELEMENT * values.length;
+        this._byteLength = (convertTypeToArrayType(type)).BYTES_PER_ELEMENT * values.length;
 
         const [buffer, arrayBuffer] = harness.device.createBufferMapped({
             size: this._byteLength,
             usage: GPUBufferUsage.STORAGE | GPUBufferUsage.MAP_READ
         });
 
-        const typedArray = new (convertTypeToArrayType(harness.isWHLSL, type))(arrayBuffer);
+        const typedArray = new (convertTypeToArrayType(type))(arrayBuffer);
         typedArray.set(values);
         buffer.unmap();
 
@@ -160,7 +158,6 @@ class Data {
 class Harness {
     constructor ()
     {
-        this.isWHLSL = true;
     }
 
     async requestDevice()
@@ -175,21 +172,6 @@ class Harness {
         }
     }
 
-    // Sets whether Harness generates WHLSL or MSL shaders.
-    set isWHLSL(value)
-    {
-        this._isWHLSL = value;
-        this._shaderHeader = value ? "" : `
-#include <metal_stdlib>
-using namespace metal;
-        `;
-    }
-
-    get isWHLSL()
-    {
-        return this._isWHLSL;
-    }
-
     /**
      * Return the return value of a WHLSL function.
      * @param {Types} type - The return type of the WHLSL function.
@@ -228,31 +210,17 @@ using namespace metal;
         });
 
         let entryPointCode;
-        if (this._isWHLSL) {
-            argsDeclarations.unshift(`device ${whlslArgumentType(type)}[] result : register(u0)`);
-            let callCode = `${name}(${functionCallArgs.join(", ")})`;
-            callCode = convertToWHLSLOutputType(callCode, type);
-            entryPointCode = `
+        argsDeclarations.unshift(`device ${whlslArgumentType(type)}[] result : register(u0)`);
+        let callCode = `${name}(${functionCallArgs.join(", ")})`;
+        callCode = convertToWHLSLOutputType(callCode, type);
+        entryPointCode = `
 [numthreads(1, 1, 1)]
 compute void _compute_main(${argsDeclarations.join(", ")})
 {
     result[0] = ${callCode};
 }
 `;
-        } else {
-            argsDeclarations.unshift(`device ${convertTypeToWHLSLType(type)}* result [[id(0)]];`);
-            entryPointCode = `
-struct _compute_args {
-    ${argsDeclarations.join("\n")}
-};
-
-kernel void _compute_main(device _compute_args& args [[buffer(0)]]) 
-{
-    *args.result = ${name}(${functionCallArgs.join(", ")});
-}
-`;
-        }
-        const code = this._shaderHeader + functions + entryPointCode;
+        const code = functions + entryPointCode;
         await this._callFunction(code, argsLayouts, argsResourceBindings);
     
         try {
@@ -260,7 +228,7 @@ kernel void _compute_main(device _compute_args& args [[buffer(0)]])
         } catch {
             throw new Error("Harness error: Unable to read results!");
         }
-        const array = new (convertTypeToArrayType(this._isWHLSL, type))(result);
+        const array = new (convertTypeToArrayType(type))(result);
         this._resultBuffer.unmap();
 
         return array;
@@ -279,27 +247,13 @@ kernel void _compute_main(device _compute_args& args [[buffer(0)]])
 
         const [argsLayouts, argsResourceBindings, argsDeclarations, functionCallArgs] = this._setUpArguments(args);
 
-        let entryPointCode;
-        if (this._isWHLSL) {
-            entryPointCode = `
+        let entryPointCode = `
 [numthreads(1, 1, 1)]
 compute void _compute_main(${argsDeclarations.join(", ")})
 {
     ${name}(${functionCallArgs.join(", ")});
 }`;
-        } else {
-            entryPointCode = `
-struct _compute_args {
-    ${argsDeclarations.join("\n")}
-};
-
-kernel void _compute_main(device _compute_args& args [[buffer(0)]])
-{
-    ${name}(${functionCallArgs.join(", ")});
-}
-`;
-        }
-        const code = this._shaderHeader + functions + entryPointCode;
+        const code = functions + entryPointCode;
         this._callFunction(code, argsLayouts, argsResourceBindings);
     }
 
@@ -312,21 +266,15 @@ kernel void _compute_main(device _compute_args& args [[buffer(0)]])
         if (this._device === undefined)
             return;
         
-        let entryPointCode;
-        if (this.isWHLSL) {
-            entryPointCode = `
+        let entryPointCode = `
 [numthreads(1, 1, 1)]
 compute void _compute_main() { }`;
-        } else {
-            entryPointCode = `
-kernel void _compute_main() { }`;
-        }
 
-        const code = this._shaderHeader + source + entryPointCode;
+        const code = source + entryPointCode;
 
         this._device.pushErrorScope("validation");
         
-        const shaders = this._device.createShaderModule({ code: code, isWHLSL: this._isWHLSL });
+        const shaders = this._device.createShaderModule({ code: code });
     
         this._device.createComputePipeline({
             computeStage: {
@@ -372,13 +320,8 @@ kernel void _compute_main() { }`;
 
         for (let i = 1; i <= args.length; ++i) {
             const arg = args[i - 1];
-            if (this._isWHLSL) {
-                argsDeclarations.push(`device ${whlslArgumentType(arg.type)}[] arg${i} : register(u${i})`);
-                functionCallArgs.push(convertToWHLSLInputType(`arg${i}` + (arg.isBuffer ? "" : "[0]"), arg.type));
-            } else {
-                argsDeclarations.push(`device ${convertTypeToWHLSLType(arg.type)}* arg${i} [[id(${i})]];`);
-                functionCallArgs.push((arg.isBuffer ? "" : "*") + `args.arg${i}`);
-            }
+            argsDeclarations.push(`device ${whlslArgumentType(arg.type)}[] arg${i} : register(u${i})`);
+            functionCallArgs.push(convertToWHLSLInputType(`arg${i}` + (arg.isBuffer ? "" : "[0]"), arg.type));
             argsLayouts.push({
                 binding: i,
                 visibility: GPUShaderStageBit.COMPUTE,
@@ -411,7 +354,7 @@ kernel void _compute_main() { }`;
 
         this._device.pushErrorScope("validation");
 
-        const shaders = this._device.createShaderModule({ code: code, isWHLSL: this._isWHLSL });
+        const shaders = this._device.createShaderModule({ code: code });
     
         const pipeline = this._device.createComputePipeline({
             layout: pipelineLayout,
index 6c41167..f4dfd4d 100644 (file)
@@ -37,7 +37,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 3949fe3..9212a97 100644 (file)
@@ -37,7 +37,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 405d1e6..715d18f 100644 (file)
@@ -33,7 +33,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 18ad06a..44c4018 100644 (file)
@@ -120,7 +120,7 @@ compute void computeShader(device int[] buffer : register(u0), float3 threadID :
 }
 `;
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 7b99cad..201b523 100644 (file)
@@ -76,7 +76,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 5f674d1..5a36d5d 100644 (file)
@@ -42,7 +42,7 @@ compute void computeShader(device float4x4[] buffer : register(u0), float3 threa
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index c381bc9..fe3620e 100644 (file)
@@ -88,7 +88,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index b057f1f..90767b3 100644 (file)
@@ -41,7 +41,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index ed8070f..71d2329 100644 (file)
@@ -69,7 +69,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d179450..5790c10 100644 (file)
@@ -50,7 +50,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index d37b394..11ca6cc 100644 (file)
@@ -17,7 +17,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index ea185a9..4f866fc 100644 (file)
@@ -42,7 +42,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d34901d..aa9a13b 100644 (file)
@@ -45,7 +45,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 117a150..949b1dd 100644 (file)
@@ -37,7 +37,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 69f7318..a448461 100644 (file)
@@ -33,7 +33,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index bf22611..ddeaf27 100644 (file)
@@ -29,7 +29,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index afd7434..182e465 100644 (file)
@@ -42,7 +42,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index eb1e511..707672e 100644 (file)
@@ -45,7 +45,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 7ded03a..3e85a4c 100644 (file)
@@ -37,7 +37,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 17761f9..cbde75f 100644 (file)
@@ -33,7 +33,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 196916a..8a5d9a2 100644 (file)
@@ -28,7 +28,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index a6d9b4e..853aa2e 100644 (file)
@@ -60,7 +60,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index e46e06d..da61b14 100644 (file)
@@ -47,7 +47,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 827981a..bec9d92 100644 (file)
@@ -42,7 +42,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 62ddf5e..b61623a 100644 (file)
@@ -45,7 +45,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 59c4850..418b859 100644 (file)
@@ -60,7 +60,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 68d587e..96ad8c8 100644 (file)
@@ -47,7 +47,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 7aba5cf..d50f8b8 100644 (file)
@@ -42,7 +42,7 @@ fragment float4 fragmentShader() : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 0407f70..ba4dd08 100644 (file)
@@ -35,7 +35,7 @@ compute void computeShader(device float[] buffer : register(u0), float3 threadID
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index cef7f01..8d056a3 100644 (file)
@@ -39,7 +39,7 @@ async function start() {
     const adapter = await navigator.gpu.requestAdapter();
     const device = await adapter.requestDevice();
 
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 6f69470..75d1c9c 100644 (file)
@@ -34,7 +34,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 7b94956..baba264 100644 (file)
@@ -22,8 +22,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d1da159..6424b1b 100644 (file)
@@ -25,8 +25,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 53a2f48..bdd6b8b 100644 (file)
@@ -24,8 +24,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 74b2d91..e29cfd1 100644 (file)
@@ -22,8 +22,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index db5e1ab..868483b 100644 (file)
@@ -26,8 +26,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 957c964..0422d9c 100644 (file)
@@ -26,8 +26,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 29a4f4a..fc7c49e 100644 (file)
@@ -26,8 +26,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 3c9bf47..f6c25ba 100644 (file)
@@ -23,8 +23,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 8137e65..50388c2 100644 (file)
@@ -28,8 +28,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d2332a5..0adbdec 100644 (file)
@@ -28,8 +28,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index e5d26b3..d3d4d58 100644 (file)
@@ -23,8 +23,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d9c8ab6..6dba78b 100644 (file)
@@ -24,8 +24,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 1032fe8..295b84b 100644 (file)
@@ -20,8 +20,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index af4fc9c..49a2ee9 100644 (file)
@@ -24,8 +24,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 3ddc1f0..01b2a0d 100644 (file)
@@ -24,8 +24,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 14a2d07..2330f76 100644 (file)
@@ -23,8 +23,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 934234d..baf73cb 100644 (file)
@@ -22,8 +22,8 @@ fragment float4 fragmentShader2(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 4f80a75..cb516af 100644 (file)
@@ -24,8 +24,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 391c154..51db69d 100644 (file)
@@ -22,8 +22,8 @@ fragment float4 fragmentShader(float4 position : SV_Position, bool isFontFace :
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index fe4f244..15d3320 100644 (file)
@@ -21,8 +21,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 54ec8bb..7d372eb 100644 (file)
@@ -20,8 +20,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index fdc18fe..89455c7 100644 (file)
@@ -23,8 +23,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index e05e468..daba687 100644 (file)
@@ -22,8 +22,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 6cd1b4f..2eaf049 100644 (file)
@@ -26,8 +26,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 012a4fd..5e76d90 100644 (file)
@@ -21,8 +21,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index da6c095..aa6a785 100644 (file)
@@ -19,8 +19,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 `;
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index d420a82..bf0ddf1 100644 (file)
@@ -20,8 +20,8 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource, isWHLSL: true});
-    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource, isWHLSL: true});
+    const vertexShaderModule = device.createShaderModule({code: vertexShaderSource});
+    const fragmentShaderModule = device.createShaderModule({code: fragmentShaderSource});
     const vertexStage = {module: vertexShaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: fragmentShaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 811149e..5b33db2 100644 (file)
@@ -59,7 +59,7 @@ compute void computeShader(device int[] buffer : register(u0), float3 threadID :
 }
 `;
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 0c79a69..bee9475 100644 (file)
@@ -49,7 +49,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index fe0f5cd..95aca34 100644 (file)
@@ -20,7 +20,7 @@ compute void computeShader(Texture2D<float4> theTexture : register(t0), device u
 `;
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "sampled-texture"}, {binding: 1, visibility: 7, type: "storage-buffer"}]};
index e2957b9..ea4d681 100644 (file)
@@ -19,7 +19,7 @@ fragment float4 fragmentShader(Texture2D<float4> theTexture : register(t0)) : SV
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 87b4035..8603c84 100644 (file)
@@ -19,7 +19,7 @@ fragment float4 fragmentShader(Texture2D<float4> theTexture : register(t0), samp
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 355286d..319f8a4 100644 (file)
@@ -61,7 +61,7 @@ compute void computeShader(device int[] buffer : register(u0), float3 threadID :
 }
 `;
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index e06f724..cd304ae 100644 (file)
@@ -17,7 +17,7 @@ async function start() {
     const adapter = await navigator.gpu.requestAdapter();
     const device = await adapter.requestDevice();
 
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index da0e2fd..9c50073 100644 (file)
@@ -20,7 +20,7 @@ async function start() {
     const adapter = await navigator.gpu.requestAdapter();
     const device = await adapter.requestDevice();
 
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const computeStage = {module: shaderModule, entryPoint: "computeShader"};
 
     const bindGroupLayoutDescriptor = {bindings: [{binding: 0, visibility: 7, type: "storage-buffer"}]};
index 5a54797..b6a930f 100644 (file)
@@ -39,7 +39,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 308efe1..4223bf1 100644 (file)
@@ -39,7 +39,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index bd87048..9c24c1f 100644 (file)
@@ -19,7 +19,7 @@ fragment float4 fragmentShader(float4 position : SV_Position) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 18c8c52..fbf45f0 100644 (file)
@@ -55,7 +55,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 241671a..7ff70d6 100644 (file)
@@ -38,7 +38,7 @@ fragment float4 fragmentShader(float shade : attribute(0)) : SV_Target 0 {
 const canvas = document.getElementById("canvas");
 
 async function start(device) {
-    const shaderModule = device.createShaderModule({code: shaderSource, isWHLSL: true});
+    const shaderModule = device.createShaderModule({code: shaderSource});
     const vertexStage = {module: shaderModule, entryPoint: "vertexShader"};
     const fragmentStage = {module: shaderModule, entryPoint: "fragmentShader"};
     const primitiveTopology = "triangle-strip";
index 3009c95..1add95b 100644 (file)
@@ -1,3 +1,21 @@
+2019-08-26  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [WHLSL] Rewrite all tests to use WHLSL and delete the isWHLSL flag
+        https://bugs.webkit.org/show_bug.cgi?id=201162
+
+        Reviewed by Saam Barati.
+
+        We want to keep the MSL codepath for debugging, so the codepath isn't deleted entirely, but it is no longer web exposed.
+
+        * Modules/webgpu/WebGPUDevice.cpp:
+        (WebCore::WebGPUDevice::createShaderModule const):
+        * Modules/webgpu/WebGPUShaderModuleDescriptor.h:
+        * Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
+        * platform/graphics/gpu/GPUDevice.h:
+        * platform/graphics/gpu/GPUShaderModuleDescriptor.h:
+        * platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:
+        (WebCore::GPUShaderModule::tryCreate):
+
 2019-08-26  Chris Dumez  <cdumez@apple.com>
 
         Change default value of window.open()'s url argument
index 85fdca3..55f7ffb 100644 (file)
@@ -153,7 +153,7 @@ Ref<WebGPUBindGroup> WebGPUDevice::createBindGroup(const WebGPUBindGroupDescript
 Ref<WebGPUShaderModule> WebGPUDevice::createShaderModule(const WebGPUShaderModuleDescriptor& descriptor) const
 {
     // FIXME: What can be validated here?
-    auto module = m_device->tryCreateShaderModule(GPUShaderModuleDescriptor { descriptor.code, descriptor.isWHLSL });
+    auto module = m_device->tryCreateShaderModule(GPUShaderModuleDescriptor { descriptor.code });
     return WebGPUShaderModule::create(WTFMove(module));
 }
 
index b8d9817..af32a98 100644 (file)
@@ -33,7 +33,6 @@ namespace WebCore {
 
 struct WebGPUShaderModuleDescriptor {
     String code;
-    bool isWHLSL;
 };
 
 } // namespace WebCore
index 9a2f55c..b8d9d93 100644 (file)
@@ -29,5 +29,4 @@
     EnabledAtRuntime=WebGPU
 ] dictionary WebGPUShaderModuleDescriptor {
     required /*ArrayBuffer*/ DOMString code; // FIXME: DOMString for MTL prototyping only.
-    boolean isWHLSL = false;
 };
index 48713f2..58b1200 100644 (file)
@@ -95,6 +95,8 @@ public:
     GPUSwapChain* swapChain() const { return m_swapChain.get(); }
     void setSwapChain(RefPtr<GPUSwapChain>&&);
 
+    static constexpr bool useWHLSL = true;
+
 private:
     explicit GPUDevice(PlatformDeviceSmartPtr&&);
 
index 5c3ecf6..6cfe0ad 100644 (file)
@@ -33,7 +33,6 @@ namespace WebCore {
 
 struct GPUShaderModuleDescriptor {
     String code;
-    bool isWHLSL;
 };
 
 } // namespace WebCore
index b86f051..4ada71f 100644 (file)
@@ -44,7 +44,7 @@ RefPtr<GPUShaderModule> GPUShaderModule::tryCreate(const GPUDevice& device, cons
         return nullptr;
     }
     
-    if (descriptor.isWHLSL)
+    if (GPUDevice::useWHLSL)
         return adoptRef(new GPUShaderModule(WHLSL::createShaderModule(descriptor.code)));
 
     PlatformShaderModuleSmartPtr module;