[WebGPU] Experimental prototype for MSL shaders
authorjustin_fan@apple.com <justin_fan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Nov 2018 07:09:09 +0000 (07:09 +0000)
committerjustin_fan@apple.com <justin_fan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Nov 2018 07:09:09 +0000 (07:09 +0000)
commitedb444ed4e9409305dc633fc739de8f51df0ce6c
tree6b44edfe015f7884d124cdfa33b3a117eb4865ef
parentf0a0efd716ca462c0e2f887f256bd81ef2fe45e4
[WebGPU] Experimental prototype for MSL shaders
https://bugs.webkit.org/show_bug.cgi?id=191084

Reviewed by Dean Jackson.

Source/WebCore:

Begin implementation for WebGPUDevice and WebGPUShaderModule and associated descriptor objects.

Test: webgpu/webgpu-basics.html
Test: webgpu/shader-modules.html

* CMakeLists.txt:
* DerivedSources.make:
* Modules/webgpu/GPUDevice.cpp:
(WebCore::GPUDevice::createShaderModule const):
* Modules/webgpu/GPUDevice.h:
(WebCore::GPUDevice::platformDevice const):
* Modules/webgpu/GPUShaderModule.h:
(WebCore::GPUShaderModule::platformShaderModule const):
* Modules/webgpu/GPUShaderModuleDescriptor.h:
* Modules/webgpu/WebGPU.cpp:
(WebCore::WebGPU::requestAdapter const):
* Modules/webgpu/WebGPUAdapter.cpp:
(WebCore::WebGPUAdapter::create):
(WebCore::WebGPUAdapter::createDevice):
* Modules/webgpu/WebGPUAdapter.h:
* Modules/webgpu/WebGPUAdapter.idl:
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::create):
(WebCore::WebGPUDevice::WebGPUDevice):
(WebCore::WebGPUDevice::createShaderModule const):
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.idl:
* Modules/webgpu/WebGPUShaderModule.cpp:
(WebCore::WebGPUShaderModule::create):
(WebCore::WebGPUShaderModule::WebGPUShaderModule):
* Modules/webgpu/WebGPUShaderModule.h:
* Modules/webgpu/WebGPUShaderModule.idl:
* Modules/webgpu/WebGPUShaderModuleDescriptor.h:
* Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
* Modules/webgpu/WebGPUSwapChain.cpp:
(WebCore::WebGPUSwapChain::configure):
* Modules/webgpu/WebGPUSwapChain.h:
* Modules/webgpu/WebGPUSwapChain.idl:
* Modules/webgpu/cocoa/GPUDeviceMetal.mm:
(WebCore::GPUDevice::create):
(WebCore::GPUDevice::GPUDevice):
* Modules/webgpu/cocoa/GPUShaderModuleMetal.mm:
(WebCore::GPUShaderModule::create):
(WebCore::GPUShaderModule::GPUShaderModule):
* Sources.txt:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* platform/Logging.h:

Source/WTF:

Disabling WebGPU on non-Cocoa platforms and iOS Simulator.

* wtf/Platform.h:

LayoutTests:

* webgpu/shader-modules.html: Added.
* webgpu/shader-modules-expected.html: Added.
* webgpu/webgpu-basics.html: Added.
* webgpu/webgpu-basics-expected.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
36 files changed:
LayoutTests/ChangeLog
LayoutTests/webgpu/shader-modules-expected.txt [new file with mode: 0644]
LayoutTests/webgpu/shader-modules.html [new file with mode: 0644]
LayoutTests/webgpu/webgpu-basics-expected.txt [new file with mode: 0644]
LayoutTests/webgpu/webgpu-basics.html [new file with mode: 0644]
Source/WTF/ChangeLog
Source/WTF/wtf/Platform.h
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/Modules/webgpu/GPUDevice.cpp [new file with mode: 0644]
Source/WebCore/Modules/webgpu/GPUDevice.h [new file with mode: 0644]
Source/WebCore/Modules/webgpu/GPUShaderModule.h [new file with mode: 0644]
Source/WebCore/Modules/webgpu/GPUShaderModuleDescriptor.h [moved from Source/WebCore/Modules/webgpu/WebGPUSwapChainDescriptor.h with 92% similarity]
Source/WebCore/Modules/webgpu/WebGPU.cpp
Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp
Source/WebCore/Modules/webgpu/WebGPUAdapter.h
Source/WebCore/Modules/webgpu/WebGPUAdapter.idl
Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
Source/WebCore/Modules/webgpu/WebGPUDevice.h
Source/WebCore/Modules/webgpu/WebGPUDevice.idl
Source/WebCore/Modules/webgpu/WebGPUShaderModule.cpp [new file with mode: 0644]
Source/WebCore/Modules/webgpu/WebGPUShaderModule.h [new file with mode: 0644]
Source/WebCore/Modules/webgpu/WebGPUShaderModule.idl [new file with mode: 0644]
Source/WebCore/Modules/webgpu/WebGPUShaderModuleDescriptor.h [new file with mode: 0644]
Source/WebCore/Modules/webgpu/WebGPUShaderModuleDescriptor.idl [moved from Source/WebCore/Modules/webgpu/WebGPUSwapChainDescriptor.idl with 89% similarity]
Source/WebCore/Modules/webgpu/WebGPUSwapChain.cpp
Source/WebCore/Modules/webgpu/WebGPUSwapChain.h
Source/WebCore/Modules/webgpu/WebGPUSwapChain.idl
Source/WebCore/Modules/webgpu/cocoa/GPUDeviceMetal.mm [new file with mode: 0644]
Source/WebCore/Modules/webgpu/cocoa/GPUShaderModuleMetal.mm [new file with mode: 0644]
Source/WebCore/Sources.txt
Source/WebCore/SourcesCocoa.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/js/WebCoreBuiltinNames.h
Source/WebCore/platform/Logging.h