Fix dawn.json for upstream webgpu-headers

- Add disabled_tags 'dawn' to webgpu_headers_gen
- Rename WGPUSurfaceDescriptorFromXlib to sync with upstream
- Other sync with upstream: surface wayland and android enums

Bug: dawn:269
Change-Id: I5ca5c5362c54018f9d217af6a6ab4e3e84a5d780
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/83000
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
This commit is contained in:
Shrek Shao 2022-03-08 20:56:10 +00:00 committed by Dawn LUCI CQ
parent bdf24fb20d
commit 1554a7d8f9
5 changed files with 35 additions and 18 deletions

View File

@ -99,7 +99,6 @@
]
},
{
"tags": ["dawn"],
"name": "enumerate features",
"returns": "size_t",
"args": [
@ -1084,7 +1083,6 @@
]
},
{
"tags": ["dawn"],
"name": "has feature",
"returns": "bool",
"args": [
@ -1092,7 +1090,6 @@
]
},
{
"tags": ["dawn"],
"name": "enumerate features",
"returns": "size_t",
"args": [
@ -2306,6 +2303,14 @@
{"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true}
]
},
"surface descriptor from android native window": {
"category": "structure",
"chained": "in",
"tags": ["native"],
"members": [
{"name": "window", "type": "void", "annotation": "*"}
]
},
"surface descriptor from canvas HTML selector": {
"category": "structure",
"chained": "in",
@ -2330,7 +2335,7 @@
{"name": "hwnd", "type": "void", "annotation": "*"}
]
},
"surface descriptor from xlib window": {
"surface descriptor from xlib": {
"category": "structure",
"chained": "in",
"tags": ["native"],
@ -2339,6 +2344,15 @@
{"name": "window", "type": "uint32_t"}
]
},
"surface descriptor from wayland surface": {
"category": "structure",
"chained": "in",
"tags": ["native"],
"members": [
{"name": "display", "type": "void", "annotation": "*"},
{"name": "surface", "type": "void", "annotation": "*"}
]
},
"surface descriptor from windows core window": {
"category": "structure",
"chained": "in",
@ -2392,15 +2406,17 @@
{"value": 0, "name": "invalid", "valid": false},
{"value": 1, "name": "surface descriptor from metal layer", "tags": ["native"]},
{"value": 2, "name": "surface descriptor from windows HWND", "tags": ["native"]},
{"value": 3, "name": "surface descriptor from xlib window", "tags": ["native"]},
{"value": 3, "name": "surface descriptor from xlib", "tags": ["native"]},
{"value": 4, "name": "surface descriptor from canvas HTML selector"},
{"value": 5, "name": "shader module SPIRV descriptor"},
{"value": 6, "name": "shader module WGSL descriptor"},
{"value": 7, "name": "primitive depth clip control", "tags": ["upstream", "emscripten"]},
{"value": 8, "name": "surface descriptor from windows core window", "tags": ["dawn"]},
{"value": 9, "name": "external texture binding entry", "tags": ["dawn"]},
{"value": 10, "name": "external texture binding layout", "tags": ["dawn"]},
{"value": 11, "name": "surface descriptor from windows swap chain panel", "tags": ["dawn"]},
{"value": 8, "name": "surface descriptor from wayland surface", "tags": ["native"]},
{"value": 9, "name": "surface descriptor from android native window", "tags": ["native"]},
{"value": 10, "name": "surface descriptor from windows core window", "tags": ["dawn"]},
{"value": 11, "name": "external texture binding entry", "tags": ["dawn"]},
{"value": 12, "name": "external texture binding layout", "tags": ["dawn"]},
{"value": 13, "name": "surface descriptor from windows swap chain panel", "tags": ["dawn"]},
{"value": 1000, "name": "dawn texture internal usage descriptor", "tags": ["dawn"]},
{"value": 1001, "name": "primitive depth clamping state", "tags": ["dawn", "emscripten"]},
{"value": 1002, "name": "dawn toggles device descriptor", "tags": ["dawn", "native"]},

View File

@ -843,7 +843,8 @@ class MultiGeneratorFromDawnJSON(Generator):
if 'webgpu_headers' in targets:
params_upstream = parse_json(loaded_json,
enabled_tags=['upstream', 'native'])
enabled_tags=['upstream', 'native'],
disabled_tags=['dawn'])
renders.append(
FileRender('api.h', 'webgpu-headers/' + api + '.h',
[RENDER_PARAMS_BASE, params_upstream]))

View File

@ -69,7 +69,7 @@ namespace dawn::native {
wgpu::SType::SurfaceDescriptorFromWindowsHWND,
wgpu::SType::SurfaceDescriptorFromWindowsCoreWindow,
wgpu::SType::SurfaceDescriptorFromWindowsSwapChainPanel,
wgpu::SType::SurfaceDescriptorFromXlibWindow));
wgpu::SType::SurfaceDescriptorFromXlib));
#if defined(DAWN_ENABLE_BACKEND_METAL)
const SurfaceDescriptorFromMetalLayer* metalDesc = nullptr;
@ -116,7 +116,7 @@ namespace dawn::native {
#endif // defined(DAWN_PLATFORM_WINDOWS)
#if defined(DAWN_USE_X11)
const SurfaceDescriptorFromXlibWindow* xDesc = nullptr;
const SurfaceDescriptorFromXlib* xDesc = nullptr;
FindInChain(descriptor->nextInChain, &xDesc);
if (xDesc) {
// Check the validity of the window by calling a getter function on the window that
@ -146,7 +146,7 @@ namespace dawn::native {
const SurfaceDescriptorFromWindowsHWND* hwndDesc = nullptr;
const SurfaceDescriptorFromWindowsCoreWindow* coreWindowDesc = nullptr;
const SurfaceDescriptorFromWindowsSwapChainPanel* swapChainPanelDesc = nullptr;
const SurfaceDescriptorFromXlibWindow* xDesc = nullptr;
const SurfaceDescriptorFromXlib* xDesc = nullptr;
FindInChain(descriptor->nextInChain, &metalDesc);
FindInChain(descriptor->nextInChain, &hwndDesc);
FindInChain(descriptor->nextInChain, &coreWindowDesc);

View File

@ -181,12 +181,12 @@ TEST_F(WindowSurfaceInstanceTests, CorrectSTypeXlib) {
GLFWwindow* window = CreateWindow();
std::unique_ptr<wgpu::ChainedStruct> chainedDescriptor =
utils::SetupWindowAndGetSurfaceDescriptorForTesting(window);
ASSERT_EQ(chainedDescriptor->sType, wgpu::SType::SurfaceDescriptorFromXlibWindow);
ASSERT_EQ(chainedDescriptor->sType, wgpu::SType::SurfaceDescriptorFromXlib);
}
// Test with setting an invalid window
TEST_F(WindowSurfaceInstanceTests, InvalidXWindow) {
wgpu::SurfaceDescriptorFromXlibWindow chainedDescriptor;
wgpu::SurfaceDescriptorFromXlib chainedDescriptor;
chainedDescriptor.display = XOpenDisplay(nullptr);
// From the "X Window System Protocol" "X Version 11, Release 6.8" page 2 at
// https://www.x.org/releases/X11R7.5/doc/x11proto/proto.pdf
@ -203,7 +203,7 @@ TEST_F(WindowSurfaceInstanceTests, InvalidXWindow) {
// Test using Xlib when it is not supported
TEST_F(WindowSurfaceInstanceTests, XlibSurfacesAreInvalid) {
wgpu::SurfaceDescriptorFromXlibWindow chainedDescriptor;
wgpu::SurfaceDescriptorFromXlib chainedDescriptor;
chainedDescriptor.display = nullptr;
chainedDescriptor.window = 0;

View File

@ -71,8 +71,8 @@ namespace utils {
#elif defined(DAWN_USE_X11)
std::unique_ptr<wgpu::ChainedStruct> SetupWindowAndGetSurfaceDescriptorForTesting(
GLFWwindow* window) {
std::unique_ptr<wgpu::SurfaceDescriptorFromXlibWindow> desc =
std::make_unique<wgpu::SurfaceDescriptorFromXlibWindow>();
std::unique_ptr<wgpu::SurfaceDescriptorFromXlib> desc =
std::make_unique<wgpu::SurfaceDescriptorFromXlib>();
desc->display = glfwGetX11Display();
desc->window = glfwGetX11Window(window);
return std::move(desc);