Skip to content

Commit 79fff0e

Browse files
[WebGPU, Dawn]: Enable WebGPU shader serialization on Linux
1 parent 5faa527 commit 79fff0e

7 files changed

Lines changed: 21 additions & 1 deletion

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ elseif(PLATFORM_ANDROID)
197197
elseif(PLATFORM_LINUX)
198198
set(GL_SUPPORTED TRUE CACHE INTERNAL "OpenGL is supported on Linux platform")
199199
set(VULKAN_SUPPORTED TRUE CACHE INTERNAL "Vulkan is supported on Linux platform")
200+
set(WEBGPU_SUPPORTED TRUE CACHE INTERNAL "WebGPU is supported on Linux platform via Dawn")
200201
set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Linux platform")
201202
target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_LINUX=1)
202203
elseif(PLATFORM_MACOS)

Graphics/GraphicsEngineWebGPU/include/pch.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
#pragma once
3333

3434
#include <string>
35+
#include <cstring>
36+
#include <algorithm>
3537

3638
#include <webgpu/webgpu.h>
3739

Graphics/ShaderTools/include/WGSLShaderResources.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
#include <memory>
3939
#include <string>
40+
#include <cstdint>
4041

4142
#include "Shader.h"
4243
#include "PipelineState.h"

Graphics/ShaderTools/include/WGSLUtils.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
#pragma once
2828

29+
#include <cstdint>
2930
#include <string>
3031
#include <vector>
3132
#include <unordered_map>

Graphics/ShaderTools/src/WGSLShaderResources.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
*/
2626

2727
#include "WGSLShaderResources.hpp"
28+
29+
#include <algorithm>
30+
#include <cstring>
31+
2832
#include "Align.hpp"
2933
#include "StringPool.hpp"
3034
#include "WGSLUtils.hpp"

Graphics/ShaderTools/src/WGSLUtils.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
*/
2626

2727
#include "WGSLUtils.hpp"
28+
29+
#include <algorithm>
30+
#include <cstring>
31+
2832
#include "DebugUtilities.hpp"
2933
#include "ParsingTools.hpp"
3034
#include "ShaderToolsCommon.hpp"

ThirdParty/dawn/CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,17 @@ elseif(PLATFORM_MACOS)
6262
elseif(PLATFORM_WIN32)
6363
set(DAWN_ENABLE_D3D12 ON CACHE BOOL "" FORCE)
6464
set(TINT_BUILD_HLSL_WRITER ON CACHE BOOL "" FORCE)
65+
elseif(PLATFORM_LINUX)
66+
# Null device (serialization-only). dawn_native still references tint::Bindings, which Tint defines
67+
# only when a backend writer is built — enable the HLSL writer (pure Tint, same as Windows).
68+
set(DAWN_ENABLE_NULL ON CACHE BOOL "" FORCE)
69+
set(TINT_BUILD_HLSL_WRITER ON CACHE BOOL "" FORCE)
6570
endif()
6671

6772
set(DAWN_USE_GLFW OFF CACHE BOOL "" FORCE)
68-
set(DAWN_ENABLE_NULL OFF CACHE BOOL "" FORCE)
73+
if(NOT PLATFORM_LINUX)
74+
set(DAWN_ENABLE_NULL OFF CACHE BOOL "" FORCE)
75+
endif()
6976
set(DAWN_USE_WINDOWS_UI OFF CACHE BOOL "" FORCE)
7077
set(DAWN_ENABLE_SPIRV_VALIDATION OFF CACHE BOOL "" FORCE)
7178
set(DAWN_BUILD_MONOLITHIC_LIBRARY OFF CACHE STRING "" FORCE)

0 commit comments

Comments
 (0)