Roll Dawn and add dependencies

Add Dawn's dependencies shaderc and glslang, and roll SPIRV. Update the
BUILD.gn files to match upstream changes.

Bug: skia:9939, chromium:1064563
Change-Id: Ie9720806efe823312da10f7911688f12cad0713e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/278770
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
This commit is contained in:
Sean Gilhuly 2020-03-30 13:23:00 -04:00 committed by Skia Commit-Bot
parent 8176508cc6
commit 695f57da6c
13 changed files with 935 additions and 230 deletions

12
DEPS
View File

@ -8,11 +8,13 @@ deps = {
"buildtools" : "https://chromium.googlesource.com/chromium/buildtools.git@505de88083136eefd056e5ee4ca0f01fe9b33de8",
"common" : "https://skia.googlesource.com/common.git@9737551d7a52c3db3262db5856e6bcd62c462b92",
"third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@1b2dd6f92a6ba4ac4738ae796692e4844bfd28c7",
# Dawn requires jinja2 and markupsafe for the code generator.
# Dawn requires jinja2 and markupsafe for the code generator, and glslang and shaderc for SPIRV compilation.
# When the Dawn revision is updated these should be updated from the Dawn DEPS as well.
"third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@604072bc2ed01018eb03bcbbf9d94042f679af63",
"third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@11652ff8f8b3c3104eb2627717fa652d432d5b84",
"third_party/externals/glslang" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang@1f0fcbe5a30fdc9632a8bff36277103fabf0797c",
"third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@b41863e42637544c2941b574c7877d3e1f663e25",
"third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@8f45f5cfa0009d2a70589bcda0349b8cb2b72783",
"third_party/externals/shaderc" : "https://chromium.googlesource.com/external/github.com/google/shaderc@362becca1ff2a841c21fd675ac3a9c1ee9bb5612",
"third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123",
"third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae",
"third_party/externals/expat" : "https://android.googlesource.com/platform/external/expat.git@e5aa0a2cb0a5f759ef31c0819dc67d9b14246a4a",
@ -32,9 +34,9 @@ deps = {
"third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406",
"third_party/externals/sdl" : "https://skia.googlesource.com/third_party/sdl@5d7cfcca344034aff9327f77fc181ae3754e7a90",
"third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974",
"third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@dffd33dd9d19c798ffecc10f50e551b42d282628",
"third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@29c11140baaf9f7fdaa39a583672c556bf1795a1",
"third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@0c4feb643b89d1792b02f7cbef315e9d95633bd7",
"third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@871c85d7f0edc6b613e3959bc51d13bfbc2fe2df",
"third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@f8bf11a0253a32375c32cad92c841237b96696c0",
"third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1c8bda3721e6b9302f694b58c26d32eff341b126",
"third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@1c29477aa06ea733994d1d11d6bf63ba27ac8359",
#"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4",
"third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs.git@4080840928c0b05a80cda0d14ac2e2615f679f1a",

View File

@ -0,0 +1,6 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
build_with_chromium = false

View File

@ -12,8 +12,9 @@
# skia/third_party/externals/jinja2 relative to skia/third_party/dawn/BUILD.gn
dawn_jinja2_dir = "../externals/jinja2"
# dawn_glfw_dir = "//third_party/glfw"
# dawn_googletest_dir = "//third_party/googletest"
# dawn_shaderc_dir = "//third_party/shaderc"
# dawn_spirv_tools_dir = "//third_party/SPIRV-Tools"
# dawn_spirv_cross_dir = "//third_party/spirv-cross"
dawn_shaderc_dir = "//third_party/shaderc"
dawn_spirv_tools_dir = "//third_party/spirv-tools"
dawn_spirv_cross_dir = "//third_party/spirv-cross"

View File

@ -0,0 +1,6 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
glslang_spirv_tools_dir = "//third_party/spirv-tools"

View File

@ -0,0 +1,11 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
shaderc_glslang_dir = "//third_party/glslang/"
shaderc_spirv_tools_dir = "//third_party/spirv-tools/"
shaderc_spirv_cross_dir = "//third_party/spirv-cross/"
shaderc_spirv_headers_dir = "//third_party/externals/spirv-headers/"
shaderc_enable_spvc_parser = false

View File

@ -0,0 +1,9 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
spirv_tools_standalone = false
spirv_tools_googletest_dir = "//third_party/googletest/src"
spirv_tools_spirv_headers_dir = "//third_party/spirv-headers"

View File

@ -13,7 +13,7 @@
'../../bin/fetch-clang-format',
'../../bin/fetch-gn',
'../../build/fuchsia',
'../../build_overrides/dawn.gni',
'../../build_overrides',
'../../buildtools',
'../../dm',
'../../docs/examples',

View File

@ -111,8 +111,8 @@ static_library("libdawn_native") {
":dawn_common",
":libdawn_native_headers",
":libdawn_native_utils_gen",
"//third_party/spirv-cross:spirv_cross",
"//third_party/spirv-tools:spvtools_val",
"${dawn_spirv_cross_dir}:spirv_cross",
"${dawn_spirv_tools_dir}:spvtools_val",
]
configs += [ ":libdawn_native_internal" ]
@ -123,193 +123,206 @@ static_library("libdawn_native") {
# libdawn_native target
public_deps = [
":dawn_platform",
"${dawn_shaderc_dir}:libshaderc_spvc_sources",
]
sources = rebase_path(get_target_outputs(":libdawn_native_utils_gen"),
".",
"$dawn_root")
sources += rebase_path([
"src/dawn_native/Adapter.cpp",
"src/dawn_native/Adapter.h",
"src/dawn_native/AttachmentState.cpp",
"src/dawn_native/AttachmentState.h",
"src/dawn_native/BackendConnection.cpp",
"src/dawn_native/BackendConnection.h",
"src/dawn_native/BindGroup.cpp",
"src/dawn_native/BindGroup.h",
"src/dawn_native/BindGroupLayout.cpp",
"src/dawn_native/BindGroupLayout.h",
"src/dawn_native/BuddyAllocator.cpp",
"src/dawn_native/BuddyAllocator.h",
"src/dawn_native/BuddyMemoryAllocator.cpp",
"src/dawn_native/BuddyMemoryAllocator.h",
"src/dawn_native/Buffer.cpp",
"src/dawn_native/Buffer.h",
"src/dawn_native/CachedObject.cpp",
"src/dawn_native/CommandAllocator.cpp",
"src/dawn_native/CommandAllocator.h",
"src/dawn_native/CommandBuffer.cpp",
"src/dawn_native/CommandBuffer.h",
"src/dawn_native/CommandBufferStateTracker.cpp",
"src/dawn_native/CommandBufferStateTracker.h",
"src/dawn_native/CommandEncoder.cpp",
"src/dawn_native/CommandEncoder.h",
"src/dawn_native/CommandValidation.cpp",
"src/dawn_native/CommandValidation.h",
"src/dawn_native/Commands.cpp",
"src/dawn_native/Commands.h",
"src/dawn_native/ComputePassEncoder.cpp",
"src/dawn_native/ComputePassEncoder.h",
"src/dawn_native/ComputePipeline.cpp",
"src/dawn_native/ComputePipeline.h",
"src/dawn_native/DawnNative.cpp",
"src/dawn_native/Device.cpp",
"src/dawn_native/Device.h",
"src/dawn_native/DynamicUploader.cpp",
"src/dawn_native/DynamicUploader.h",
"src/dawn_native/Device.h",
"src/dawn_native/EncodingContext.cpp",
"src/dawn_native/EncodingContext.h",
"src/dawn_native/Error.cpp",
"src/dawn_native/Error.h",
"src/dawn_native/ErrorData.cpp",
"src/dawn_native/ErrorData.h",
"src/dawn_native/ErrorScope.cpp",
"src/dawn_native/ErrorScope.h",
"src/dawn_native/ErrorScopeTracker.cpp",
"src/dawn_native/ErrorScopeTracker.h",
"src/dawn_native/Extensions.cpp",
"src/dawn_native/Extensions.h",
"src/dawn_native/Fence.cpp",
"src/dawn_native/Fence.h",
"src/dawn_native/FenceSignalTracker.cpp",
"src/dawn_native/FenceSignalTracker.h",
"src/dawn_native/Format.cpp",
"src/dawn_native/Format.h",
"src/dawn_native/Forward.h",
"src/dawn_native/Instance.cpp",
"src/dawn_native/Instance.h",
"src/dawn_native/ObjectBase.h",
"src/dawn_native/ObjectBase.cpp",
"src/dawn_native/PassResourceUsage.h",
"src/dawn_native/PassResourceUsageTracker.cpp",
"src/dawn_native/PassResourceUsageTracker.h",
"src/dawn_native/PerStage.cpp",
"src/dawn_native/PerStage.h",
"src/dawn_native/Pipeline.cpp",
"src/dawn_native/Pipeline.h",
"src/dawn_native/PipelineLayout.cpp",
"src/dawn_native/PipelineLayout.h",
"src/dawn_native/ProgrammablePassEncoder.cpp",
"src/dawn_native/ProgrammablePassEncoder.h",
"src/dawn_native/Queue.cpp",
"src/dawn_native/Queue.h",
"src/dawn_native/RefCounted.cpp",
"src/dawn_native/RefCounted.h",
"src/dawn_native/RenderBundle.cpp",
"src/dawn_native/RenderBundle.h",
"src/dawn_native/RenderBundleEncoder.cpp",
"src/dawn_native/RenderBundleEncoder.h",
"src/dawn_native/RenderEncoderBase.cpp",
"src/dawn_native/RenderEncoderBase.h",
"src/dawn_native/RenderPassEncoder.cpp",
"src/dawn_native/RenderPassEncoder.h",
"src/dawn_native/RenderPipeline.cpp",
"src/dawn_native/RenderPipeline.h",
"src/dawn_native/ResourceHeap.h",
"src/dawn_native/ResourceHeapAllocator.h",
"src/dawn_native/ResourceMemoryAllocation.cpp",
"src/dawn_native/ResourceMemoryAllocation.h",
"src/dawn_native/RingBufferAllocator.cpp",
"src/dawn_native/RingBufferAllocator.h",
"src/dawn_native/Sampler.cpp",
"src/dawn_native/Sampler.h",
"src/dawn_native/ShaderModule.cpp",
"src/dawn_native/ShaderModule.h",
"src/dawn_native/StagingBuffer.cpp",
"src/dawn_native/StagingBuffer.h",
"src/dawn_native/SwapChain.cpp",
"src/dawn_native/SwapChain.h",
"src/dawn_native/Texture.cpp",
"src/dawn_native/Texture.h",
"src/dawn_native/Toggles.cpp",
"src/dawn_native/Toggles.h",
"src/dawn_native/ToBackend.h",
"src/dawn_native/dawn_platform.h",
],
".",
"$dawn_root")
sources +=
rebase_path([
"src/dawn_native/Adapter.cpp",
"src/dawn_native/Adapter.h",
"src/dawn_native/AttachmentState.cpp",
"src/dawn_native/AttachmentState.h",
"src/dawn_native/BackendConnection.cpp",
"src/dawn_native/BackendConnection.h",
"src/dawn_native/BindGroup.cpp",
"src/dawn_native/BindGroup.h",
"src/dawn_native/BindGroupAndStorageBarrierTrackers.h",
"src/dawn_native/BindGroupLayout.cpp",
"src/dawn_native/BindGroupLayout.h",
"src/dawn_native/BuddyAllocator.cpp",
"src/dawn_native/BuddyAllocator.h",
"src/dawn_native/BuddyMemoryAllocator.cpp",
"src/dawn_native/BuddyMemoryAllocator.h",
"src/dawn_native/Buffer.cpp",
"src/dawn_native/Buffer.h",
"src/dawn_native/CachedObject.cpp",
"src/dawn_native/CommandAllocator.cpp",
"src/dawn_native/CommandAllocator.h",
"src/dawn_native/CommandBuffer.cpp",
"src/dawn_native/CommandBuffer.h",
"src/dawn_native/CommandBufferStateTracker.cpp",
"src/dawn_native/CommandBufferStateTracker.h",
"src/dawn_native/CommandEncoder.cpp",
"src/dawn_native/CommandEncoder.h",
"src/dawn_native/CommandValidation.cpp",
"src/dawn_native/CommandValidation.h",
"src/dawn_native/Commands.cpp",
"src/dawn_native/Commands.h",
"src/dawn_native/ComputePassEncoder.cpp",
"src/dawn_native/ComputePassEncoder.h",
"src/dawn_native/ComputePipeline.cpp",
"src/dawn_native/ComputePipeline.h",
"src/dawn_native/DawnNative.cpp",
"src/dawn_native/Device.cpp",
"src/dawn_native/Device.h",
"src/dawn_native/DynamicUploader.cpp",
"src/dawn_native/DynamicUploader.h",
"src/dawn_native/Device.h",
"src/dawn_native/EncodingContext.cpp",
"src/dawn_native/EncodingContext.h",
"src/dawn_native/Error.cpp",
"src/dawn_native/Error.h",
"src/dawn_native/ErrorData.cpp",
"src/dawn_native/ErrorData.h",
"src/dawn_native/ErrorInjector.cpp",
"src/dawn_native/ErrorInjector.h",
"src/dawn_native/ErrorScope.cpp",
"src/dawn_native/ErrorScope.h",
"src/dawn_native/ErrorScopeTracker.cpp",
"src/dawn_native/ErrorScopeTracker.h",
"src/dawn_native/Extensions.cpp",
"src/dawn_native/Extensions.h",
"src/dawn_native/Fence.cpp",
"src/dawn_native/Fence.h",
"src/dawn_native/FenceSignalTracker.cpp",
"src/dawn_native/FenceSignalTracker.h",
"src/dawn_native/Format.cpp",
"src/dawn_native/Format.h",
"src/dawn_native/Forward.h",
"src/dawn_native/Instance.cpp",
"src/dawn_native/Instance.h",
"src/dawn_native/ObjectBase.h",
"src/dawn_native/ObjectBase.cpp",
"src/dawn_native/PassResourceUsage.h",
"src/dawn_native/PassResourceUsageTracker.cpp",
"src/dawn_native/PassResourceUsageTracker.h",
"src/dawn_native/PerStage.cpp",
"src/dawn_native/PerStage.h",
"src/dawn_native/Pipeline.cpp",
"src/dawn_native/Pipeline.h",
"src/dawn_native/PipelineLayout.cpp",
"src/dawn_native/PipelineLayout.h",
"src/dawn_native/ProgrammablePassEncoder.cpp",
"src/dawn_native/ProgrammablePassEncoder.h",
"src/dawn_native/Queue.cpp",
"src/dawn_native/Queue.h",
"src/dawn_native/RefCounted.cpp",
"src/dawn_native/RefCounted.h",
"src/dawn_native/RenderBundle.cpp",
"src/dawn_native/RenderBundle.h",
"src/dawn_native/RenderBundleEncoder.cpp",
"src/dawn_native/RenderBundleEncoder.h",
"src/dawn_native/RenderEncoderBase.cpp",
"src/dawn_native/RenderEncoderBase.h",
"src/dawn_native/RenderPassEncoder.cpp",
"src/dawn_native/RenderPassEncoder.h",
"src/dawn_native/RenderPipeline.cpp",
"src/dawn_native/RenderPipeline.h",
"src/dawn_native/ResourceHeap.h",
"src/dawn_native/ResourceHeapAllocator.h",
"src/dawn_native/ResourceMemoryAllocation.cpp",
"src/dawn_native/ResourceMemoryAllocation.h",
"src/dawn_native/RingBufferAllocator.cpp",
"src/dawn_native/RingBufferAllocator.h",
"src/dawn_native/Sampler.cpp",
"src/dawn_native/Sampler.h",
"src/dawn_native/ShaderModule.cpp",
"src/dawn_native/ShaderModule.h",
"src/dawn_native/StagingBuffer.cpp",
"src/dawn_native/StagingBuffer.h",
"src/dawn_native/Surface.cpp",
"src/dawn_native/Surface.h",
"src/dawn_native/SwapChain.cpp",
"src/dawn_native/SwapChain.h",
"src/dawn_native/Texture.cpp",
"src/dawn_native/Texture.h",
"src/dawn_native/Toggles.cpp",
"src/dawn_native/Toggles.h",
"src/dawn_native/ToBackend.h",
"src/dawn_native/dawn_platform.h",
],
".",
"$dawn_root")
if (dawn_enable_d3d12) {
libs += [ "dxguid.lib" ]
sources +=
rebase_path([
"src/dawn_native/d3d12/AdapterD3D12.cpp",
"src/dawn_native/d3d12/AdapterD3D12.h",
"src/dawn_native/d3d12/BackendD3D12.cpp",
"src/dawn_native/d3d12/BackendD3D12.h",
"src/dawn_native/d3d12/BindGroupD3D12.cpp",
"src/dawn_native/d3d12/BindGroupD3D12.h",
"src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp",
"src/dawn_native/d3d12/BindGroupLayoutD3D12.h",
"src/dawn_native/d3d12/BufferD3D12.cpp",
"src/dawn_native/d3d12/BufferD3D12.h",
"src/dawn_native/d3d12/CommandAllocatorManager.cpp",
"src/dawn_native/d3d12/CommandAllocatorManager.h",
"src/dawn_native/d3d12/CommandBufferD3D12.cpp",
"src/dawn_native/d3d12/CommandBufferD3D12.h",
"src/dawn_native/d3d12/CommandRecordingContext.cpp",
"src/dawn_native/d3d12/CommandRecordingContext.h",
"src/dawn_native/d3d12/ComputePipelineD3D12.cpp",
"src/dawn_native/d3d12/ComputePipelineD3D12.h",
"src/dawn_native/d3d12/D3D12Backend.cpp",
"src/dawn_native/d3d12/D3D12Error.cpp",
"src/dawn_native/d3d12/D3D12Error.h",
"src/dawn_native/d3d12/D3D12Info.cpp",
"src/dawn_native/d3d12/D3D12Info.h",
"src/dawn_native/d3d12/DescriptorHeapAllocator.cpp",
"src/dawn_native/d3d12/DescriptorHeapAllocator.h",
"src/dawn_native/d3d12/DeviceD3D12.cpp",
"src/dawn_native/d3d12/DeviceD3D12.h",
"src/dawn_native/d3d12/Forward.h",
"src/dawn_native/d3d12/HeapD3D12.cpp",
"src/dawn_native/d3d12/HeapD3D12.h",
"src/dawn_native/d3d12/HeapAllocatorD3D12.cpp",
"src/dawn_native/d3d12/HeapAllocatorD3D12.h",
"src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp",
"src/dawn_native/d3d12/NativeSwapChainImplD3D12.h",
"src/dawn_native/d3d12/PipelineLayoutD3D12.cpp",
"src/dawn_native/d3d12/PipelineLayoutD3D12.h",
"src/dawn_native/d3d12/PlatformFunctions.cpp",
"src/dawn_native/d3d12/PlatformFunctions.h",
"src/dawn_native/d3d12/QueueD3D12.cpp",
"src/dawn_native/d3d12/QueueD3D12.h",
"src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp",
"src/dawn_native/d3d12/RenderPassBuilderD3D12.h",
"src/dawn_native/d3d12/RenderPipelineD3D12.cpp",
"src/dawn_native/d3d12/RenderPipelineD3D12.h",
"src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp",
"src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h",
"src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp",
"src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h",
"src/dawn_native/d3d12/SamplerD3D12.cpp",
"src/dawn_native/d3d12/SamplerD3D12.h",
"src/dawn_native/d3d12/ShaderModuleD3D12.cpp",
"src/dawn_native/d3d12/ShaderModuleD3D12.h",
"src/dawn_native/d3d12/StagingBufferD3D12.cpp",
"src/dawn_native/d3d12/StagingBufferD3D12.h",
"src/dawn_native/d3d12/SwapChainD3D12.cpp",
"src/dawn_native/d3d12/SwapChainD3D12.h",
"src/dawn_native/d3d12/TextureCopySplitter.cpp",
"src/dawn_native/d3d12/TextureCopySplitter.h",
"src/dawn_native/d3d12/TextureD3D12.cpp",
"src/dawn_native/d3d12/TextureD3D12.h",
"src/dawn_native/d3d12/UtilsD3D12.cpp",
"src/dawn_native/d3d12/UtilsD3D12.h",
"src/dawn_native/d3d12/d3d12_platform.h",
],
".",
"$dawn_root")
sources += rebase_path(
[
"src/dawn_native/d3d12/AdapterD3D12.cpp",
"src/dawn_native/d3d12/AdapterD3D12.h",
"src/dawn_native/d3d12/BackendD3D12.cpp",
"src/dawn_native/d3d12/BackendD3D12.h",
"src/dawn_native/d3d12/BindGroupD3D12.cpp",
"src/dawn_native/d3d12/BindGroupD3D12.h",
"src/dawn_native/d3d12/BindGroupLayoutD3D12.cpp",
"src/dawn_native/d3d12/BindGroupLayoutD3D12.h",
"src/dawn_native/d3d12/BufferD3D12.cpp",
"src/dawn_native/d3d12/BufferD3D12.h",
"src/dawn_native/d3d12/CommandAllocatorManager.cpp",
"src/dawn_native/d3d12/CommandAllocatorManager.h",
"src/dawn_native/d3d12/CommandBufferD3D12.cpp",
"src/dawn_native/d3d12/CommandBufferD3D12.h",
"src/dawn_native/d3d12/CommandRecordingContext.cpp",
"src/dawn_native/d3d12/CommandRecordingContext.h",
"src/dawn_native/d3d12/ComputePipelineD3D12.cpp",
"src/dawn_native/d3d12/ComputePipelineD3D12.h",
"src/dawn_native/d3d12/D3D12Backend.cpp",
"src/dawn_native/d3d12/D3D12Error.cpp",
"src/dawn_native/d3d12/D3D12Error.h",
"src/dawn_native/d3d12/D3D12Info.cpp",
"src/dawn_native/d3d12/D3D12Info.h",
"src/dawn_native/d3d12/DescriptorHeapAllocationD3D12.cpp",
"src/dawn_native/d3d12/DescriptorHeapAllocationD3D12.h",
"src/dawn_native/d3d12/DescriptorHeapAllocator.cpp",
"src/dawn_native/d3d12/DescriptorHeapAllocator.h",
"src/dawn_native/d3d12/DeviceD3D12.cpp",
"src/dawn_native/d3d12/DeviceD3D12.h",
"src/dawn_native/d3d12/Forward.h",
"src/dawn_native/d3d12/HeapD3D12.cpp",
"src/dawn_native/d3d12/HeapD3D12.h",
"src/dawn_native/d3d12/HeapAllocatorD3D12.cpp",
"src/dawn_native/d3d12/HeapAllocatorD3D12.h",
"src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp",
"src/dawn_native/d3d12/NativeSwapChainImplD3D12.h",
"src/dawn_native/d3d12/PipelineLayoutD3D12.cpp",
"src/dawn_native/d3d12/PipelineLayoutD3D12.h",
"src/dawn_native/d3d12/PlatformFunctions.cpp",
"src/dawn_native/d3d12/PlatformFunctions.h",
"src/dawn_native/d3d12/QueueD3D12.cpp",
"src/dawn_native/d3d12/QueueD3D12.h",
"src/dawn_native/d3d12/RenderPassBuilderD3D12.cpp",
"src/dawn_native/d3d12/RenderPassBuilderD3D12.h",
"src/dawn_native/d3d12/RenderPipelineD3D12.cpp",
"src/dawn_native/d3d12/RenderPipelineD3D12.h",
"src/dawn_native/d3d12/ResidencyManagerD3D12.cpp",
"src/dawn_native/d3d12/ResidencyManagerD3D12.h",
"src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.cpp",
"src/dawn_native/d3d12/ResourceAllocatorManagerD3D12.h",
"src/dawn_native/d3d12/ResourceHeapAllocationD3D12.cpp",
"src/dawn_native/d3d12/ResourceHeapAllocationD3D12.h",
"src/dawn_native/d3d12/SamplerD3D12.cpp",
"src/dawn_native/d3d12/SamplerD3D12.h",
"src/dawn_native/d3d12/ShaderModuleD3D12.cpp",
"src/dawn_native/d3d12/ShaderModuleD3D12.h",
"src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp",
"src/dawn_native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h",
"src/dawn_native/d3d12/StagingBufferD3D12.cpp",
"src/dawn_native/d3d12/StagingBufferD3D12.h",
"src/dawn_native/d3d12/SwapChainD3D12.cpp",
"src/dawn_native/d3d12/SwapChainD3D12.h",
"src/dawn_native/d3d12/TextureCopySplitter.cpp",
"src/dawn_native/d3d12/TextureCopySplitter.h",
"src/dawn_native/d3d12/TextureD3D12.cpp",
"src/dawn_native/d3d12/TextureD3D12.h",
"src/dawn_native/d3d12/UtilsD3D12.cpp",
"src/dawn_native/d3d12/UtilsD3D12.h",
"src/dawn_native/d3d12/d3d12_platform.h",
],
".",
"$dawn_root")
}
if (dawn_enable_metal) {
@ -318,14 +331,22 @@ static_library("libdawn_native") {
"Cocoa.framework",
"IOKit.framework",
"IOSurface.framework",
"QuartzCore.framework",
]
sources += rebase_path([
"src/dawn_native/Surface_metal.mm",
"src/dawn_native/metal/BackendMTL.h",
"src/dawn_native/metal/BackendMTL.mm",
"src/dawn_native/metal/BindGroupLayoutMTL.h",
"src/dawn_native/metal/BindGroupLayoutMTL.mm",
"src/dawn_native/metal/BindGroupMTL.h",
"src/dawn_native/metal/BindGroupMTL.mm",
"src/dawn_native/metal/BufferMTL.h",
"src/dawn_native/metal/BufferMTL.mm",
"src/dawn_native/metal/CommandBufferMTL.h",
"src/dawn_native/metal/CommandBufferMTL.mm",
"src/dawn_native/metal/CommandRecordingContext.h",
"src/dawn_native/metal/CommandRecordingContext.mm",
"src/dawn_native/metal/ComputePipelineMTL.h",
"src/dawn_native/metal/ComputePipelineMTL.mm",
"src/dawn_native/metal/DeviceMTL.h",
@ -372,6 +393,10 @@ static_library("libdawn_native") {
rebase_path([
"src/dawn_native/opengl/BackendGL.cpp",
"src/dawn_native/opengl/BackendGL.h",
"src/dawn_native/opengl/BindGroupGL.cpp",
"src/dawn_native/opengl/BindGroupGL.h",
"src/dawn_native/opengl/BindGroupLayoutGL.cpp",
"src/dawn_native/opengl/BindGroupLayoutGL.h",
"src/dawn_native/opengl/BufferGL.cpp",
"src/dawn_native/opengl/BufferGL.h",
"src/dawn_native/opengl/CommandBufferGL.cpp",
@ -480,7 +505,15 @@ static_library("libdawn_native") {
],
".",
"$dawn_root")
if (is_linux) {
if (is_chromeos) {
sources += rebase_path(
[
"src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp",
"src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
],
".",
"$dawn_root")
} else if (is_linux) {
sources += rebase_path(
[
"src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp",
@ -548,9 +581,15 @@ static_library("dawn_common") {
"Compiler.h",
"DynamicLib.cpp",
"DynamicLib.h",
"GPUInfo.cpp",
"GPUInfo.h",
"HashUtils.h",
"LinkedList.h",
"Log.cpp",
"Log.h",
"Math.cpp",
"Math.h",
"PlacementAllocated.h",
"Platform.h",
"Result.cpp",
"Result.h",
@ -558,6 +597,8 @@ static_library("dawn_common") {
"SerialMap.h",
"SerialQueue.h",
"SerialStorage.h",
"SlabAllocator.cpp",
"SlabAllocator.h",
"SwapChainUtils.h",
"vulkan_platform.h",
"windows_with_undefs.h",
@ -569,6 +610,9 @@ static_library("dawn_common") {
deps = [
":dawn_headers",
]
if (dawn_enable_vulkan) {
configs += [ "//:our_vulkan_headers" ]
}
}
###############################################################################
@ -578,7 +622,6 @@ static_library("dawn_common") {
dawn_json_generator("dawn_headers_gen") {
target = "dawn_headers"
outputs = [
"src/include/dawn/dawn.h",
"src/include/dawn/dawn_proc_table.h",
"src/include/dawn/webgpu.h",
]
@ -604,7 +647,6 @@ source_set("dawn_headers") {
dawn_json_generator("dawncpp_headers_gen") {
target = "dawncpp_headers"
outputs = [
"src/include/dawn/dawncpp.h",
"src/include/dawn/webgpu_cpp.h",
]
}

140
third_party/glslang/BUILD.gn vendored Normal file
View File

@ -0,0 +1,140 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build_overrides/glslang.gni")
import("../third_party.gni")
glslang_root = "../externals/glslang"
spirv_tools_dir = glslang_spirv_tools_dir
third_party("glslang_sources") {
public_include_dirs = [ "$glslang_root" ]
public_defines = [ "ENABLE_HLSL=1" ]
sources =
rebase_path([
"OGLCompilersDLL/InitializeDll.cpp",
"OGLCompilersDLL/InitializeDll.h",
"SPIRV/GLSL.ext.AMD.h",
"SPIRV/GLSL.ext.EXT.h",
"SPIRV/GLSL.ext.KHR.h",
"SPIRV/GLSL.ext.NV.h",
"SPIRV/GLSL.std.450.h",
"SPIRV/GlslangToSpv.cpp",
"SPIRV/GlslangToSpv.h",
"SPIRV/InReadableOrder.cpp",
"SPIRV/Logger.cpp",
"SPIRV/Logger.h",
"SPIRV/NonSemanticDebugPrintf.h",
"SPIRV/SPVRemapper.cpp",
"SPIRV/SPVRemapper.h",
"SPIRV/SpvBuilder.cpp",
"SPIRV/SpvBuilder.h",
"SPIRV/SpvPostProcess.cpp",
"SPIRV/SpvTools.cpp",
"SPIRV/SpvTools.h",
"SPIRV/bitutils.h",
"SPIRV/disassemble.cpp",
"SPIRV/disassemble.h",
"SPIRV/doc.cpp",
"SPIRV/doc.h",
"SPIRV/hex_float.h",
"SPIRV/spirv.hpp",
"SPIRV/spvIR.h",
"glslang/GenericCodeGen/CodeGen.cpp",
"glslang/GenericCodeGen/Link.cpp",
"glslang/Include/BaseTypes.h",
"glslang/Include/Common.h",
"glslang/Include/ConstantUnion.h",
"glslang/Include/InfoSink.h",
"glslang/Include/InitializeGlobals.h",
"glslang/Include/PoolAlloc.h",
"glslang/Include/ResourceLimits.h",
"glslang/Include/ShHandle.h",
"glslang/Include/Types.h",
"glslang/Include/arrays.h",
"glslang/Include/intermediate.h",
"glslang/Include/revision.h",
"glslang/MachineIndependent/Constant.cpp",
"glslang/MachineIndependent/InfoSink.cpp",
"glslang/MachineIndependent/Initialize.cpp",
"glslang/MachineIndependent/Initialize.h",
"glslang/MachineIndependent/IntermTraverse.cpp",
"glslang/MachineIndependent/Intermediate.cpp",
"glslang/MachineIndependent/LiveTraverser.h",
"glslang/MachineIndependent/ParseContextBase.cpp",
"glslang/MachineIndependent/ParseHelper.cpp",
"glslang/MachineIndependent/ParseHelper.h",
"glslang/MachineIndependent/PoolAlloc.cpp",
"glslang/MachineIndependent/RemoveTree.cpp",
"glslang/MachineIndependent/RemoveTree.h",
"glslang/MachineIndependent/Scan.cpp",
"glslang/MachineIndependent/Scan.h",
"glslang/MachineIndependent/ScanContext.h",
"glslang/MachineIndependent/ShaderLang.cpp",
"glslang/MachineIndependent/SymbolTable.cpp",
"glslang/MachineIndependent/SymbolTable.h",
"glslang/MachineIndependent/Versions.cpp",
"glslang/MachineIndependent/Versions.h",
"glslang/MachineIndependent/attribute.cpp",
"glslang/MachineIndependent/attribute.h",
"glslang/MachineIndependent/gl_types.h",
"glslang/MachineIndependent/glslang_tab.cpp",
"glslang/MachineIndependent/glslang_tab.cpp.h",
"glslang/MachineIndependent/intermOut.cpp",
"glslang/MachineIndependent/iomapper.cpp",
"glslang/MachineIndependent/iomapper.h",
"glslang/MachineIndependent/limits.cpp",
"glslang/MachineIndependent/linkValidate.cpp",
"glslang/MachineIndependent/localintermediate.h",
"glslang/MachineIndependent/parseConst.cpp",
"glslang/MachineIndependent/parseVersions.h",
"glslang/MachineIndependent/preprocessor/Pp.cpp",
"glslang/MachineIndependent/preprocessor/PpAtom.cpp",
"glslang/MachineIndependent/preprocessor/PpContext.cpp",
"glslang/MachineIndependent/preprocessor/PpContext.h",
"glslang/MachineIndependent/preprocessor/PpScanner.cpp",
"glslang/MachineIndependent/preprocessor/PpTokens.cpp",
"glslang/MachineIndependent/preprocessor/PpTokens.h",
"glslang/MachineIndependent/propagateNoContraction.cpp",
"glslang/MachineIndependent/propagateNoContraction.h",
"glslang/MachineIndependent/reflection.cpp",
"glslang/MachineIndependent/reflection.h",
"glslang/OSDependent/osinclude.h",
"glslang/Public/ShaderLang.h",
"hlsl/hlslAttributes.cpp",
"hlsl/hlslAttributes.h",
"hlsl/hlslGrammar.cpp",
"hlsl/hlslGrammar.h",
"hlsl/hlslOpMap.cpp",
"hlsl/hlslOpMap.h",
"hlsl/hlslParseHelper.cpp",
"hlsl/hlslParseHelper.h",
"hlsl/hlslParseables.cpp",
"hlsl/hlslParseables.h",
"hlsl/hlslScanContext.cpp",
"hlsl/hlslScanContext.h",
"hlsl/hlslTokenStream.cpp",
"hlsl/hlslTokenStream.h",
"hlsl/hlslTokens.h",
],
".",
"$glslang_root")
defines = [ "ENABLE_OPT=1" ]
if (is_win) {
sources += [ "${glslang_root}/glslang/OSDependent/Windows/ossource.cpp" ]
defines += [ "GLSLANG_OSINCLUDE_WIN32" ]
} else {
sources += [ "${glslang_root}/glslang/OSDependent/Unix/ossource.cpp" ]
defines += [ "GLSLANG_OSINCLUDE_UNIX" ]
}
deps = [
"${spirv_tools_dir}:spvtools_val",
]
}

176
third_party/shaderc/BUILD.gn vendored Normal file
View File

@ -0,0 +1,176 @@
# Copyright 2020 Google LLC.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
shaderc_root = "../externals/shaderc"
spirv_tools_root = "../externals/spirv-tools"
import("//build_overrides/build.gni")
import("//build_overrides/shaderc.gni")
import("${shaderc_root}/shaderc_features.gni")
import("../third_party.gni")
glslang_dir = shaderc_glslang_dir
spirv_tools_dir = shaderc_spirv_tools_dir
spirv_cross_dir = shaderc_spirv_cross_dir
spirv_headers_dir = shaderc_spirv_headers_dir
use_direct_logging = shaderc_spvc_enable_direct_logging
use_context_logging = !shaderc_spvc_disable_context_logging
is_msvc = is_win && !is_clang
config("shaderc_util_public") {
include_dirs = [ "${shaderc_root}/libshaderc_util/include" ]
}
source_set("shaderc_util_sources") {
sources = rebase_path(
[
"libshaderc_util/include/libshaderc_util/counting_includer.h",
"libshaderc_util/include/libshaderc_util/exceptions.h",
"libshaderc_util/include/libshaderc_util/file_finder.h",
"libshaderc_util/include/libshaderc_util/format.h",
"libshaderc_util/include/libshaderc_util/io.h",
"libshaderc_util/include/libshaderc_util/message.h",
"libshaderc_util/include/libshaderc_util/mutex.h",
"libshaderc_util/include/libshaderc_util/resources.h",
"libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h",
"libshaderc_util/include/libshaderc_util/string_piece.h",
"libshaderc_util/include/libshaderc_util/universal_unistd.h",
"libshaderc_util/include/libshaderc_util/version_profile.h",
"libshaderc_util/src/compiler.cc",
"libshaderc_util/src/file_finder.cc",
"libshaderc_util/src/io.cc",
"libshaderc_util/src/message.cc",
"libshaderc_util/src/resources.cc",
"libshaderc_util/src/shader_stage.cc",
"libshaderc_util/src/spirv_tools_wrapper.cc",
"libshaderc_util/src/version_profile.cc",
],
".",
"$shaderc_root")
# Configure Glslang's interface to include HLSL-related entry points.
defines = [ "ENABLE_HLSL=1" ]
public_configs = [ ":shaderc_util_public" ]
deps = [
"${glslang_dir}:glslang_sources",
"${spirv_tools_dir}:spvtools",
]
}
config("shaderc_public") {
include_dirs = [ "${shaderc_root}/libshaderc/include" ]
if (is_component_build) {
defines = [ "SHADERC_SHAREDLIB" ]
}
}
third_party("libshaderc") {
public_include_dirs = []
configs += [
":shaderc_public",
":shaderc_util_public",
]
defines = [ "SHADERC_IMPLEMENTATION" ]
sources = rebase_path([
"libshaderc/include/shaderc/env.h",
"libshaderc/include/shaderc/shaderc.h",
"libshaderc/include/shaderc/shaderc.hpp",
"libshaderc/include/shaderc/status.h",
"libshaderc/include/shaderc/visibility.h",
"libshaderc/src/shaderc.cc",
"libshaderc/src/shaderc_private.h",
],
".",
"$shaderc_root")
deps = [
":shaderc_util_sources",
"${glslang_dir}:glslang_sources",
"${spirv_tools_dir}:spvtools",
"${spirv_tools_dir}:spvtools_val",
]
}
config("spirv_cross_internal") {
if (!is_msvc) {
cflags_cc = [
"-Wno-implicit-fallthrough",
"-Wno-return-type",
"-Wno-sign-compare",
]
} else {
# Disable "not all control paths return a value" warning.
cflags_cc = [ "/wd4715" ]
}
}
config("shaderc_spvc_public") {
include_dirs = [
"${shaderc_root}/libshaderc/include",
"${shaderc_root}/libshaderc_spvc/include",
"${spirv_headers_dir}/include",
# Accessing a private spirv-tools headers.
"${spirv_tools_root}",
]
include_dirs += [ "${target_gen_dir}/../spirv-tools" ]
if (is_component_build) {
defines = [ "SHADERC_SHAREDLIB" ]
}
}
source_set("libshaderc_spvc_sources") {
public_configs = [ ":shaderc_spvc_public" ]
defines = [
"SHADERC_IMPLEMENTATION",
"SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS",
]
if (use_direct_logging) {
defines += [ "SHADERC_SPVC_ENABLE_DIRECT_LOGGING" ]
}
if (!use_context_logging) {
defines += [ "SHADERC_SPVC_DISABLE_CONTEXT_LOGGING" ]
}
sources = rebase_path([
"libshaderc/include/shaderc/env.h",
"libshaderc/include/shaderc/status.h",
"libshaderc/include/shaderc/visibility.h",
"libshaderc_spvc/include/spvc/spvc.h",
"libshaderc_spvc/include/spvc/spvc.hpp",
"libshaderc_spvc/src/spvc.cc",
"libshaderc_spvc/src/spvc_log.cc",
"libshaderc_spvc/src/spvc_log.h",
"libshaderc_spvc/src/spvc_private.cc",
"libshaderc_spvc/src/spvc_private.h",
"libshaderc_spvc/src/spvcir_pass.cc",
"libshaderc_spvc/src/spvcir_pass.h",
],
".",
"$shaderc_root")
public_deps = [
"${spirv_cross_dir}:spirv_cross",
]
deps = [
"${spirv_tools_dir}:spvtools",
"${spirv_tools_dir}:spvtools_core_enums_unified1",
"${spirv_tools_dir}:spvtools_opt",
"${spirv_tools_dir}:spvtools_val",
]
configs += []
}

View File

@ -29,6 +29,8 @@ third_party("spirv_cross") {
"spirv_msl.hpp",
"spirv_parser.cpp",
"spirv_parser.hpp",
"spirv_reflect.cpp",
"spirv_reflect.hpp",
],
".",
"${spirv_cross}")

View File

@ -14,10 +14,15 @@ template("spvtools_core_tables") {
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
core_insts_file = "${target_gen_dir}/core.insts-$version.inc"
operand_kinds_file = "${target_gen_dir}/operand.kinds-$version.inc"
extinst_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
debuginfo_insts_file =
"${spirv_tools}/source/extinst.debuginfo.grammar.json"
cldebuginfo100_insts_file =
"${spirv_tools}/source/extinst.opencl.debuginfo.100.grammar.json"
sources = [
cldebuginfo100_insts_file,
core_json_file,
debuginfo_insts_file,
]
outputs = [
core_insts_file,
@ -29,7 +34,9 @@ template("spvtools_core_tables") {
"--core-insts-output",
rebase_path(core_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(extinst_file, root_build_dir),
rebase_path(debuginfo_insts_file, root_build_dir),
"--extinst-cldebuginfo100-grammar",
rebase_path(cldebuginfo100_insts_file, root_build_dir),
"--operand-kinds-output",
rebase_path(operand_kinds_file, root_build_dir),
]
@ -46,7 +53,11 @@ template("spvtools_core_enums") {
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
debuginfo_insts_file =
"${spirv_tools}/source/extinst.debuginfo.grammar.json"
cldebuginfo100_insts_file =
"${spirv_tools}/source/extinst.opencl.debuginfo.100.grammar.json"
extension_enum_file = "${target_gen_dir}/extension_enum.inc"
extension_map_file = "${target_gen_dir}/enum_string_mapping.inc"
@ -54,7 +65,9 @@ template("spvtools_core_enums") {
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
rebase_path(debuginfo_insts_file, root_build_dir),
"--extinst-cldebuginfo100-grammar",
rebase_path(cldebuginfo100_insts_file, root_build_dir),
"--extension-enum-output",
rebase_path(extension_enum_file, root_build_dir),
"--enum-string-mapping-output",
@ -62,6 +75,8 @@ template("spvtools_core_enums") {
]
inputs = [
core_json_file,
debuginfo_insts_file,
cldebuginfo100_insts_file,
]
outputs = [
extension_enum_file,
@ -81,22 +96,30 @@ template("spvtools_glsl_tables") {
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
glsl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.glsl.std.450.grammar.json"
debuginfo_insts_file =
"${spirv_tools}/source/extinst.debuginfo.grammar.json"
cldebuginfo100_insts_file =
"${spirv_tools}/source/extinst.opencl.debuginfo.100.grammar.json"
glsl_insts_file = "${target_gen_dir}/glsl.std.450.insts.inc"
debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debuginfo_insts_file, root_build_dir),
"--extinst-cldebuginfo100-grammar",
rebase_path(cldebuginfo100_insts_file, root_build_dir),
"--extinst-glsl-grammar",
rebase_path(glsl_json_file, root_build_dir),
"--glsl-insts-output",
rebase_path(glsl_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
]
inputs = [
core_json_file,
glsl_json_file,
debuginfo_insts_file,
cldebuginfo100_insts_file,
]
outputs = [
glsl_insts_file,
@ -114,23 +137,31 @@ template("spvtools_opencl_tables") {
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
opengl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.opencl.std.100.grammar.json"
opencl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.opencl.std.100.grammar.json"
debuginfo_insts_file =
"${spirv_tools}/source/extinst.debuginfo.grammar.json"
cldebuginfo100_insts_file =
"${spirv_tools}/source/extinst.opencl.debuginfo.100.grammar.json"
opencl_insts_file = "${target_gen_dir}/opencl.std.insts.inc"
debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debuginfo_insts_file, root_build_dir),
"--extinst-cldebuginfo100-grammar",
rebase_path(cldebuginfo100_insts_file, root_build_dir),
"--extinst-opencl-grammar",
rebase_path(opengl_json_file, root_build_dir),
rebase_path(opencl_json_file, root_build_dir),
"--opencl-insts-output",
rebase_path(opencl_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
]
inputs = [
core_json_file,
opengl_json_file,
opencl_json_file,
debuginfo_insts_file,
cldebuginfo100_insts_file,
]
outputs = [
opencl_insts_file,
@ -145,22 +176,19 @@ template("spvtools_language_header") {
script = "${spirv_tools}/utils/generate_language_headers.py"
name = invoker.name
extinst_output_base = "${target_gen_dir}/${name}"
debug_insts_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
extinst_output_path = "${target_gen_dir}/${name}.h"
args = [
"--extinst-name",
"${name}",
"--extinst-grammar",
rebase_path(debug_insts_file, root_build_dir),
"--extinst-output-base",
rebase_path(extinst_output_base, root_build_dir),
rebase_path(invoker.grammar_file, root_build_dir),
"--extinst-output-path",
rebase_path(extinst_output_path, root_build_dir),
]
inputs = [
debug_insts_file,
invoker.grammar_file,
]
outputs = [
"${extinst_output_base}.h",
"${extinst_output_path}",
]
}
}
@ -181,6 +209,8 @@ template("spvtools_vendor_table") {
rebase_path(extinst_vendor_grammar, root_build_dir),
"--vendor-insts-output",
rebase_path(extinst_file, root_build_dir),
"--vendor-operand-kind-prefix",
invoker.operand_kind_prefix,
]
inputs = [
extinst_vendor_grammar,
@ -239,21 +269,47 @@ spvtools_glsl_tables("glsl1-0") {
spvtools_opencl_tables("opencl1-0") {
version = "1.0"
}
spvtools_language_header("unified1") {
spvtools_language_header("debuginfo") {
name = "DebugInfo"
grammar_file = "${spirv_tools}/source/extinst.debuginfo.grammar.json"
}
spvtools_language_header("cldebuginfo100") {
name = "OpenCLDebugInfo100"
grammar_file =
"${spirv_tools}/source/extinst.opencl.debuginfo.100.grammar.json"
}
spvtools_vendor_tables = [
"spv-amd-shader-explicit-vertex-parameter",
"spv-amd-shader-trinary-minmax",
"spv-amd-gcn-shader",
"spv-amd-shader-ballot",
"debuginfo",
[
"spv-amd-shader-explicit-vertex-parameter",
"...nil...",
],
[
"spv-amd-shader-trinary-minmax",
"...nil...",
],
[
"spv-amd-gcn-shader",
"...nil...",
],
[
"spv-amd-shader-ballot",
"...nil...",
],
[
"debuginfo",
"...nil...",
],
[
"opencl.debuginfo.100",
"CLDEBUG100_",
],
]
foreach(table, spvtools_vendor_tables) {
spvtools_vendor_table(table) {
name = table
foreach(table_def, spvtools_vendor_tables) {
spvtools_vendor_table(table_def[0]) {
name = table_def[0]
operand_kind_prefix = table_def[1]
}
}
@ -273,6 +329,7 @@ config("spvtools_internal_config") {
if (is_clang) {
cflags = [
"-Wno-implicit-fallthrough",
"-Wno-newline-eof",
"-Wno-extra-semi",
"-Wno-range-loop-analysis",
"-Wno-conditional-uninitialized",
@ -282,6 +339,7 @@ config("spvtools_internal_config") {
source_set("spvtools_headers") {
sources = rebase_path([
"include/spirv-tools/instrument.h",
"include/spirv-tools/libspirv.h",
"include/spirv-tools/libspirv.hpp",
"include/spirv-tools/linker.hpp",
@ -300,11 +358,13 @@ third_party("spvtools") {
":spvtools_core_tables_unified1",
":spvtools_generators_inc",
":spvtools_glsl_tables_glsl1-0",
":spvtools_language_header_unified1",
":spvtools_language_header_cldebuginfo100",
":spvtools_language_header_debuginfo",
":spvtools_opencl_tables_opencl1-0",
]
foreach(target_name, spvtools_vendor_tables) {
deps += [ ":spvtools_vendor_tables_$target_name" ]
foreach(table_def, spvtools_vendor_tables) {
name = table_def[0]
deps += [ ":spvtools_vendor_tables_$name" ]
}
sources = rebase_path([
@ -312,17 +372,23 @@ third_party("spvtools") {
"source/assembly_grammar.h",
"source/binary.cpp",
"source/binary.h",
"source/cfa.h",
"source/diagnostic.cpp",
"source/diagnostic.h",
"source/disassemble.cpp",
"source/disassemble.h",
"source/enum_set.h",
"source/enum_string_mapping.cpp",
"source/enum_string_mapping.h",
"source/ext_inst.cpp",
"source/ext_inst.h",
"source/extensions.cpp",
"source/extensions.h",
"source/instruction.h",
"source/libspirv.cpp",
"source/latest_version_glsl_std_450_header.h",
"source/latest_version_opencl_std_header.h",
"source/latest_version_spirv_header.h",
"source/macro.h",
"source/name_mapper.cpp",
"source/name_mapper.h",
@ -338,6 +404,8 @@ third_party("spvtools") {
"source/spirv_definition.h",
"source/spirv_endian.cpp",
"source/spirv_endian.h",
"source/spirv_optimizer_options.cpp",
"source/spirv_optimizer_options.h",
"source/spirv_target_env.cpp",
"source/spirv_target_env.h",
"source/spirv_validator_options.cpp",
@ -368,6 +436,7 @@ third_party("spvtools") {
public_deps = [
":spvtools_headers",
"${spirv_headers}:spv_headers",
]
configs += [ ":spvtools_internal_config" ]
@ -377,8 +446,12 @@ third_party("spvtools_val") {
public_include_dirs = []
sources = rebase_path([
"source/val/basic_block.cpp",
"source/val/basic_block.h",
"source/val/construct.cpp",
"source/val/construct.h",
"source/val/decoration.h",
"source/val/function.cpp",
"source/val/function.h",
"source/val/instruction.cpp",
"source/val/validate.cpp",
"source/val/validate.h",
@ -394,7 +467,6 @@ third_party("spvtools_val") {
"source/val/validate_composites.cpp",
"source/val/validate_constants.cpp",
"source/val/validate_conversion.cpp",
"source/val/validate_datarules.cpp",
"source/val/validate_debug.cpp",
"source/val/validate_decorations.cpp",
"source/val/validate_derivatives.cpp",
@ -410,19 +482,257 @@ third_party("spvtools_val") {
"source/val/validate_logicals.cpp",
"source/val/validate_memory.cpp",
"source/val/validate_memory_semantics.cpp",
"source/val/validate_memory_semantics.h",
"source/val/validate_misc.cpp",
"source/val/validate_mode_setting.cpp",
"source/val/validate_non_uniform.cpp",
"source/val/validate_primitives.cpp",
"source/val/validate_scopes.cpp",
"source/val/validate_scopes.h",
"source/val/validate_small_type_uses.cpp",
"source/val/validate_type.cpp",
"source/val/validation_state.cpp",
"source/val/validation_state.h",
],
".",
spirv_tools)
deps = [
":spvtools",
":spvtools_language_header_cldebuginfo100",
":spvtools_language_header_debuginfo",
]
public_deps = [
":spvtools_headers",
]
configs += [ ":spvtools_internal_config" ]
}
third_party("spvtools_opt") {
public_include_dirs = []
sources =
rebase_path([
"source/opt/aggressive_dead_code_elim_pass.cpp",
"source/opt/aggressive_dead_code_elim_pass.h",
"source/opt/amd_ext_to_khr.cpp",
"source/opt/amd_ext_to_khr.h",
"source/opt/basic_block.cpp",
"source/opt/basic_block.h",
"source/opt/block_merge_pass.cpp",
"source/opt/block_merge_pass.h",
"source/opt/block_merge_util.cpp",
"source/opt/block_merge_util.h",
"source/opt/build_module.cpp",
"source/opt/build_module.h",
"source/opt/ccp_pass.cpp",
"source/opt/ccp_pass.h",
"source/opt/cfg.cpp",
"source/opt/cfg.h",
"source/opt/cfg_cleanup_pass.cpp",
"source/opt/cfg_cleanup_pass.h",
"source/opt/code_sink.cpp",
"source/opt/code_sink.h",
"source/opt/combine_access_chains.cpp",
"source/opt/combine_access_chains.h",
"source/opt/compact_ids_pass.cpp",
"source/opt/compact_ids_pass.h",
"source/opt/composite.cpp",
"source/opt/composite.h",
"source/opt/const_folding_rules.cpp",
"source/opt/const_folding_rules.h",
"source/opt/constants.cpp",
"source/opt/constants.h",
"source/opt/convert_to_half_pass.cpp",
"source/opt/convert_to_half_pass.h",
"source/opt/copy_prop_arrays.cpp",
"source/opt/copy_prop_arrays.h",
"source/opt/dead_branch_elim_pass.cpp",
"source/opt/dead_branch_elim_pass.h",
"source/opt/dead_insert_elim_pass.cpp",
"source/opt/dead_insert_elim_pass.h",
"source/opt/dead_variable_elimination.cpp",
"source/opt/dead_variable_elimination.h",
"source/opt/decompose_initialized_variables_pass.cpp",
"source/opt/decompose_initialized_variables_pass.h",
"source/opt/decoration_manager.cpp",
"source/opt/decoration_manager.h",
"source/opt/def_use_manager.cpp",
"source/opt/def_use_manager.h",
"source/opt/desc_sroa.cpp",
"source/opt/desc_sroa.h",
"source/opt/dominator_analysis.cpp",
"source/opt/dominator_analysis.h",
"source/opt/dominator_tree.cpp",
"source/opt/dominator_tree.h",
"source/opt/eliminate_dead_constant_pass.cpp",
"source/opt/eliminate_dead_constant_pass.h",
"source/opt/eliminate_dead_functions_pass.cpp",
"source/opt/eliminate_dead_functions_pass.h",
"source/opt/eliminate_dead_functions_util.cpp",
"source/opt/eliminate_dead_functions_util.h",
"source/opt/eliminate_dead_members_pass.cpp",
"source/opt/eliminate_dead_members_pass.h",
"source/opt/feature_manager.cpp",
"source/opt/feature_manager.h",
"source/opt/fix_storage_class.cpp",
"source/opt/fix_storage_class.h",
"source/opt/flatten_decoration_pass.cpp",
"source/opt/flatten_decoration_pass.h",
"source/opt/fold.cpp",
"source/opt/fold.h",
"source/opt/fold_spec_constant_op_and_composite_pass.cpp",
"source/opt/fold_spec_constant_op_and_composite_pass.h",
"source/opt/folding_rules.cpp",
"source/opt/folding_rules.h",
"source/opt/freeze_spec_constant_value_pass.cpp",
"source/opt/freeze_spec_constant_value_pass.h",
"source/opt/function.cpp",
"source/opt/function.h",
"source/opt/generate_webgpu_initializers_pass.cpp",
"source/opt/generate_webgpu_initializers_pass.h",
"source/opt/graphics_robust_access_pass.cpp",
"source/opt/graphics_robust_access_pass.h",
"source/opt/if_conversion.cpp",
"source/opt/if_conversion.h",
"source/opt/inline_exhaustive_pass.cpp",
"source/opt/inline_exhaustive_pass.h",
"source/opt/inline_opaque_pass.cpp",
"source/opt/inline_opaque_pass.h",
"source/opt/inline_pass.cpp",
"source/opt/inline_pass.h",
"source/opt/inst_bindless_check_pass.cpp",
"source/opt/inst_bindless_check_pass.h",
"source/opt/inst_buff_addr_check_pass.cpp",
"source/opt/inst_buff_addr_check_pass.h",
"source/opt/inst_debug_printf_pass.cpp",
"source/opt/inst_debug_printf_pass.h",
"source/opt/instruction.cpp",
"source/opt/instruction.h",
"source/opt/instruction_list.cpp",
"source/opt/instruction_list.h",
"source/opt/instrument_pass.cpp",
"source/opt/instrument_pass.h",
"source/opt/ir_builder.h",
"source/opt/ir_context.cpp",
"source/opt/ir_context.h",
"source/opt/ir_loader.cpp",
"source/opt/ir_loader.h",
"source/opt/iterator.h",
"source/opt/legalize_vector_shuffle_pass.cpp",
"source/opt/legalize_vector_shuffle_pass.h",
"source/opt/licm_pass.cpp",
"source/opt/licm_pass.h",
"source/opt/local_access_chain_convert_pass.cpp",
"source/opt/local_access_chain_convert_pass.h",
"source/opt/local_redundancy_elimination.cpp",
"source/opt/local_redundancy_elimination.h",
"source/opt/local_single_block_elim_pass.cpp",
"source/opt/local_single_block_elim_pass.h",
"source/opt/local_single_store_elim_pass.cpp",
"source/opt/local_single_store_elim_pass.h",
"source/opt/log.h",
"source/opt/loop_dependence.cpp",
"source/opt/loop_dependence.h",
"source/opt/loop_dependence_helpers.cpp",
"source/opt/loop_descriptor.cpp",
"source/opt/loop_descriptor.h",
"source/opt/loop_fission.cpp",
"source/opt/loop_fission.h",
"source/opt/loop_fusion.cpp",
"source/opt/loop_fusion.h",
"source/opt/loop_fusion_pass.cpp",
"source/opt/loop_fusion_pass.h",
"source/opt/loop_peeling.cpp",
"source/opt/loop_peeling.h",
"source/opt/loop_unroller.cpp",
"source/opt/loop_unroller.h",
"source/opt/loop_unswitch_pass.cpp",
"source/opt/loop_unswitch_pass.h",
"source/opt/loop_utils.cpp",
"source/opt/loop_utils.h",
"source/opt/mem_pass.cpp",
"source/opt/mem_pass.h",
"source/opt/merge_return_pass.cpp",
"source/opt/merge_return_pass.h",
"source/opt/module.cpp",
"source/opt/module.h",
"source/opt/null_pass.h",
"source/opt/optimizer.cpp",
"source/opt/pass.cpp",
"source/opt/pass.h",
"source/opt/pass_manager.cpp",
"source/opt/pass_manager.h",
"source/opt/passes.h",
"source/opt/private_to_local_pass.cpp",
"source/opt/private_to_local_pass.h",
"source/opt/process_lines_pass.cpp",
"source/opt/process_lines_pass.h",
"source/opt/propagator.cpp",
"source/opt/propagator.h",
"source/opt/reduce_load_size.cpp",
"source/opt/reduce_load_size.h",
"source/opt/redundancy_elimination.cpp",
"source/opt/redundancy_elimination.h",
"source/opt/reflect.h",
"source/opt/register_pressure.cpp",
"source/opt/register_pressure.h",
"source/opt/relax_float_ops_pass.cpp",
"source/opt/relax_float_ops_pass.h",
"source/opt/remove_duplicates_pass.cpp",
"source/opt/remove_duplicates_pass.h",
"source/opt/replace_invalid_opc.cpp",
"source/opt/replace_invalid_opc.h",
"source/opt/scalar_analysis.cpp",
"source/opt/scalar_analysis.h",
"source/opt/scalar_analysis_nodes.h",
"source/opt/scalar_analysis_simplification.cpp",
"source/opt/scalar_replacement_pass.cpp",
"source/opt/scalar_replacement_pass.h",
"source/opt/set_spec_constant_default_value_pass.cpp",
"source/opt/set_spec_constant_default_value_pass.h",
"source/opt/simplification_pass.cpp",
"source/opt/simplification_pass.h",
"source/opt/split_invalid_unreachable_pass.cpp",
"source/opt/split_invalid_unreachable_pass.h",
"source/opt/ssa_rewrite_pass.cpp",
"source/opt/ssa_rewrite_pass.h",
"source/opt/strength_reduction_pass.cpp",
"source/opt/strength_reduction_pass.h",
"source/opt/strip_atomic_counter_memory_pass.cpp",
"source/opt/strip_atomic_counter_memory_pass.h",
"source/opt/strip_debug_info_pass.cpp",
"source/opt/strip_debug_info_pass.h",
"source/opt/strip_reflect_info_pass.cpp",
"source/opt/strip_reflect_info_pass.h",
"source/opt/struct_cfg_analysis.cpp",
"source/opt/struct_cfg_analysis.h",
"source/opt/tree_iterator.h",
"source/opt/type_manager.cpp",
"source/opt/type_manager.h",
"source/opt/types.cpp",
"source/opt/types.h",
"source/opt/unify_const_pass.cpp",
"source/opt/unify_const_pass.h",
"source/opt/upgrade_memory_model.cpp",
"source/opt/upgrade_memory_model.h",
"source/opt/value_number_table.cpp",
"source/opt/value_number_table.h",
"source/opt/vector_dce.cpp",
"source/opt/vector_dce.h",
"source/opt/workaround1209.cpp",
"source/opt/workaround1209.h",
"source/opt/wrap_opkill.cpp",
"source/opt/wrap_opkill.h",
],
".",
spirv_tools)
deps = [
":spvtools",
":spvtools_language_header_cldebuginfo100",
":spvtools_language_header_debuginfo",
":spvtools_vendor_tables_spv-amd-shader-ballot",
]
public_deps = [
":spvtools_headers",

View File

@ -42,7 +42,7 @@ void DawnWindowContext::initializeContext(int width, int height) {
fSwapChainImplementation = this->createSwapChainImplementation(-1, -1, fDisplayParams);
wgpu::SwapChainDescriptor swapChainDesc;
swapChainDesc.implementation = reinterpret_cast<int64_t>(&fSwapChainImplementation);
fSwapChain = fDevice.CreateSwapChain(&swapChainDesc);
fSwapChain = fDevice.CreateSwapChain(nullptr, &swapChainDesc);
if (!fSwapChain) {
fContext.reset();
return;
@ -92,7 +92,7 @@ void DawnWindowContext::resize(int w, int h) {
fSwapChainImplementation = this->createSwapChainImplementation(w, h, fDisplayParams);
wgpu::SwapChainDescriptor swapChainDesc;
swapChainDesc.implementation = reinterpret_cast<int64_t>(&fSwapChainImplementation);
fSwapChain = fDevice.CreateSwapChain(&swapChainDesc);
fSwapChain = fDevice.CreateSwapChain(nullptr, &swapChainDesc);
if (!fSwapChain) {
fContext.reset();
return;