diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml index ae7efb2ebe..a409d0f746 100644 --- a/.github/workflows/presubmit.yml +++ b/.github/workflows/presubmit.yml @@ -106,13 +106,13 @@ jobs: name: presubmit-renderdiff-result path: ./out/renderdiff_tests - validate-wgsl-pipeline: - name: validate-wgsl-pipeline - runs-on: ubuntu-22.04-4core + validate-wgsl-webgpu: + name: validate-wgsl-webgpu + runs-on: ubuntu-22.04-8core steps: - uses: actions/checkout@v4.1.6 - name: Run build script - run: source ./build/linux/ci-common.sh && ./build.sh -W debug test_filamat + run: source ./build/linux/ci-common.sh && ./build.sh -W debug test_filamat filament - name: Run test run: ./out/cmake-debug/libs/filamat/test_filamat --gtest_filter=MaterialCompiler.Wgsl* \ No newline at end of file diff --git a/build/linux/ci-common.sh b/build/linux/ci-common.sh index c03ed4eeee..7d88065205 100755 --- a/build/linux/ci-common.sh +++ b/build/linux/ci-common.sh @@ -31,7 +31,7 @@ if [[ "$GITHUB_WORKFLOW" ]]; then sudo apt-get install mesa-common-dev libxi-dev libxxf86vm-dev # For dawn - sudo apt-get install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev + sudo apt-get install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libx11-xcb-dev sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${GITHUB_CLANG_VERSION} 100 sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${GITHUB_CLANG_VERSION} 100 diff --git a/filament/backend/src/PlatformFactory.cpp b/filament/backend/src/PlatformFactory.cpp index bb48a7f778..c12feabbdc 100644 --- a/filament/backend/src/PlatformFactory.cpp +++ b/filament/backend/src/PlatformFactory.cpp @@ -19,6 +19,11 @@ #include #include +// We need to keep this up top for the linux (X11) name collisions. +#if defined(FILAMENT_SUPPORTS_WEBGPU) + #include "backend/platforms/WebGPUPlatform.h" +#endif + #if defined(__ANDROID__) #include #if defined(FILAMENT_SUPPORTS_OPENGL) && !defined(FILAMENT_USE_EXTERNAL_GLES3) @@ -69,9 +74,6 @@ filament::backend::Platform* createDefaultMetalPlatform(); #endif #include "noop/PlatformNoop.h" -#if defined(FILAMENT_SUPPORTS_WEBGPU) - #include "backend/platforms/WebGPUPlatform.h" -#endif namespace filament::backend { diff --git a/filament/backend/src/webgpu/platform/WebGPUPlatformLinux.cpp b/filament/backend/src/webgpu/platform/WebGPUPlatformLinux.cpp index 16623891c9..00d1651e26 100644 --- a/filament/backend/src/webgpu/platform/WebGPUPlatformLinux.cpp +++ b/filament/backend/src/webgpu/platform/WebGPUPlatformLinux.cpp @@ -15,6 +15,8 @@ */ #include +#include + #include #include @@ -118,7 +120,9 @@ wgpu::Surface WebGPUPlatform::createSurface(void* nativeWindow, uint64_t flags) if (useXcb) { wgpu::SurfaceSourceXCBWindow surfaceSourceXcb{}; surfaceSourceXcb.connection = g_x11.connection; - surfaceSourceXcb.window = reinterpret_cast(nativeWindow); + + // TODO: this looks really wrong, please fix!! + surfaceSourceXcb.window = *((uint32_t*) nativeWindow); wgpu::SurfaceDescriptor surfaceDescriptor{ .nextInChain = &surfaceSourceXcb, .label = "linux_xcb_surface"