Skip to content

Commit 6e050f0

Browse files
[WebGPU, Dawn]: Upgrade Dawn version and added unorm texture type for WebGPU
1 parent 3474816 commit 6e050f0

10 files changed

Lines changed: 108 additions & 101 deletions

File tree

BuildTools/CMake/BuildUtils.cmake

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -466,24 +466,29 @@ function(add_format_validation_target MODULE_NAME MODULE_ROOT_PATH IDE_FOLDER)
466466

467467
endfunction()
468468

469-
# FetchContent's GIT_SHALLOW option is buggy and does not actually do a shallow
470-
# clone. This macro takes care of it.
471-
macro(FetchContent_DeclareShallowGit Name GIT_REPOSITORY GitRepository GIT_TAG GitTag)
469+
# The GIT_SHALLOW option in FetchContent is buggy and does not actually perform
470+
# a shallow clone. This macro fixes that. Also, we do not want to clone all
471+
# submodules to reduce download time, therefore we add an option GIT_SUBMODULES
472+
# to specify which submodules should be cloned (if any).
473+
macro(FetchContent_DeclareShallowGit Name GIT_REPOSITORY GitRepository GIT_TAG GitTag GIT_SUBMODULES GitSubmodules)
472474
include(FetchContent)
473-
FetchContent_Declare(
474-
"${Name}"
475475

476-
# This is what it'd look like if GIT_SHALLOW was indeed working:
477-
#GIT_REPOSITORY "${GitRepository}"
478-
#GIT_TAG "${GitTag}"
479-
#GIT_SHALLOW ON
476+
# This is what it'd look like if GIT_SHALLOW was indeed working:
477+
#GIT_REPOSITORY "${GitRepository}"
478+
#GIT_TAG "${GitTag}"
479+
#GIT_SHALLOW ON
480+
#GIT_SUBMODULES "${GitSubmodules}"
480481

481-
# Manual download mode instead:
482+
# Manual download mode instead:
483+
FetchContent_Declare(
484+
${Name}
482485
DOWNLOAD_COMMAND
483486
cd "${FETCHCONTENT_BASE_DIR}/${Name}-src" &&
484487
git init &&
485-
git fetch --depth=1 "${GitRepository}" "${GitTag}" &&
486-
git reset --hard FETCH_HEAD
488+
git remote add origin "${GitRepository}" &&
489+
git fetch --depth=1 origin "${GitTag}" &&
490+
git checkout FETCH_HEAD &&
491+
git submodule update --init --recursive --depth=1 ${GitSubmodules}
487492
)
488493
endmacro()
489494

Graphics/GraphicsEngineWebGPU/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,11 @@ PRIVATE
179179
)
180180

181181
if (PLATFORM_WEB)
182-
target_link_options(Diligent-GraphicsEngineWebGPU-static PUBLIC "SHELL: -s USE_WEBGPU=1 -s USE_PTHREADS=1")
182+
target_link_options(Diligent-GraphicsEngineWebGPU-static PUBLIC "SHELL: --use-port=emdawnwebgpu -s USE_PTHREADS=1")
183+
target_compile_options(Diligent-GraphicsEngineWebGPU-static PUBLIC "--use-port=emdawnwebgpu")
184+
add_compile_options(
185+
-I${EMSCRIPTEN_ROOT_PATH}/cache/ports/emdawnwebgpu/emdawnwebgpu_pkg/webgpu/include
186+
)
183187
endif()
184188

185189
target_compile_definitions(Diligent-GraphicsEngineWebGPU-shared PUBLIC DILIGENT_WEBGPU_SHARED=1)

Graphics/GraphicsEngineWebGPU/include/WebGPUStubs.hpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,5 @@
2929
#if PLATFORM_WEB
3030

3131
inline constexpr WGPUFeatureName WGPUFeatureName_ChromiumExperimentalTimestampQueryInsidePasses = static_cast<WGPUFeatureName>(0x000003EE);
32-
inline constexpr WGPUFeatureName WGPUFeatureName_Unorm16TextureFormats = static_cast<WGPUFeatureName>(0x000003FB);
33-
inline constexpr WGPUFeatureName WGPUFeatureName_Snorm16TextureFormats = static_cast<WGPUFeatureName>(0x000003FC);
34-
35-
inline constexpr WGPUTextureFormat WGPUTextureFormat_R16Unorm = static_cast<WGPUTextureFormat>(0x00000060);
36-
inline constexpr WGPUTextureFormat WGPUTextureFormat_R16Snorm = static_cast<WGPUTextureFormat>(0x00000063);
37-
inline constexpr WGPUTextureFormat WGPUTextureFormat_RG16Unorm = static_cast<WGPUTextureFormat>(0x00000061);
38-
inline constexpr WGPUTextureFormat WGPUTextureFormat_RG16Snorm = static_cast<WGPUTextureFormat>(0x00000064);
39-
inline constexpr WGPUTextureFormat WGPUTextureFormat_RGBA16Unorm = static_cast<WGPUTextureFormat>(0x00000062);
40-
inline constexpr WGPUTextureFormat WGPUTextureFormat_RGBA16Snorm = static_cast<WGPUTextureFormat>(0x00000065);
41-
42-
inline constexpr WGPUSurfaceGetCurrentTextureStatus WGPUSurfaceGetCurrentTextureStatus_Error = static_cast<WGPUSurfaceGetCurrentTextureStatus>(0x00000007);
4332

4433
#endif

Graphics/GraphicsEngineWebGPU/include/pch.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,8 @@
3939

4040
using WGPUOptionalBool = bool;
4141
using WGPUShaderSourceWGSL = WGPUShaderModuleWGSLDescriptor;
42-
using WGPUStringView = const char*;
4342
using WGPUSurfaceSourceCanvasHTMLSelector_Emscripten = WGPUSurfaceDescriptorFromCanvasHTMLSelector;
4443

45-
constexpr bool WGPUOptionalBool_True = true;
46-
constexpr bool WGPUOptionalBool_False = false;
4744

4845
constexpr WGPUSType WGPUSType_ShaderSourceWGSL = WGPUSType_ShaderModuleWGSLDescriptor;
4946
constexpr WGPUSType WGPUSType_SurfaceSourceCanvasHTMLSelector_Emscripten = WGPUSType_SurfaceDescriptorFromCanvasHTMLSelector;

Graphics/ShaderTools/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@ if(ENABLE_WGSL)
198198
libtint
199199
# We include this library because when building for Emscripten, libtint does not include this library in the dependency list
200200
tint_lang_wgsl_inspector
201-
)
201+
)
202+
target_compile_options(Diligent-ShaderTools PRIVATE -std=c++20)
202203
endif()
203204

204205
set(HLSL_DEFINITIONS include/HLSLDefinitions.fxh)

Graphics/ShaderTools/src/WGSLShaderResources.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,8 @@ TEXTURE_FORMAT TintTexelFormatToTextureFormat(const tint::inspector::ResourceBin
267267
case TintTexelFormat::kRgba16Uint: return TEX_FORMAT_RGBA16_UINT;
268268
case TintTexelFormat::kRgba16Sint: return TEX_FORMAT_RGBA16_SINT;
269269
case TintTexelFormat::kRgba16Float: return TEX_FORMAT_RGBA16_FLOAT;
270+
case TintTexelFormat::kRgba16Unorm: return TEX_FORMAT_RGBA16_UNORM;
271+
case TintTexelFormat::kRgba16Snorm: return TEX_FORMAT_RGBA16_SNORM;
270272
case TintTexelFormat::kR32Uint: return TEX_FORMAT_R32_UINT;
271273
case TintTexelFormat::kR32Sint: return TEX_FORMAT_R32_SINT;
272274
case TintTexelFormat::kR32Float: return TEX_FORMAT_R32_FLOAT;
@@ -277,6 +279,23 @@ TEXTURE_FORMAT TintTexelFormatToTextureFormat(const tint::inspector::ResourceBin
277279
case TintTexelFormat::kRgba32Sint: return TEX_FORMAT_RGBA32_SINT;
278280
case TintTexelFormat::kRgba32Float: return TEX_FORMAT_RGBA32_FLOAT;
279281
case TintTexelFormat::kR8Unorm: return TEX_FORMAT_R8_UNORM;
282+
case TintTexelFormat::kR8Snorm: return TEX_FORMAT_R8_SNORM;
283+
case TintTexelFormat::kR8Uint: return TEX_FORMAT_R8_UINT;
284+
case TintTexelFormat::kR8Sint: return TEX_FORMAT_R8_SINT;
285+
case TintTexelFormat::kRg8Unorm: return TEX_FORMAT_RG8_UNORM;
286+
case TintTexelFormat::kRg8Snorm: return TEX_FORMAT_RG8_SNORM;
287+
case TintTexelFormat::kRg8Uint: return TEX_FORMAT_RG8_UINT;
288+
case TintTexelFormat::kRg8Sint: return TEX_FORMAT_RG8_SINT;
289+
case TintTexelFormat::kR16Uint: return TEX_FORMAT_R16_UINT;
290+
case TintTexelFormat::kR16Sint: return TEX_FORMAT_R16_SINT;
291+
case TintTexelFormat::kR16Float: return TEX_FORMAT_R16_FLOAT;
292+
case TintTexelFormat::kR16Unorm: return TEX_FORMAT_R16_UNORM;
293+
case TintTexelFormat::kR16Snorm: return TEX_FORMAT_R16_SNORM;
294+
case TintTexelFormat::kRg16Uint: return TEX_FORMAT_RG16_UINT;
295+
case TintTexelFormat::kRg16Sint: return TEX_FORMAT_RG16_SINT;
296+
case TintTexelFormat::kRg16Float: return TEX_FORMAT_RG16_FLOAT;
297+
case TintTexelFormat::kRg16Unorm: return TEX_FORMAT_RG16_UNORM;
298+
case TintTexelFormat::kRg16Snorm: return TEX_FORMAT_RG16_SNORM;
280299
case TintTexelFormat::kNone: return TEX_FORMAT_UNKNOWN;
281300
// clang-format on
282301
default:

Graphics/ShaderTools/src/WGSLUtils.cpp

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
#include "DebugUtilities.hpp"
2929
#include "ParsingTools.hpp"
3030
#include "ShaderToolsCommon.hpp"
31+
#include "src/tint/lang/core/ir/transform/multiplanar_options.h"
32+
#include "src/tint/lang/wgsl/inspector/inspector.h"
33+
#include "src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.h"
3134

3235
#ifdef _MSC_VER
3336
# pragma warning(push)
@@ -44,7 +47,8 @@
4447
#include "src/tint/lang/core/type/atomic.h"
4548
#include "src/tint/lang/core/type/array.h"
4649
#include "src/tint/lang/core/type/struct.h"
47-
50+
#include "src/tint/lang/core/ir/transform/binding_remapper.h"
51+
#include "src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.h"
4852

4953
#ifdef _MSC_VER
5054
# pragma warning(pop)
@@ -92,22 +96,24 @@ WGSLEmulatedResourceArrayElement GetWGSLEmulatedArrayElement(const std::string&
9296
std::string ConvertSPIRVtoWGSL(const std::vector<uint32_t>& SPIRV)
9397
{
9498
tint::spirv::reader::Options SPIRVReaderOptions{true, {tint::wgsl::AllowedFeatures::Everything()}};
95-
tint::Program Program = Read(SPIRV, SPIRVReaderOptions);
9699

97-
if (!Program.IsValid())
100+
auto Module = tint::spirv::reader::ReadIR(SPIRV, SPIRVReaderOptions);
101+
if (Module != tint::Success)
98102
{
99-
LOG_ERROR_MESSAGE("Tint SPIR-V reader failure:\nParser: " + Program.Diagnostics().Str() + "\n");
103+
LOG_ERROR_MESSAGE("Tint SPIR-V reader failure:\nParser: " + Module .Failure().reason + "\n");
100104
return {};
101105
}
106+
tint::wgsl::writer::Options WGSLWriterOptions{};
107+
WGSLWriterOptions.allow_non_uniform_derivatives = true;
108+
WGSLWriterOptions.allowed_features = tint::wgsl::AllowedFeatures::Everything();
102109

103-
auto GenerationResult = tint::wgsl::writer::Generate(Program, {});
110+
auto GenerationResult = tint::wgsl::writer::WgslFromIR(Module.Get(), WGSLWriterOptions);
104111
if (GenerationResult != tint::Success)
105112
{
106-
LOG_ERROR_MESSAGE("Tint WGSL writer failure:\nGeneate: " + GenerationResult.Failure().reason.Str() + "\n");
113+
LOG_ERROR_MESSAGE("Tint WGSL writer failure:\nGeneate: " + GenerationResult.Failure().reason + "\n");
107114
return {};
108115
}
109-
110-
return GenerationResult->wgsl;
116+
return GenerationResult.Get().wgsl;
111117
}
112118

113119
static bool IsAtomic(const tint::core::type::Type* WGSLType)
@@ -271,17 +277,16 @@ std::string RemapWGSLResourceBindings(const std::string& WGSL,
271277
const WGSLResourceMapping& ResMapping,
272278
const char* EmulatedArrayIndexSuffix)
273279
{
274-
tint::Source::File srcFile("", WGSL);
275-
tint::Program Program = tint::wgsl::reader::Parse(&srcFile, {tint::wgsl::AllowedFeatures::Everything()});
280+
tint::Source::File SrcFile("", WGSL);
281+
tint::Program Program = tint::wgsl::reader::Parse(&SrcFile, {tint::wgsl::AllowedFeatures::Everything()});
276282

277283
if (!Program.IsValid())
278284
{
279285
LOG_ERROR_MESSAGE("Tint WGSL reader failure:\nParser: ", Program.Diagnostics().Str(), "\n");
280286
return {};
281287
}
282288

283-
tint::ast::transform::BindingRemapper::BindingPoints BindingPoints;
284-
289+
std::unordered_map<tint::BindingPoint, tint::BindingPoint> BindingPoints;
285290
tint::inspector::Inspector Inspector{Program};
286291
for (tint::inspector::EntryPoint& EntryPoint : Inspector.GetEntryPoints())
287292
{
@@ -311,28 +316,34 @@ std::string RemapWGSLResourceBindings(const std::string& WGSL,
311316
if (DstBindigIt != ResMapping.end())
312317
{
313318
const WGSLResourceBindingInfo& DstBindig = DstBindigIt->second;
314-
BindingPoints.emplace(tint::ast::transform::BindingPoint{Binding.bind_group, Binding.binding}, tint::ast::transform::BindingPoint{DstBindig.Group, DstBindig.Index + ArrayIndex});
319+
BindingPoints.emplace(tint::BindingPoint{Binding.bind_group, Binding.binding}, tint::BindingPoint{DstBindig.Group, DstBindig.Index + ArrayIndex});
315320
}
316321
else
317322
{
318323
LOG_ERROR_MESSAGE("Binding for variable '", Binding.variable_name, "' is not found in the remap indices");
319324
}
320325
}
321326
}
327+
328+
auto Module = tint::wgsl::reader::ProgramToIR(Program);
329+
if (Module != tint::Success)
330+
{
331+
LOG_ERROR_MESSAGE("Tint WGSL to IR failure:\nParser: ", Module.Failure().reason, "\n");
332+
return {};
333+
}
334+
335+
if (auto Result = tint::core::ir::transform::BindingRemapper(Module.Get(), BindingPoints); Result != tint::Success)
336+
{
337+
LOG_ERROR_MESSAGE("Tint BindingRemapper failure:\nParser: ", Result.Failure().reason, "\n");
338+
return {};
339+
}
322340

323-
tint::ast::transform::Manager Manager;
324-
tint::ast::transform::DataMap Inputs;
325-
tint::ast::transform::DataMap Outputs;
326-
327-
Inputs.Add<tint::ast::transform::BindingRemapper::Remappings>(BindingPoints, tint::ast::transform::BindingRemapper::AccessControls{}, false);
328-
Manager.Add<tint::ast::transform::BindingRemapper>();
329-
tint::ast::transform::Output TransformResult = Manager.Run(Program, Inputs, Outputs);
330-
331-
auto GenerationResult = tint::wgsl::writer::Generate(TransformResult.program, {});
341+
tint::Program RemapedProgram = tint::wgsl::writer::IRToProgram(Module.Get());
342+
auto GenerationResult = tint::wgsl::writer::Generate(RemapedProgram, {});
332343

333344
if (GenerationResult != tint::Success)
334345
{
335-
LOG_ERROR_MESSAGE("Tint WGSL writer failure:\nGeneate: ", GenerationResult.Failure().reason.Str(), "\n");
346+
LOG_ERROR_MESSAGE("Tint WGSL writer failure:\nGeneate: ", GenerationResult.Failure().reason, "\n");
336347
return {};
337348
}
338349

ThirdParty/CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ if (VULKAN_SUPPORTED AND (PLATFORM_WIN32 OR PLATFORM_LINUX OR PLATFORM_MACOS OR
158158
endif()
159159

160160
if (WEBGPU_SUPPORTED)
161-
add_subdirectory(abseil-cpp EXCLUDE_FROM_ALL)
162-
set_directory_root_folder("abseil-cpp" "DiligentCore/ThirdParty")
161+
#add_subdirectory(abseil-cpp EXCLUDE_FROM_ALL)
162+
#set_directory_root_folder("abseil-cpp" "DiligentCore/ThirdParty")
163163

164164
add_subdirectory(dawn EXCLUDE_FROM_ALL)
165165
set_directory_root_folder("dawn" "DiligentCore/ThirdParty/dawn")
@@ -184,10 +184,10 @@ if ((${DILIGENT_BUILD_GOOGLE_TEST}) AND (NOT TARGET gtest))
184184
get_target_property(GTEST_SOURCE_DIR gtest SOURCE_DIR)
185185
install(FILES "googletest/LICENSE" DESTINATION "Licenses/ThirdParty/${DILIGENT_CORE_DIR}" RENAME googletest-License.txt)
186186

187-
if (PLATFORM_WEB)
188-
find_targets_in_directory(GTEST_TARGETS ${GTEST_SOURCE_DIR})
189-
set_targets_emscripten_properties(${GTEST_TARGETS})
190-
endif()
187+
#if (PLATFORM_WEB)
188+
# find_targets_in_directory(GTEST_TARGETS ${GTEST_SOURCE_DIR})
189+
# set_targets_emscripten_properties(${GTEST_TARGETS})
190+
#endif()
191191
endif()
192192

193193
if (NOT TARGET xxHash::xxhash)

ThirdParty/abseil-cpp/CMakeLists.txt

Lines changed: 0 additions & 16 deletions
This file was deleted.

ThirdParty/dawn/CMakeLists.txt

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,21 @@
11
cmake_minimum_required (VERSION 3.11)
22

3-
find_package(Python3 REQUIRED)
4-
5-
set(JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install --upgrade jinja2>=3.0)
6-
7-
if(${Python3_VERSION} VERSION_GREATER_EQUAL "3.12")
8-
set(JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system-packages)
9-
endif()
10-
11-
execute_process(COMMAND ${JINJA2_INSTALL_CMD}
12-
RESULT_VARIABLE PYTHON_PIP_JINJIA_RESULT)
13-
if(NOT PYTHON_PIP_JINJIA_RESULT EQUAL "0")
14-
message(FATAL_ERROR "Command '${JINJA2_INSTALL_CMD}' failed with error code ${PYTHON_PIP_JINJIA_RESULT}")
15-
endif()
3+
set(DAWN_SUBMODULES
4+
third_party/abseil-cpp
5+
third_party/jinja2
6+
third_party/markupsafe
7+
third_party/protobuf
8+
third_party/webgpu-headers
9+
)
1610

1711
FetchContent_DeclareShallowGit(
1812
dawn
1913
GIT_REPOSITORY https://dawn.googlesource.com/dawn
20-
GIT_TAG db55f595741106be83b823a02ebdc58efbe997f1
14+
GIT_TAG 042e54a9f93e6d2fed503aabe68003dff1705805
15+
GIT_SUBMODULES "${DAWN_SUBMODULES}"
2116
)
2217

23-
set(CMAKE_CXX_STANDARD 17)
18+
set(CMAKE_CXX_STANDARD 20)
2419
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2520
set(CMAKE_CXX_EXTENSIONS OFF)
2621

@@ -29,10 +24,10 @@ if (PLATFORM_WEB)
2924
else()
3025
set(TINT_BUILD_AS_OTHER_OS OFF CACHE BOOL "" FORCE)
3126
endif()
32-
set(TINT_BUILD_SPV_READER ON CACHE BOOL "" FORCE)
33-
set(TINT_BUILD_WGSL_WRITER ON CACHE BOOL "" FORCE)
34-
set(TINT_BUILD_WGSL_READER ON CACHE BOOL "" FORCE)
35-
set(TINT_BUILD_IR ON CACHE BOOL "" FORCE)
27+
set(TINT_BUILD_SPV_READER ON CACHE BOOL "" FORCE)
28+
set(TINT_BUILD_WGSL_WRITER ON CACHE BOOL "" FORCE)
29+
set(TINT_BUILD_WGSL_READER ON CACHE BOOL "" FORCE)
30+
set(TINT_BUILD_IR_BINARY ON CACHE BOOL "" FORCE)
3631
if (PLATFORM_WEB)
3732
set(TINT_BUILD_HLSL_WRITER OFF CACHE BOOL "" FORCE)
3833
else()
@@ -50,14 +45,14 @@ set(TINT_BUILD_DOCS OFF CACHE BOOL "" FORCE)
5045
set(TINT_BUILD_TESTS OFF CACHE BOOL "" FORCE)
5146

5247
set(DAWN_BUILD_SAMPLES OFF CACHE BOOL "" FORCE)
48+
set(DAWN_BUILD_TESTS OFF CACHE BOOL "" FORCE)
5349
set(DAWN_USE_X11 OFF CACHE BOOL "" FORCE)
5450
set(DAWN_USE_WAYLAND OFF CACHE BOOL "" FORCE)
5551

5652
set(DAWN_ENABLE_VULKAN OFF CACHE BOOL "" FORCE)
5753
set(DAWN_ENABLE_D3D11 OFF CACHE BOOL "" FORCE)
5854
set(DAWN_ENABLE_DESKTOP_GL OFF CACHE BOOL "" FORCE)
5955
set(DAWN_ENABLE_OPENGLES OFF CACHE BOOL "" FORCE)
60-
set(DAWN_BUILD_TESTS OFF CACHE BOOL "" FORCE)
6156
# Dawn's CMake defines DAWN_EMSCRIPTEN_TOOLCHAIN through the option command, which
6257
# sets its default value to OFF instead of ""
6358
set(DAWN_EMSCRIPTEN_TOOLCHAIN "" CACHE STRING "" FORCE)
@@ -67,16 +62,18 @@ else()
6762
set(DAWN_ENABLE_D3D12 ON CACHE BOOL "" FORCE)
6863
endif()
6964

70-
set(DAWN_USE_GLFW OFF CACHE BOOL "" FORCE)
71-
set(DAWN_ENABLE_NULL OFF CACHE BOOL "" FORCE)
72-
set(DAWN_USE_WINDOWS_UI OFF CACHE BOOL "" FORCE)
73-
set(DAWN_ENABLE_SPIRV_VALIDATION OFF CACHE BOOL "" FORCE)
65+
set(DAWN_USE_GLFW OFF CACHE BOOL "" FORCE)
66+
set(DAWN_ENABLE_NULL OFF CACHE BOOL "" FORCE)
67+
set(DAWN_USE_WINDOWS_UI OFF CACHE BOOL "" FORCE)
68+
set(DAWN_ENABLE_SPIRV_VALIDATION OFF CACHE BOOL "" FORCE)
69+
set(DAWN_BUILD_MONOLITHIC_LIBRARY OFF CACHE STRING "" FORCE)
7470

75-
set(DAWN_SPIRV_TOOLS_DIR "${spirv-tools_SOURCE_DIR}" CACHE STRING "Directory in which to find SPIRV-Tools" FORCE)
76-
set(DAWN_SPIRV_HEADERS_DIR "${SPIRV-Headers_SOURCE_DIR}" CACHE STRING "Directory in which to find SPIRV-Headers" FORCE)
77-
set(DAWN_ABSEIL_DIR "${abseil-cpp_SOURCE_DIR}" CACHE STRING "Directory in which to find Abseil" FORCE)
71+
set(DAWN_SPIRV_TOOLS_DIR "${spirv-tools_SOURCE_DIR}" CACHE STRING "Directory in which to find SPIRV-Tools" FORCE)
72+
set(DAWN_SPIRV_HEADERS_DIR "${SPIRV-Headers_SOURCE_DIR}" CACHE STRING "Directory in which to find SPIRV-Headers" FORCE)
73+
set(DAWN_GOOGLETEST_DIR "${GTEST_SOURCE_DIR}" CACHE STRING "Directory in which to find GoogleTest" FORCE)
7874

79-
set(BUILD_SHARED_LIBS OFF)
75+
set(BUILD_SAMPLES OFF CACHE BOOL "")
76+
set(BUILD_SHARED_LIBS OFF CACHE BOOL "")
8077

8178
FetchContent_MakeAvailable(dawn)
8279

0 commit comments

Comments
 (0)