[WebGPU] WebGPUAdapterDescriptor -> GPURequestAdapterOptions and take powerPreference...
authorjustin_fan@apple.com <justin_fan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Jan 2019 20:53:50 +0000 (20:53 +0000)
committerjustin_fan@apple.com <justin_fan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Jan 2019 20:53:50 +0000 (20:53 +0000)
commit9fcf46c84ab0fc6be676ac41cc873b9194aacf90
tree55a941c2ce6fcd37cefd8b3e73d106e6668306e6
parent4723eb235f1b8546b696b0ba29fab64c66147154
[WebGPU] WebGPUAdapterDescriptor -> GPURequestAdapterOptions and take powerPreference into account
https://bugs.webkit.org/show_bug.cgi?id=194068
<rdar://problem/47680215>

Reviewed by Dean Jackson.
Source/WebCore:

Per the Web GPU IDL, WebGPUAdapterDescriptor is now known as GPURequestAdapterOptions and is optional.
In addition, Web GPU now actually attempts to return an integrated GPU when a low-power adapter is requested.

Test: adapter-options.html

* Modules/webgpu/GPURequestAdapterOptions.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.idl.
* Modules/webgpu/WebGPU.cpp:
(WebCore::WebGPU::requestAdapter const):
* Modules/webgpu/WebGPU.h:
* Modules/webgpu/WebGPU.idl:
* Modules/webgpu/WebGPUAdapter.cpp:
(WebCore::WebGPUAdapter::create):
(WebCore::WebGPUAdapter::WebGPUAdapter):
* Modules/webgpu/WebGPUAdapter.h:
(WebCore::WebGPUAdapter::options const):
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::create):
* platform/graphics/gpu/GPUDevice.h:
* platform/graphics/gpu/GPURequestAdapterOptions.h: Renamed from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.h.
* platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
(WebCore::GPUDevice::create):

LayoutTests:

Add simple test to create device with all options. Update helper functions for other Web GPU
tests to request different adapters. (No change in test behavior expected.)

* webgpu/adapter-options-expected.txt: Added.
* webgpu/adapter-options.html: Added.
* webgpu/js/basic-webgpu-functions.js:
(async.setUpContexts): Update to use no adapter request argument at all.
* webgpu/js/webgpu-functions.js:
(async.getBasicDevice): Update to request the low-power adapter.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
20 files changed:
LayoutTests/ChangeLog
LayoutTests/webgpu/adapter-options-expected.txt [new file with mode: 0644]
LayoutTests/webgpu/adapter-options.html [new file with mode: 0644]
LayoutTests/webgpu/js/basic-webgpu-functions.js
LayoutTests/webgpu/js/webgpu-functions.js
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/Modules/webgpu/GPURequestAdapterOptions.idl [moved from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.idl with 91% similarity]
Source/WebCore/Modules/webgpu/WebGPU.cpp
Source/WebCore/Modules/webgpu/WebGPU.h
Source/WebCore/Modules/webgpu/WebGPU.idl
Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp
Source/WebCore/Modules/webgpu/WebGPUAdapter.h
Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
Source/WebCore/Sources.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/platform/graphics/gpu/GPUDevice.h
Source/WebCore/platform/graphics/gpu/GPURequestAdapterOptions.h [moved from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.h with 89% similarity]
Source/WebCore/platform/graphics/gpu/cocoa/GPUDeviceMetal.mm