Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (285377 => 285378)
--- trunk/Source/WebCore/CMakeLists.txt 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/CMakeLists.txt 2021-11-06 21:50:45 UTC (rev 285378)
@@ -1475,6 +1475,9 @@
Modules/WebGPU/GPUBufferUsage.idl
Modules/WebGPU/GPUDevice.idl
Modules/WebGPU/GPUDeviceDescriptor.idl
+ Modules/WebGPU/GPUExtent3DDict.idl
+ Modules/WebGPU/GPUExternalTexture.idl
+ Modules/WebGPU/GPUExternalTextureDescriptor.idl
Modules/WebGPU/GPUFeatureName.idl
Modules/WebGPU/GPUMapMode.idl
Modules/WebGPU/GPUObjectBase.idl
@@ -1484,6 +1487,15 @@
Modules/WebGPU/GPURequestAdapterOptions.idl
Modules/WebGPU/GPUSupportedFeatures.idl
Modules/WebGPU/GPUSupportedLimits.idl
+ Modules/WebGPU/GPUTexture.idl
+ Modules/WebGPU/GPUTextureAspect.idl
+ Modules/WebGPU/GPUTextureDescriptor.idl
+ Modules/WebGPU/GPUTextureDimension.idl
+ Modules/WebGPU/GPUTextureFormat.idl
+ Modules/WebGPU/GPUTextureUsage.idl
+ Modules/WebGPU/GPUTextureView.idl
+ Modules/WebGPU/GPUTextureViewDescriptor.idl
+ Modules/WebGPU/GPUTextureViewDimension.idl
Modules/WebGPU/NavigatorGPU.idl
)
Modified: trunk/Source/WebCore/ChangeLog (285377 => 285378)
--- trunk/Source/WebCore/ChangeLog 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/ChangeLog 2021-11-06 21:50:45 UTC (rev 285378)
@@ -1,5 +1,69 @@
2021-11-04 Myles C. Maxfield <[email protected]>
+ [WebGPU] Bindings Part 3: Bring back Texture bindings code
+ https://bugs.webkit.org/show_bug.cgi?id=232609
+
+ Reviewed by Dean Jackson.
+
+ This is the third chunk of bindings code, brought back from r280467.
+ This chunk includes the Texture object. Its methods are just stubbed out
+ and do nothing - those implementations will come later.
+
+ No new tests because there is no behavior change yet.
+
+ * CMakeLists.txt:
+ * DerivedSources-input.xcfilelist:
+ * DerivedSources-output.xcfilelist:
+ * DerivedSources.make:
+ * Modules/WebGPU/GPUDevice.cpp:
+ (WebCore::GPUDevice::createTexture):
+ (WebCore::GPUDevice::importExternalTexture):
+ * Modules/WebGPU/GPUDevice.h:
+ * Modules/WebGPU/GPUDevice.idl:
+ * Modules/WebGPU/GPUExtent3DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUExtent3DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUExternalTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUExternalTexture::label const):
+ (WebCore::GPUExternalTexture::setLabel):
+ * Modules/WebGPU/GPUExternalTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUExternalTexture::create):
+ * Modules/WebGPU/GPUExternalTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUExternalTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUExternalTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUTexture::createView const):
+ (WebCore::GPUTexture::destroy):
+ (WebCore::GPUTexture::label const):
+ (WebCore::GPUTexture::setLabel):
+ * Modules/WebGPU/GPUTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUTexture::create):
+ * Modules/WebGPU/GPUTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureAspect.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureAspect.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureFormat.h: Added.
+ * Modules/WebGPU/GPUTextureFormat.idl: Added.
+ * Modules/WebGPU/GPUTextureUsage.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureUsage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureView.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUTextureView::label const):
+ (WebCore::GPUTextureView::setLabel):
+ * Modules/WebGPU/GPUTextureView.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ (WebCore::GPUTextureView::create):
+ * Modules/WebGPU/GPUTextureView.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureViewDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureViewDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureViewDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Modules/WebGPU/GPUTextureViewDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
+ * Sources.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/WebCoreBuiltinNames.h:
+
+2021-11-04 Myles C. Maxfield <[email protected]>
+
[WebGPU] Bindings part 2: Bring back Buffer bindings code
https://bugs.webkit.org/show_bug.cgi?id=232560
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (285377 => 285378)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2021-11-06 21:50:45 UTC (rev 285378)
@@ -28,6 +28,9 @@
$(PROJECT_DIR)/Modules/WebGPU/GPUBufferUsage.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUDevice.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUDeviceDescriptor.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUExtent3DDict.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUExternalTexture.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUExternalTextureDescriptor.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUFeatureName.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUMapMode.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUObjectBase.idl
@@ -38,6 +41,15 @@
$(PROJECT_DIR)/Modules/WebGPU/GPUSize64.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUSupportedFeatures.idl
$(PROJECT_DIR)/Modules/WebGPU/GPUSupportedLimits.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTexture.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureAspect.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureDescriptor.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureDimension.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureFormat.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureUsage.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureView.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureViewDescriptor.idl
+$(PROJECT_DIR)/Modules/WebGPU/GPUTextureViewDimension.idl
$(PROJECT_DIR)/Modules/WebGPU/NavigatorGPU.idl
$(PROJECT_DIR)/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl
$(PROJECT_DIR)/Modules/applepay/ApplePayCancelEvent.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (285377 => 285378)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2021-11-06 21:50:45 UTC (rev 285378)
@@ -881,6 +881,12 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDevice.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDeviceDescriptor.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUDeviceDescriptor.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExtent3DDict.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExtent3DDict.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExternalTexture.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExternalTexture.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExternalTextureDescriptor.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUExternalTextureDescriptor.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUFeatureName.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUFeatureName.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUMapMode.cpp
@@ -901,6 +907,24 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedFeatures.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedLimits.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUSupportedLimits.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTexture.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTexture.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureAspect.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureAspect.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureDescriptor.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureDescriptor.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureDimension.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureDimension.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureFormat.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureFormat.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureUsage.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureUsage.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureView.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureView.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureViewDescriptor.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureViewDescriptor.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureViewDimension.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGPUTextureViewDimension.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainNode.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainNode.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSGainOptions.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (285377 => 285378)
--- trunk/Source/WebCore/DerivedSources.make 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/DerivedSources.make 2021-11-06 21:50:45 UTC (rev 285378)
@@ -60,6 +60,9 @@
$(WebCore)/Modules/WebGPU/GPUBufferUsage.idl \
$(WebCore)/Modules/WebGPU/GPUDevice.idl \
$(WebCore)/Modules/WebGPU/GPUDeviceDescriptor.idl \
+ $(WebCore)/Modules/WebGPU/GPUExtent3DDict.idl \
+ $(WebCore)/Modules/WebGPU/GPUExternalTexture.idl \
+ $(WebCore)/Modules/WebGPU/GPUExternalTextureDescriptor.idl \
$(WebCore)/Modules/WebGPU/GPUFeatureName.idl \
$(WebCore)/Modules/WebGPU/GPUMapMode.idl \
$(WebCore)/Modules/WebGPU/GPUObjectBase.idl \
@@ -69,6 +72,15 @@
$(WebCore)/Modules/WebGPU/GPURequestAdapterOptions.idl \
$(WebCore)/Modules/WebGPU/GPUSupportedFeatures.idl \
$(WebCore)/Modules/WebGPU/GPUSupportedLimits.idl \
+ $(WebCore)/Modules/WebGPU/GPUTexture.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureAspect.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureDescriptor.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureDimension.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureFormat.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureUsage.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureView.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureViewDescriptor.idl \
+ $(WebCore)/Modules/WebGPU/GPUTextureViewDimension.idl \
$(WebCore)/Modules/WebGPU/NavigatorGPU.idl \
$(WebCore)/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl \
$(WebCore)/Modules/applepay/ApplePayCancelEvent.idl \
Modified: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp (285377 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.cpp 2021-11-06 21:50:45 UTC (rev 285378)
@@ -28,8 +28,12 @@
#include "GPUBuffer.h"
#include "GPUBufferDescriptor.h"
+#include "GPUExternalTexture.h"
+#include "GPUExternalTextureDescriptor.h"
#include "GPUSupportedFeatures.h"
#include "GPUSupportedLimits.h"
+#include "GPUTexture.h"
+#include "GPUTextureDescriptor.h"
namespace WebCore {
@@ -63,4 +67,14 @@
return GPUBuffer::create();
}
+Ref<GPUTexture> GPUDevice::createTexture(const GPUTextureDescriptor&)
+{
+ return GPUTexture::create();
}
+
+Ref<GPUExternalTexture> GPUDevice::importExternalTexture(const GPUExternalTextureDescriptor&)
+{
+ return GPUExternalTexture::create();
+}
+
+}
Modified: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h (285377 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -35,8 +35,12 @@
class GPUBuffer;
struct GPUBufferDescriptor;
+class GPUExternalTexture;
+struct GPUExternalTextureDescriptor;
class GPUSupportedFeatures;
class GPUSupportedLimits;
+class GPUTexture;
+struct GPUTextureDescriptor;
class GPUDevice : public ActiveDOMObject, public EventTargetWithInlineData {
public:
@@ -56,6 +60,8 @@
void destroy();
Ref<GPUBuffer> createBuffer(const GPUBufferDescriptor&);
+ Ref<GPUTexture> createTexture(const GPUTextureDescriptor&);
+ Ref<GPUExternalTexture> importExternalTexture(const GPUExternalTextureDescriptor&);
private:
GPUDevice(ScriptExecutionContext* scriptExecutionContext)
@@ -72,8 +78,6 @@
ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); }
void refEventTarget() final { ref(); }
void derefEventTarget() final { deref(); }
-
- String m_label;
};
}
Modified: trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl (285377 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -38,6 +38,8 @@
undefined destroy();
GPUBuffer createBuffer(GPUBufferDescriptor descriptor);
+ GPUTexture createTexture(GPUTextureDescriptor descriptor);
+ GPUExternalTexture importExternalTexture(GPUExternalTextureDescriptor descriptor);
// FIXME: Add more here.
};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "GPUIntegralTypes.h"
+#include <variant>
+
+namespace WebCore {
+
+struct GPUExtent3DDict {
+ GPUIntegerCoordinate width;
+ GPUIntegerCoordinate height;
+ GPUIntegerCoordinate depthOrArrayLayers;
+};
+using GPUExtent3D = std::variant<Vector<GPUIntegerCoordinate>, GPUExtent3DDict>;
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExtent3DDict.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#typedefdef-gpuextent3d
+
+// https://bugs.webkit.org/show_bug.cgi?id=232548 This shouldn't need to be here.
+typedef [EnforceRange] unsigned long GPUIntegerCoordinate;
+
+[
+ EnabledBySetting=WebGPU
+]
+dictionary GPUExtent3DDict {
+ required GPUIntegerCoordinate width;
+ GPUIntegerCoordinate height = 1;
+ GPUIntegerCoordinate depthOrArrayLayers = 1;
+};
+typedef (sequence<GPUIntegerCoordinate> or GPUExtent3DDict) GPUExtent3D;
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GPUExternalTexture.h"
+
+namespace WebCore {
+
+String GPUExternalTexture::label() const
+{
+ return StringImpl::empty();
+}
+
+void GPUExternalTexture::setLabel(String&&)
+{
+}
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUExternalTexture : public RefCounted<GPUExternalTexture> {
+public:
+ static Ref<GPUExternalTexture> create()
+ {
+ return adoptRef(*new GPUExternalTexture());
+ }
+
+ String label() const;
+ void setLabel(String&&);
+
+private:
+ GPUExternalTexture() = default;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gpuexternaltexture
+
+[
+ EnabledBySetting=WebGPU,
+ ImplementationLacksVTable,
+ Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+ SecureContext
+]
+interface GPUExternalTexture {
+};
+GPUExternalTexture includes GPUObjectBase;
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "GPUObjectDescriptorBase.h"
+#include "GPUPredefinedColorSpace.h"
+#include "HTMLVideoElement.h"
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class HTMLVideoElement;
+
+struct GPUExternalTextureDescriptor : public GPUObjectDescriptorBase {
+ RefPtr<HTMLVideoElement> source;
+ GPUPredefinedColorSpace colorSpace;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gpuexternaltexturedescriptor
+
+[
+ EnabledBySetting=WebGPU
+]
+dictionary GPUExternalTextureDescriptor : GPUObjectDescriptorBase {
+ required HTMLVideoElement source;
+ GPUPredefinedColorSpace colorSpace = "srgb";
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTexture.cpp (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTexture.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTexture.cpp 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GPUTexture.h"
+
+#include "GPUTextureView.h"
+
+namespace WebCore {
+
+Ref<GPUTextureView> GPUTexture::createView(const std::optional<GPUTextureViewDescriptor>&) const
+{
+ return GPUTextureView::create();
+}
+
+void GPUTexture::destroy()
+{
+}
+
+String GPUTexture::label() const
+{
+ return StringImpl::empty();
+}
+
+void GPUTexture::setLabel(String&&)
+{
+}
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTexture.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTexture.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTexture.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <optional>
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUTextureView;
+struct GPUTextureViewDescriptor;
+
+class GPUTexture : public RefCounted<GPUTexture> {
+public:
+ static Ref<GPUTexture> create()
+ {
+ return adoptRef(*new GPUTexture());
+ }
+
+ Ref<GPUTextureView> createView(const std::optional<GPUTextureViewDescriptor>&) const;
+
+ void destroy();
+
+ String label() const;
+ void setLabel(String&&);
+
+private:
+ GPUTexture() = default;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTexture.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTexture.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTexture.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gputexture
+
+[
+ EnabledBySetting=WebGPU,
+ ImplementationLacksVTable,
+ Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+ SecureContext
+]
+interface GPUTexture {
+ GPUTextureView createView(optional GPUTextureViewDescriptor descriptor);
+
+ undefined destroy();
+};
+GPUTexture includes GPUObjectBase;
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUTextureAspect : uint8_t {
+ All,
+ StencilOnly,
+ DepthOnly
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureAspect.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gputextureaspect
+
+[
+ EnabledBySetting=WebGPU
+]
+enum GPUTextureAspect {
+ "all",
+ "stencil-only",
+ "depth-only"
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "GPUExtent3DDict.h"
+#include "GPUIntegralTypes.h"
+#include "GPUObjectDescriptorBase.h"
+#include "GPUTextureDimension.h"
+#include "GPUTextureFormat.h"
+#include "GPUTextureUsage.h"
+
+namespace WebCore {
+
+struct GPUTextureDescriptor : public GPUObjectDescriptorBase {
+ GPUExtent3D size;
+ GPUIntegerCoordinate mipLevelCount;
+ GPUSize32 sampleCount;
+ GPUTextureDimension dimension;
+ GPUTextureFormat format;
+ GPUTextureUsageFlags usage;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gputexturedescriptor
+
+// https://bugs.webkit.org/show_bug.cgi?id=232548 These shouldn't need to be here.
+typedef [EnforceRange] unsigned long GPUIntegerCoordinate;
+typedef [EnforceRange] unsigned long GPUSize32;
+typedef (sequence<GPUIntegerCoordinate> or GPUExtent3DDict) GPUExtent3D;
+typedef [EnforceRange] unsigned long GPUTextureUsageFlags;
+
+[
+ EnabledBySetting=WebGPU
+]
+dictionary GPUTextureDescriptor : GPUObjectDescriptorBase {
+ required GPUExtent3D size;
+ GPUIntegerCoordinate mipLevelCount = 1;
+ GPUSize32 sampleCount = 1;
+ GPUTextureDimension dimension = "2d";
+ required GPUTextureFormat format;
+ required GPUTextureUsageFlags usage;
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUTextureDimension : uint8_t {
+ _1d,
+ _2d,
+ _3d
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureDimension.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gputexturedimension
+
+[
+ EnabledBySetting=WebGPU
+]
+enum GPUTextureDimension {
+ "1d",
+ "2d",
+ "3d"
+};
Added: trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.h (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUTextureFormat : uint8_t {
+ // 8-bit formats
+ R8unorm,
+ R8snorm,
+ R8uint,
+ R8sint,
+
+ // 16-bit formats
+ R16uint,
+ R16sint,
+ R16float,
+ Rg8unorm,
+ Rg8snorm,
+ Rg8uint,
+ Rg8sint,
+
+ // 32-bit formats
+ R32uint,
+ R32sint,
+ R32float,
+ Rg16uint,
+ Rg16sint,
+ Rg16float,
+ Rgba8unorm,
+ Rgba8unormSRGB,
+ Rgba8snorm,
+ Rgba8uint,
+ Rgba8sint,
+ Bgra8unorm,
+ Bgra8unormSRGB,
+ // Packed 32-bit formats
+ Rgb9e5ufloat,
+ Rgb10a2unorm,
+ Rg11b10ufloat,
+
+ // 64-bit formats
+ Rg32uint,
+ Rg32sint,
+ Rg32float,
+ Rgba16uint,
+ Rgba16sint,
+ Rgba16float,
+
+ // 128-bit formats
+ Rgba32uint,
+ Rgba32sint,
+ Rgba32float,
+
+ // Depth and stencil formats
+ Stencil8,
+ Depth16unorm,
+ Depth24plus,
+ Depth24plusStencil8,
+ Depth32float,
+
+ // BC compressed formats usable if texture-compression-bc is both
+ // supported by the device/user agent and enabled in requestDevice.
+ Bc1RgbaUnorm,
+ Bc1RgbaUnormSRGB,
+ Bc2RgbaUnorm,
+ Bc2RgbaUnormSRGB,
+ Bc3RgbaUnorm,
+ Bc3RgbaUnormSRGB,
+ Bc4RUnorm,
+ Bc4RSnorm,
+ Bc5RgUnorm,
+ Bc5RgSnorm,
+ Bc6hRgbUfloat,
+ Bc6hRgbFloat,
+ Bc7RgbaUnorm,
+ Bc7RgbaUnormSRGB,
+
+ // ETC2 compressed formats usable if texture-compression-etc2 is both
+ // supported by the device/user agent and enabled in requestDevice.
+ Etc2Rgb8unorm,
+ Etc2Rgb8unormSRGB,
+ Etc2Rgb8a1unorm,
+ Etc2Rgb8a1unormSRGB,
+ Etc2Rgba8unorm,
+ Etc2Rgba8unormSRGB,
+ EacR11unorm,
+ EacR11snorm,
+ EacRg11unorm,
+ EacRg11snorm,
+
+ // ASTC compressed formats usable if texture-compression-astc is both
+ // supported by the device/user agent and enabled in requestDevice.
+ Astc4x4Unorm,
+ Astc4x4UnormSRGB,
+ Astc5x4Unorm,
+ Astc5x4UnormSRGB,
+ Astc5x5Unorm,
+ Astc5x5UnormSRGB,
+ Astc6x5Unorm,
+ Astc6x5UnormSRGB,
+ Astc6x6Unorm,
+ Astc6x6UnormSRGB,
+ Astc8x5Unorm,
+ Astc8x5UnormSRGB,
+ Astc8x6Unorm,
+ Astc8x6UnormSRGB,
+ Astc8x8Unorm,
+ Astc8x8UnormSRGB,
+ Astc10x5Unorm,
+ Astc10x5UnormSRGB,
+ Astc10x6Unorm,
+ Astc10x6UnormSRGB,
+ Astc10x8Unorm,
+ Astc10x8UnormSRGB,
+ Astc10x10Unorm,
+ Astc10x10UnormSRGB,
+ Astc12x10Unorm,
+ Astc12x10UnormSRGB,
+ Astc12x12Unorm,
+ Astc12x12UnormSRGB,
+
+ // depth24unorm-stencil8 feature
+ Depth24unormStencil8,
+
+ // depth32float-stencil8 feature
+ Depth32floatStencil8
+};
+
+}
Property changes on: trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.h
___________________________________________________________________
Added: svn:eol-style
+native
\ No newline at end of property
Added: svn:keywords
+Author Date Id Rev URL
\ No newline at end of property
Added: trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.idl (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureFormat.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gputextureformat
+
+[
+ EnabledBySetting=WebGPU
+]
+enum GPUTextureFormat {
+ // 8-bit formats
+ "r8unorm",
+ "r8snorm",
+ "r8uint",
+ "r8sint",
+
+ // 16-bit formats
+ "r16uint",
+ "r16sint",
+ "r16float",
+ "rg8unorm",
+ "rg8snorm",
+ "rg8uint",
+ "rg8sint",
+
+ // 32-bit formats
+ "r32uint",
+ "r32sint",
+ "r32float",
+ "rg16uint",
+ "rg16sint",
+ "rg16float",
+ "rgba8unorm",
+ "rgba8unorm-srgb",
+ "rgba8snorm",
+ "rgba8uint",
+ "rgba8sint",
+ "bgra8unorm",
+ "bgra8unorm-srgb",
+ // Packed 32-bit formats
+ "rgb9e5ufloat",
+ "rgb10a2unorm",
+ "rg11b10ufloat",
+
+ // 64-bit formats
+ "rg32uint",
+ "rg32sint",
+ "rg32float",
+ "rgba16uint",
+ "rgba16sint",
+ "rgba16float",
+
+ // 128-bit formats
+ "rgba32uint",
+ "rgba32sint",
+ "rgba32float",
+
+ // Depth and stencil formats
+ "stencil8",
+ "depth16unorm",
+ "depth24plus",
+ "depth24plus-stencil8",
+ "depth32float",
+
+ // BC compressed formats usable if "texture-compression-bc" is both
+ // supported by the device/user agent and enabled in requestDevice.
+ "bc1-rgba-unorm",
+ "bc1-rgba-unorm-srgb",
+ "bc2-rgba-unorm",
+ "bc2-rgba-unorm-srgb",
+ "bc3-rgba-unorm",
+ "bc3-rgba-unorm-srgb",
+ "bc4-r-unorm",
+ "bc4-r-snorm",
+ "bc5-rg-unorm",
+ "bc5-rg-snorm",
+ "bc6h-rgb-ufloat",
+ "bc6h-rgb-float",
+ "bc7-rgba-unorm",
+ "bc7-rgba-unorm-srgb",
+
+ // ETC2 compressed formats usable if "texture-compression-etc2" is both
+ // supported by the device/user agent and enabled in requestDevice.
+ "etc2-rgb8unorm",
+ "etc2-rgb8unorm-srgb",
+ "etc2-rgb8a1unorm",
+ "etc2-rgb8a1unorm-srgb",
+ "etc2-rgba8unorm",
+ "etc2-rgba8unorm-srgb",
+ "eac-r11unorm",
+ "eac-r11snorm",
+ "eac-rg11unorm",
+ "eac-rg11snorm",
+
+ // ASTC compressed formats usable if "texture-compression-astc" is both
+ // supported by the device/user agent and enabled in requestDevice.
+ "astc-4x4-unorm",
+ "astc-4x4-unorm-srgb",
+ "astc-5x4-unorm",
+ "astc-5x4-unorm-srgb",
+ "astc-5x5-unorm",
+ "astc-5x5-unorm-srgb",
+ "astc-6x5-unorm",
+ "astc-6x5-unorm-srgb",
+ "astc-6x6-unorm",
+ "astc-6x6-unorm-srgb",
+ "astc-8x5-unorm",
+ "astc-8x5-unorm-srgb",
+ "astc-8x6-unorm",
+ "astc-8x6-unorm-srgb",
+ "astc-8x8-unorm",
+ "astc-8x8-unorm-srgb",
+ "astc-10x5-unorm",
+ "astc-10x5-unorm-srgb",
+ "astc-10x6-unorm",
+ "astc-10x6-unorm-srgb",
+ "astc-10x8-unorm",
+ "astc-10x8-unorm-srgb",
+ "astc-10x10-unorm",
+ "astc-10x10-unorm-srgb",
+ "astc-12x10-unorm",
+ "astc-12x10-unorm-srgb",
+ "astc-12x12-unorm",
+ "astc-12x12-unorm-srgb",
+
+ // "depth24unorm-stencil8" feature
+ "depth24unorm-stencil8",
+
+ // "depth32float-stencil8" feature
+ "depth32float-stencil8"
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "GPUIntegralTypes.h"
+#include <cstdint>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+using GPUTextureUsageFlags = uint32_t;
+class GPUTextureUsage : public RefCounted<GPUTextureUsage> {
+public:
+ static constexpr GPUFlagsConstant COPY_SRC = 0x01;
+ static constexpr GPUFlagsConstant COPY_DST = 0x02;
+ static constexpr GPUFlagsConstant TEXTURE_BINDING = 0x04;
+ static constexpr GPUFlagsConstant STORAGE_BINDING = 0x08;
+ static constexpr GPUFlagsConstant RENDER_ATTACHMENT = 0x10;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureUsage.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#namespacedef-gputextureusage
+
+typedef [EnforceRange] unsigned long GPUTextureUsageFlags;
+[
+ EnabledBySetting=WebGPU,
+ ImplementationLacksVTable,
+ Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+ SecureContext
+]
+interface GPUTextureUsage {
+ const GPUFlagsConstant COPY_SRC = 0x01;
+ const GPUFlagsConstant COPY_DST = 0x02;
+ const GPUFlagsConstant TEXTURE_BINDING = 0x04;
+ const GPUFlagsConstant STORAGE_BINDING = 0x08;
+ const GPUFlagsConstant RENDER_ATTACHMENT = 0x10;
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.cpp (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.cpp 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "GPUTextureView.h"
+
+namespace WebCore {
+
+String GPUTextureView::label() const
+{
+ return StringImpl::empty();
+}
+
+void GPUTextureView::setLabel(String&&)
+{
+}
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/Ref.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class GPUTextureView : public RefCounted<GPUTextureView> {
+public:
+ static Ref<GPUTextureView> create()
+ {
+ return adoptRef(*new GPUTextureView());
+ }
+
+ String label() const;
+ void setLabel(String&&);
+
+private:
+ GPUTextureView() = default;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureView.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#gputextureview
+
+[
+ EnabledBySetting=WebGPU,
+ ImplementationLacksVTable,
+ Exposed=(Window), /* https://bugs.webkit.org/show_bug.cgi?id=232542: DedicatedWorker */
+ SecureContext
+]
+interface GPUTextureView {
+};
+GPUTextureView includes GPUObjectBase;
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "GPUIntegralTypes.h"
+#include "GPUObjectDescriptorBase.h"
+#include "GPUTextureAspect.h"
+#include "GPUTextureFormat.h"
+#include "GPUTextureViewDimension.h"
+#include <optional>
+
+namespace WebCore {
+
+struct GPUTextureViewDescriptor : public GPUObjectDescriptorBase {
+ std::optional<GPUTextureFormat> format;
+ std::optional<GPUTextureViewDimension> dimension;
+ GPUTextureAspect aspect;
+ GPUIntegerCoordinate baseMipLevel;
+ std::optional<GPUIntegerCoordinate> mipLevelCount;
+ GPUIntegerCoordinate baseArrayLayer;
+ std::optional<GPUIntegerCoordinate> arrayLayerCount;
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDescriptor.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#dictdef-gputextureviewdescriptor
+
+// https://bugs.webkit.org/show_bug.cgi?id=232548 This shouldn't need to be here.
+typedef [EnforceRange] unsigned long GPUIntegerCoordinate;
+
+[
+ EnabledBySetting=WebGPU
+]
+dictionary GPUTextureViewDescriptor : GPUObjectDescriptorBase {
+ GPUTextureFormat format;
+ GPUTextureViewDimension dimension;
+ GPUTextureAspect aspect = "all";
+ GPUIntegerCoordinate baseMipLevel = 0;
+ GPUIntegerCoordinate mipLevelCount;
+ GPUIntegerCoordinate baseArrayLayer = 0;
+ GPUIntegerCoordinate arrayLayerCount;
+};
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.h (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.h (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <cstdint>
+
+namespace WebCore {
+
+enum class GPUTextureViewDimension : uint8_t {
+ _1d,
+ _2d,
+ _2dArray,
+ Cube,
+ CubeArray,
+ _3d
+};
+
+}
Copied: trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.idl (from rev 285377, trunk/Source/WebCore/Modules/WebGPU/GPUDevice.idl) (0 => 285378)
--- trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.idl (rev 0)
+++ trunk/Source/WebCore/Modules/WebGPU/GPUTextureViewDimension.idl 2021-11-06 21:50:45 UTC (rev 285378)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// https://gpuweb.github.io/gpuweb/#enumdef-gputextureviewdimension
+
+[
+ EnabledBySetting=WebGPU
+]
+enum GPUTextureViewDimension {
+ "1d",
+ "2d",
+ "2d-array",
+ "cube",
+ "cube-array",
+ "3d"
+};
Modified: trunk/Source/WebCore/Sources.txt (285377 => 285378)
--- trunk/Source/WebCore/Sources.txt 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/Sources.txt 2021-11-06 21:50:45 UTC (rev 285378)
@@ -25,8 +25,11 @@
Modules/WebGPU/GPUAdapter.cpp
Modules/WebGPU/GPUBuffer.cpp
Modules/WebGPU/GPUDevice.cpp
+Modules/WebGPU/GPUExternalTexture.cpp
Modules/WebGPU/GPUSupportedFeatures.cpp
Modules/WebGPU/GPUSupportedLimits.cpp
+Modules/WebGPU/GPUTexture.cpp
+Modules/WebGPU/GPUTextureView.cpp
Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp
Modules/applicationmanifest/ApplicationManifestParser.cpp
Modules/async-clipboard/Clipboard.cpp
@@ -3078,6 +3081,9 @@
JSGPUBufferUsage.cpp
JSGPUDevice.cpp
JSGPUDeviceDescriptor.cpp
+JSGPUExtent3DDict.cpp
+JSGPUExternalTexture.cpp
+JSGPUExternalTextureDescriptor.cpp
JSGPUFeatureName.cpp
JSGPUMapMode.cpp
JSGPUObjectBase.cpp
@@ -3087,6 +3093,15 @@
JSGPURequestAdapterOptions.cpp
JSGPUSupportedFeatures.cpp
JSGPUSupportedLimits.cpp
+JSGPUTexture.cpp
+JSGPUTextureAspect.cpp
+JSGPUTextureDescriptor.cpp
+JSGPUTextureDimension.cpp
+JSGPUTextureFormat.cpp
+JSGPUTextureUsage.cpp
+JSGPUTextureView.cpp
+JSGPUTextureViewDescriptor.cpp
+JSGPUTextureViewDimension.cpp
JSGainNode.cpp
JSGainOptions.cpp
JSGamepad.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (285377 => 285378)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-11-06 21:50:45 UTC (rev 285378)
@@ -7084,6 +7084,32 @@
1C81278B2734C5F80068864F /* GPUBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUBuffer.h; sourceTree = "<group>"; };
1C81278C2734C5F80068864F /* GPUBufferDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUBufferDescriptor.h; sourceTree = "<group>"; };
1C81278D2734C5F90068864F /* GPUMapMode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUMapMode.idl; sourceTree = "<group>"; };
+ 1C8127992734D8960068864F /* GPUTextureUsage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureUsage.h; sourceTree = "<group>"; };
+ 1C81279B2734D8970068864F /* GPUExtent3DDict.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUExtent3DDict.h; sourceTree = "<group>"; };
+ 1C81279C2734D8970068864F /* GPUTextureView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureView.h; sourceTree = "<group>"; };
+ 1C81279D2734D8980068864F /* GPUTextureDimension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureDimension.h; sourceTree = "<group>"; };
+ 1C81279E2734D8980068864F /* GPUTexture.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTexture.idl; sourceTree = "<group>"; };
+ 1C81279F2734D8990068864F /* GPUTextureView.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureView.idl; sourceTree = "<group>"; };
+ 1C8127A02734D8990068864F /* GPUTextureFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureFormat.h; sourceTree = "<group>"; };
+ 1C8127A12734D89A0068864F /* GPUExternalTextureDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUExternalTextureDescriptor.h; sourceTree = "<group>"; };
+ 1C8127A22734D89A0068864F /* GPUTextureDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureDescriptor.h; sourceTree = "<group>"; };
+ 1C8127A32734D89B0068864F /* GPUTextureDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureDescriptor.idl; sourceTree = "<group>"; };
+ 1C8127A42734D89B0068864F /* GPUTextureAspect.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureAspect.idl; sourceTree = "<group>"; };
+ 1C8127A52734D89B0068864F /* GPUExternalTexture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUExternalTexture.h; sourceTree = "<group>"; };
+ 1C8127A62734D89C0068864F /* GPUTextureViewDimension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureViewDimension.h; sourceTree = "<group>"; };
+ 1C8127A72734D89C0068864F /* GPUTextureFormat.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureFormat.idl; sourceTree = "<group>"; };
+ 1C8127A82734D89D0068864F /* GPUTextureAspect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureAspect.h; sourceTree = "<group>"; };
+ 1C8127A92734D89D0068864F /* GPUTextureUsage.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureUsage.idl; sourceTree = "<group>"; };
+ 1C8127AA2734D89E0068864F /* GPUExternalTextureDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUExternalTextureDescriptor.idl; sourceTree = "<group>"; };
+ 1C8127AB2734D89E0068864F /* GPUTextureViewDimension.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureViewDimension.idl; sourceTree = "<group>"; };
+ 1C8127AC2734D89F0068864F /* GPUTexture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTexture.h; sourceTree = "<group>"; };
+ 1C8127AD2734D89F0068864F /* GPUTextureViewDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUTextureViewDescriptor.h; sourceTree = "<group>"; };
+ 1C8127AE2734D89F0068864F /* GPUTextureDimension.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureDimension.idl; sourceTree = "<group>"; };
+ 1C8127AF2734D8A00068864F /* GPUExternalTexture.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUExternalTexture.idl; sourceTree = "<group>"; };
+ 1C8127B02734D8A00068864F /* GPUExtent3DDict.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUExtent3DDict.idl; sourceTree = "<group>"; };
+ 1C8127B12734D8A10068864F /* GPUTexture.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUTexture.cpp; sourceTree = "<group>"; };
+ 1C8127B22734D8A10068864F /* GPUTextureViewDescriptor.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = GPUTextureViewDescriptor.idl; sourceTree = "<group>"; };
+ 1C8127B42734DE0D0068864F /* GPUExternalTexture.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUExternalTexture.cpp; sourceTree = "<group>"; };
1C81B9560E97330800266E07 /* InspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorController.h; sourceTree = "<group>"; };
1C81B9570E97330800266E07 /* InspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorController.cpp; sourceTree = "<group>"; };
1C81B9580E97330800266E07 /* InspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorClient.h; sourceTree = "<group>"; };
@@ -7090,6 +7116,7 @@
1C84BE4126D3939F002D61FC /* ComposedCharacterClusterTextIterator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComposedCharacterClusterTextIterator.h; sourceTree = "<group>"; };
1C8D26D022C09CDE00D125F3 /* libcompression.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcompression.tbd; path = usr/lib/libcompression.tbd; sourceTree = SDKROOT; };
1C904DF90BA9D2C80081E9D0 /* Version.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = "<group>"; };
+ 1CA4FC4C2734DEC20027FD5A /* GPUTextureView.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPUTextureView.cpp; sourceTree = "<group>"; };
1CAF347E0A6C405200ABE06E /* WebScriptObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebScriptObject.h; sourceTree = "<group>"; };
1CAF347F0A6C405200ABE06E /* WebScriptObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebScriptObject.mm; sourceTree = "<group>"; };
1CAF34800A6C405200ABE06E /* WebScriptObjectPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebScriptObjectPrivate.h; sourceTree = "<group>"; };
@@ -19127,6 +19154,13 @@
1C28956E272F283800B3E2B4 /* GPUDevice.idl */,
1C28957C272F407800B3E2B4 /* GPUDeviceDescriptor.h */,
1C28956C272F27DA00B3E2B4 /* GPUDeviceDescriptor.idl */,
+ 1C81279B2734D8970068864F /* GPUExtent3DDict.h */,
+ 1C8127B02734D8A00068864F /* GPUExtent3DDict.idl */,
+ 1C8127B42734DE0D0068864F /* GPUExternalTexture.cpp */,
+ 1C8127A52734D89B0068864F /* GPUExternalTexture.h */,
+ 1C8127AF2734D8A00068864F /* GPUExternalTexture.idl */,
+ 1C8127A12734D89A0068864F /* GPUExternalTextureDescriptor.h */,
+ 1C8127AA2734D89E0068864F /* GPUExternalTextureDescriptor.idl */,
1C289580272F47B000B3E2B4 /* GPUFeatureName.h */,
1C28956D272F280800B3E2B4 /* GPUFeatureName.idl */,
1C8127872734C5F70068864F /* GPUIntegralTypes.h */,
@@ -19147,6 +19181,26 @@
1C8127712734B4130068864F /* GPUSupportedLimits.cpp */,
1C289563272E6F8A00B3E2B4 /* GPUSupportedLimits.h */,
1C289560272E6CCA00B3E2B4 /* GPUSupportedLimits.idl */,
+ 1C8127B12734D8A10068864F /* GPUTexture.cpp */,
+ 1C8127AC2734D89F0068864F /* GPUTexture.h */,
+ 1C81279E2734D8980068864F /* GPUTexture.idl */,
+ 1C8127A82734D89D0068864F /* GPUTextureAspect.h */,
+ 1C8127A42734D89B0068864F /* GPUTextureAspect.idl */,
+ 1C8127A22734D89A0068864F /* GPUTextureDescriptor.h */,
+ 1C8127A32734D89B0068864F /* GPUTextureDescriptor.idl */,
+ 1C81279D2734D8980068864F /* GPUTextureDimension.h */,
+ 1C8127AE2734D89F0068864F /* GPUTextureDimension.idl */,
+ 1C8127A02734D8990068864F /* GPUTextureFormat.h */,
+ 1C8127A72734D89C0068864F /* GPUTextureFormat.idl */,
+ 1C8127992734D8960068864F /* GPUTextureUsage.h */,
+ 1C8127A92734D89D0068864F /* GPUTextureUsage.idl */,
+ 1CA4FC4C2734DEC20027FD5A /* GPUTextureView.cpp */,
+ 1C81279C2734D8970068864F /* GPUTextureView.h */,
+ 1C81279F2734D8990068864F /* GPUTextureView.idl */,
+ 1C8127AD2734D89F0068864F /* GPUTextureViewDescriptor.h */,
+ 1C8127B22734D8A10068864F /* GPUTextureViewDescriptor.idl */,
+ 1C8127A62734D89C0068864F /* GPUTextureViewDimension.h */,
+ 1C8127AB2734D89E0068864F /* GPUTextureViewDimension.idl */,
1C28956A272F277E00B3E2B4 /* NavigatorGPU.idl */,
);
path = WebGPU;
Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (285377 => 285378)
--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2021-11-06 21:08:52 UTC (rev 285377)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2021-11-06 21:50:45 UTC (rev 285378)
@@ -131,9 +131,13 @@
macro(GPUBuffer) \
macro(GPUBufferUsage) \
macro(GPUDevice) \
+ macro(GPUExternalTexture) \
macro(GPUMapMode) \
macro(GPUSupportedFeatures) \
macro(GPUSupportedLimits) \
+ macro(GPUTexture) \
+ macro(GPUTextureUsage) \
+ macro(GPUTextureView) \
macro(Gamepad) \
macro(GamepadButton) \
macro(GamepadEvent) \