load("@py_deps//:requirements.bzl", "requirement") load("@rules_cc//cc:cc_library.bzl", "cc_library") load("@rules_python//python:defs.bzl", "py_binary") # This file will be copied into //third_party/externals/dawn via the new_local_repository # rule in WORKSPACE.bazel, so all files should be relative to that path. # We define this here because the emscripten toolchain calls the cpu wasm, whereas the # bazelbuild/platforms call it wasm32. https://github.com/emscripten-core/emsdk/issues/919 config_setting( name = "cpu_wasm", values = { "cpu": "wasm", }, ) py_binary( name = "dawn_json_generator", srcs = [ "generator/dawn_json_generator.py", "generator/generator_lib.py", ], deps = [ requirement("jinja2"), # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes # the link easier to find than searching the Bazel cache for generated deps. requirement("MarkupSafe"), ], ) genrule( name = "generate_webgpu_cpp", srcs = [ "generator/templates/api_cpp.h", "generator/templates/api_cpp_chained_struct.h", "generator/templates/api_cpp_print.h", "generator/templates/BSD_LICENSE", "dawn.json", "dawn_wire.json", ], outs = [ "include/dawn/webgpu_cpp.h", "include/dawn/webgpu_cpp_chained_struct.h", "include/dawn/webgpu_cpp_print.h", ], cmd = "$(location :dawn_json_generator) " + "--dawn-json $(location dawn.json) " + "--wire-json $(location dawn_wire.json) " + "--template-dir $$(dirname $(location generator/templates/api_cpp.h)) " + "--targets cpp_headers " + "--output-dir $(RULEDIR)", tools = [":dawn_json_generator"], ) genrule( name = "generate_webgpu", srcs = [ "generator/templates/api.h", "generator/templates/dawn_proc_table.h", "generator/templates/BSD_LICENSE", "dawn.json", "dawn_wire.json", ], outs = [ "include/dawn/webgpu.h", "include/dawn/dawn_proc_table.h", ], cmd = "$(location :dawn_json_generator) " + "--dawn-json $(location dawn.json) " + "--wire-json $(location dawn_wire.json) " + "--template-dir $$(dirname $(location generator/templates/api.h)) " + "--targets headers " + "--output-dir $(RULEDIR)", tools = [":dawn_json_generator"], ) genrule( name = "generate_proc", srcs = [ "dawn.json", "dawn_wire.json", "generator/templates/BSD_LICENSE", "generator/templates/dawn_proc.c", "generator/templates/dawn_thread_dispatch_proc.cpp", ], outs = [ "src/dawn/dawn_proc.c", "src/dawn/dawn_thread_dispatch_proc.cpp", ], cmd = "$(location :dawn_json_generator) " + "--dawn-json $(location dawn.json) " + "--wire-json $(location dawn_wire.json) " + "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--targets proc " + "--output-dir $(RULEDIR)", tools = [":dawn_json_generator"], ) genrule( name = "generate_dawn_cpp", srcs = [ "dawn.json", "dawn_wire.json", "generator/templates/BSD_LICENSE", "generator/templates/api_cpp.cpp", ], outs = [ "src/dawn/webgpu_cpp.cpp", ], cmd = "$(location :dawn_json_generator) " + "--dawn-json $(location dawn.json) " + "--wire-json $(location dawn_wire.json) " + "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--targets cpp " + "--output-dir $(RULEDIR)", tools = [":dawn_json_generator"], ) genrule( name = "generate_utils", srcs = [ "dawn.json", "dawn_wire.json", "generator/templates/BSD_LICENSE", "generator/templates/dawn/native/ChainUtils.cpp", "generator/templates/dawn/native/ChainUtils.h", "generator/templates/dawn/native/Features.h", "generator/templates/dawn/native/Features.inl", "generator/templates/dawn/native/ObjectType.cpp", "generator/templates/dawn/native/ObjectType.h", "generator/templates/dawn/native/ProcTable.cpp", "generator/templates/dawn/native/ValidationUtils.cpp", "generator/templates/dawn/native/ValidationUtils.h", "generator/templates/dawn/native/api_StreamImpl.cpp", "generator/templates/dawn/native/api_absl_format.cpp", "generator/templates/dawn/native/api_absl_format.h", "generator/templates/dawn/native/api_structs.cpp", "generator/templates/dawn/native/api_structs.h", "generator/templates/dawn/native/dawn_platform.h", ], outs = [ "src/dawn/native/ChainUtils_autogen.cpp", "src/dawn/native/ChainUtils_autogen.h", "src/dawn/native/Features_autogen.h", "src/dawn/native/Features_autogen.inl", "src/dawn/native/ObjectType_autogen.cpp", "src/dawn/native/ObjectType_autogen.h", "src/dawn/native/ProcTable.cpp", "src/dawn/native/ValidationUtils_autogen.cpp", "src/dawn/native/ValidationUtils_autogen.h", "src/dawn/native/dawn_platform_autogen.h", "src/dawn/native/webgpu_StreamImpl_autogen.cpp", "src/dawn/native/webgpu_absl_format_autogen.cpp", "src/dawn/native/webgpu_absl_format_autogen.h", "src/dawn/native/wgpu_structs_autogen.cpp", "src/dawn/native/wgpu_structs_autogen.h", ], cmd = "$(location :dawn_json_generator) " + "--dawn-json $(location dawn.json) " + "--wire-json $(location dawn_wire.json) " + "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--targets native_utils " + "--output-dir $(RULEDIR)", tools = [":dawn_json_generator"], ) py_binary( name = "dawn_gpu_info_generator", srcs = [ "generator/dawn_gpu_info_generator.py", "generator/generator_lib.py", ], deps = [ requirement("jinja2"), # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes # the link easier to find than searching the Bazel cache for generated deps. requirement("MarkupSafe"), ], ) genrule( name = "generate_gpuinfo", srcs = [ "src/dawn/gpu_info.json", "generator/templates/BSD_LICENSE", "generator/templates/dawn/common/GPUInfo.h", "generator/templates/dawn/common/GPUInfo.cpp", ], outs = [ "src/dawn/common/GPUInfo_autogen.h", "src/dawn/common/GPUInfo_autogen.cpp", ], cmd = "$(location :dawn_gpu_info_generator) " + "--gpu-info-json $(location src/dawn/gpu_info.json) " + "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--output-dir $(RULEDIR)", tools = [":dawn_gpu_info_generator"], ) py_binary( name = "dawn_version_generator", srcs = [ "generator/dawn_version_generator.py", "generator/generator_lib.py", ], deps = [ requirement("jinja2"), # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes # the link easier to find than searching the Bazel cache for generated deps. requirement("MarkupSafe"), ], ) # This currently has a blank version, which "disables caching" according to # https://dawn.googlesource.com/dawn/+/bd30d9e594226e96c07ec3cd46dbdc68928aef41/generator/dawn_version_generator.py#39 # We don't anticipate that being a real issue. Should we need to make this work, # the easiest way is to use cat to read in .git/HEAD and specify that directly # to the dawn_version_generator script (which needs a patch to accept that argument. genrule( name = "generate_version", srcs = [ "generator/templates/BSD_LICENSE", "generator/templates/dawn/common/Version.h", ], outs = [ "src/dawn/common/Version_autogen.h", ], cmd = "$(location :dawn_version_generator) " + "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--dawn-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + "--output-dir $(RULEDIR) 2> /dev/null", tools = [":dawn_version_generator"], ) DAWN_HDRS = [ "include/dawn/EnumClassBitmasks.h", "include/dawn/dawn_proc.h", "include/dawn/dawn_thread_dispatch_proc.h", "include/dawn/native/D3D12Backend.h", "include/dawn/native/DawnNative.h", "include/dawn/native/MetalBackend.h", "include/dawn/native/NullBackend.h", "include/dawn/native/OpenGLBackend.h", "include/dawn/native/VulkanBackend.h", "include/dawn/native/dawn_native_export.h", "include/dawn/platform/DawnPlatform.h", "include/dawn/platform/dawn_platform_export.h", "include/dawn/wire/Wire.h", "include/dawn/wire/WireClient.h", "include/dawn/wire/WireServer.h", "include/dawn/wire/dawn_wire_export.h", "include/webgpu/webgpu.h", "include/webgpu/webgpu_cpp.h", ] DAWN_SRCS = [ # Generated files "include/dawn/dawn_proc_table.h", "include/dawn/webgpu.h", "include/dawn/webgpu_cpp.h", "include/dawn/webgpu_cpp_chained_struct.h", # From dawn/src/dawn/native/BUILD.gn:sources "src/dawn/native/DawnNative.cpp", "src/dawn/native/Adapter.cpp", "src/dawn/native/Adapter.h", "src/dawn/native/ApplyClearColorValueWithDrawHelper.cpp", "src/dawn/native/ApplyClearColorValueWithDrawHelper.h", "src/dawn/native/AsyncTask.cpp", "src/dawn/native/AsyncTask.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/BindGroupLayoutInternal.cpp", "src/dawn/native/BindGroupLayoutInternal.h", "src/dawn/native/BindGroupTracker.h", "src/dawn/native/BindingInfo.cpp", "src/dawn/native/BindingInfo.h", "src/dawn/native/BlitBufferToDepthStencil.cpp", "src/dawn/native/BlitBufferToDepthStencil.h", "src/dawn/native/BlitColorToColorWithDraw.cpp", "src/dawn/native/BlitColorToColorWithDraw.h", "src/dawn/native/BlitDepthToDepth.cpp", "src/dawn/native/BlitDepthToDepth.h", "src/dawn/native/BlitTextureToBuffer.cpp", "src/dawn/native/BlitTextureToBuffer.h", "src/dawn/native/Blob.cpp", "src/dawn/native/Blob.h", "src/dawn/native/BlobCache.cpp", "src/dawn/native/BlobCache.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/CacheKey.cpp", "src/dawn/native/CacheKey.h", "src/dawn/native/CacheRequest.cpp", "src/dawn/native/CacheRequest.h", "src/dawn/native/CacheResult.h", "src/dawn/native/CachedObject.cpp", "src/dawn/native/CachedObject.h", "src/dawn/native/CallbackTaskManager.cpp", "src/dawn/native/CallbackTaskManager.h", "src/dawn/native/ChainUtils.h", "src/dawn/native/ChainUtilsImpl.h", "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/CompilationMessages.cpp", "src/dawn/native/CompilationMessages.h", "src/dawn/native/ComputePassEncoder.cpp", "src/dawn/native/ComputePassEncoder.h", "src/dawn/native/ComputePipeline.cpp", "src/dawn/native/ComputePipeline.h", "src/dawn/native/CopyTextureForBrowserHelper.cpp", "src/dawn/native/CopyTextureForBrowserHelper.h", "src/dawn/native/CreatePipelineAsyncTask.cpp", "src/dawn/native/CreatePipelineAsyncTask.h", "src/dawn/native/Device.cpp", "src/dawn/native/Device.h", "src/dawn/native/DynamicUploader.cpp", "src/dawn/native/DynamicUploader.h", "src/dawn/native/EncodingContext.cpp", "src/dawn/native/EncodingContext.h", "src/dawn/native/EnumClassBitmasks.h", "src/dawn/native/EnumMaskIterator.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/ExecutionQueue.cpp", "src/dawn/native/ExecutionQueue.h", "src/dawn/native/ExternalTexture.cpp", "src/dawn/native/ExternalTexture.h", "src/dawn/native/Features.cpp", "src/dawn/native/Features.h", "src/dawn/native/Format.cpp", "src/dawn/native/Format.h", "src/dawn/native/Forward.h", "src/dawn/native/IndirectDrawMetadata.cpp", "src/dawn/native/IndirectDrawMetadata.h", "src/dawn/native/IndirectDrawValidationEncoder.cpp", "src/dawn/native/IndirectDrawValidationEncoder.h", "src/dawn/native/Instance.cpp", "src/dawn/native/Instance.h", "src/dawn/native/IntegerTypes.h", "src/dawn/native/InternalPipelineStore.cpp", "src/dawn/native/InternalPipelineStore.h", "src/dawn/native/Limits.cpp", "src/dawn/native/Limits.h", "src/dawn/native/ObjectBase.cpp", "src/dawn/native/ObjectBase.h", "src/dawn/native/ObjectContentHasher.cpp", "src/dawn/native/ObjectContentHasher.h", "src/dawn/native/PassResourceUsage.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/PhysicalDevice.cpp", "src/dawn/native/PhysicalDevice.h", "src/dawn/native/Pipeline.cpp", "src/dawn/native/Pipeline.h", "src/dawn/native/PipelineCache.cpp", "src/dawn/native/PipelineCache.h", "src/dawn/native/PipelineLayout.cpp", "src/dawn/native/PipelineLayout.h", "src/dawn/native/PooledResourceMemoryAllocator.cpp", "src/dawn/native/PooledResourceMemoryAllocator.h", "src/dawn/native/ProgrammableEncoder.cpp", "src/dawn/native/ProgrammableEncoder.h", "src/dawn/native/QueryHelper.cpp", "src/dawn/native/QueryHelper.h", "src/dawn/native/QuerySet.cpp", "src/dawn/native/QuerySet.h", "src/dawn/native/Queue.cpp", "src/dawn/native/Queue.h", "src/dawn/native/RefCountedWithExternalCount.cpp", "src/dawn/native/RefCountedWithExternalCount.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/ScratchBuffer.cpp", "src/dawn/native/ScratchBuffer.h", "src/dawn/native/Serializable.h", "src/dawn/native/ShaderModule.cpp", "src/dawn/native/ShaderModule.h", "src/dawn/native/SharedFence.cpp", "src/dawn/native/SharedFence.h", "src/dawn/native/SharedTextureMemory.cpp", "src/dawn/native/SharedTextureMemory.h", "src/dawn/native/StreamImplTint.cpp", "src/dawn/native/Subresource.cpp", "src/dawn/native/Subresource.h", "src/dawn/native/SubresourceStorage.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/TintUtils.cpp", "src/dawn/native/TintUtils.h", "src/dawn/native/ToBackend.h", "src/dawn/native/Toggles.cpp", "src/dawn/native/Toggles.h", "src/dawn/native/UsageValidationMode.h", "src/dawn/native/VertexFormat.cpp", "src/dawn/native/VertexFormat.h", "src/dawn/native/VisitableMembers.h", "src/dawn/native/dawn_platform.h", "src/dawn/native/stream/BlobSource.cpp", "src/dawn/native/stream/BlobSource.h", "src/dawn/native/stream/ByteVectorSink.cpp", "src/dawn/native/stream/ByteVectorSink.h", "src/dawn/native/stream/Sink.h", "src/dawn/native/stream/Source.h", "src/dawn/native/stream/Stream.cpp", "src/dawn/native/stream/Stream.h", "src/dawn/native/utils/WGPUHelpers.cpp", "src/dawn/native/utils/WGPUHelpers.h", "src/dawn/native/webgpu_absl_format.cpp", "src/dawn/native/webgpu_absl_format.h", # From dawn/src/dawn/native/BUILD.gn:utils_gen "src/dawn/native/ChainUtils_autogen.cpp", "src/dawn/native/ChainUtils_autogen.h", "src/dawn/native/Features_autogen.h", "src/dawn/native/Features_autogen.inl", "src/dawn/native/ObjectType_autogen.cpp", "src/dawn/native/ObjectType_autogen.h", "src/dawn/native/ProcTable.cpp", "src/dawn/native/ValidationUtils_autogen.cpp", "src/dawn/native/ValidationUtils_autogen.h", "src/dawn/native/dawn_platform_autogen.h", "src/dawn/native/webgpu_StreamImpl_autogen.cpp", "src/dawn/native/webgpu_absl_format_autogen.cpp", "src/dawn/native/webgpu_absl_format_autogen.h", "src/dawn/native/wgpu_structs_autogen.cpp", "src/dawn/native/wgpu_structs_autogen.h", # From dawn/src/dawn/common/BUILD.gn:common "src/dawn/common/Alloc.h", "src/dawn/common/Assert.cpp", "src/dawn/common/Assert.h", "src/dawn/common/BitSetIterator.h", "src/dawn/common/Compiler.h", "src/dawn/common/ConcurrentCache.h", "src/dawn/common/Constants.h", "src/dawn/common/ContentLessObjectCache.h", "src/dawn/common/ContentLessObjectCacheable.h", "src/dawn/common/CoreFoundationRef.h", "src/dawn/common/DynamicLib.cpp", "src/dawn/common/DynamicLib.h", "src/dawn/common/GPUInfo.cpp", "src/dawn/common/GPUInfo.h", "src/dawn/common/HashUtils.h", "src/dawn/common/IOKitRef.h", "src/dawn/common/LinkedList.h", "src/dawn/common/Log.cpp", "src/dawn/common/Log.h", "src/dawn/common/Math.cpp", "src/dawn/common/Math.h", "src/dawn/common/Mutex.cpp", "src/dawn/common/Mutex.h", "src/dawn/common/MutexProtected.h", "src/dawn/common/NSRef.h", "src/dawn/common/NonCopyable.h", "src/dawn/common/Numeric.h", "src/dawn/common/PlacementAllocated.h", "src/dawn/common/Platform.h", "src/dawn/common/Preprocessor.h", "src/dawn/common/Ref.h", "src/dawn/common/RefBase.h", "src/dawn/common/RefCounted.cpp", "src/dawn/common/RefCounted.h", "src/dawn/common/Result.cpp", "src/dawn/common/Result.h", "src/dawn/common/SerialMap.h", "src/dawn/common/SerialQueue.h", "src/dawn/common/SerialStorage.h", "src/dawn/common/SlabAllocator.cpp", "src/dawn/common/SlabAllocator.h", "src/dawn/common/StackContainer.h", "src/dawn/common/SystemUtils.cpp", "src/dawn/common/SystemUtils.h", "src/dawn/common/TypeTraits.h", "src/dawn/common/TypedInteger.h", "src/dawn/common/UnderlyingType.h", "src/dawn/common/WeakRef.h", "src/dawn/common/WeakRefSupport.cpp", "src/dawn/common/WeakRefSupport.h", "src/dawn/common/ityp_array.h", "src/dawn/common/ityp_bitset.h", "src/dawn/common/ityp_span.h", "src/dawn/common/ityp_stack_vec.h", "src/dawn/common/ityp_vector.h", "src/dawn/common/vulkan_platform.h", "src/dawn/common/xlib_with_undefs.h", # Generated files in dawn/src/dawn/common/BUILD.gn "src/dawn/common/GPUInfo_autogen.cpp", "src/dawn/common/GPUInfo_autogen.h", "src/dawn/common/Version_autogen.h", # From dawn/src/dawn/platform/BUILD.gn:platform "include/dawn/platform/DawnPlatform.h", "include/dawn/platform/dawn_platform_export.h", "src/dawn/platform/DawnPlatform.cpp", "src/dawn/platform/WorkerThread.cpp", "src/dawn/platform/WorkerThread.h", "src/dawn/platform/metrics/HistogramMacros.cpp", "src/dawn/platform/metrics/HistogramMacros.h", "src/dawn/platform/tracing/EventTracer.cpp", "src/dawn/platform/tracing/EventTracer.h", "src/dawn/platform/tracing/TraceEvent.h", ] DAWN_VULKAN_SRCS = [ # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan) "src/dawn/native/SpirvValidation.cpp", "src/dawn/native/SpirvValidation.h", "src/dawn/native/vulkan/BackendVk.cpp", "src/dawn/native/vulkan/BackendVk.h", "src/dawn/native/vulkan/BindGroupLayoutVk.cpp", "src/dawn/native/vulkan/BindGroupLayoutVk.h", "src/dawn/native/vulkan/BindGroupVk.cpp", "src/dawn/native/vulkan/BindGroupVk.h", "src/dawn/native/vulkan/BufferVk.cpp", "src/dawn/native/vulkan/BufferVk.h", "src/dawn/native/vulkan/StreamImplVk.cpp", "src/dawn/native/vulkan/CommandBufferVk.cpp", "src/dawn/native/vulkan/CommandBufferVk.h", "src/dawn/native/vulkan/CommandRecordingContext.h", "src/dawn/native/vulkan/ComputePipelineVk.cpp", "src/dawn/native/vulkan/ComputePipelineVk.h", "src/dawn/native/vulkan/DescriptorSetAllocation.h", "src/dawn/native/vulkan/DescriptorSetAllocator.cpp", "src/dawn/native/vulkan/DescriptorSetAllocator.h", "src/dawn/native/vulkan/DeviceVk.cpp", "src/dawn/native/vulkan/DeviceVk.h", "src/dawn/native/vulkan/ExternalHandle.h", "src/dawn/native/vulkan/FencedDeleter.cpp", "src/dawn/native/vulkan/FencedDeleter.h", "src/dawn/native/vulkan/Forward.h", "src/dawn/native/vulkan/PhysicalDeviceVk.cpp", "src/dawn/native/vulkan/PhysicalDeviceVk.h", "src/dawn/native/vulkan/PipelineCacheVk.cpp", "src/dawn/native/vulkan/PipelineCacheVk.h", "src/dawn/native/vulkan/PipelineLayoutVk.cpp", "src/dawn/native/vulkan/PipelineLayoutVk.h", "src/dawn/native/vulkan/QuerySetVk.cpp", "src/dawn/native/vulkan/QuerySetVk.h", "src/dawn/native/vulkan/QueueVk.cpp", "src/dawn/native/vulkan/QueueVk.h", "src/dawn/native/vulkan/RenderPassCache.cpp", "src/dawn/native/vulkan/RenderPassCache.h", "src/dawn/native/vulkan/RenderPipelineVk.cpp", "src/dawn/native/vulkan/RenderPipelineVk.h", "src/dawn/native/vulkan/ResourceHeapVk.cpp", "src/dawn/native/vulkan/ResourceHeapVk.h", "src/dawn/native/vulkan/ResourceMemoryAllocatorVk.cpp", "src/dawn/native/vulkan/ResourceMemoryAllocatorVk.h", "src/dawn/native/vulkan/SamplerVk.cpp", "src/dawn/native/vulkan/SamplerVk.h", "src/dawn/native/vulkan/ShaderModuleVk.cpp", "src/dawn/native/vulkan/ShaderModuleVk.h", "src/dawn/native/vulkan/SwapChainVk.cpp", "src/dawn/native/vulkan/SwapChainVk.h", "src/dawn/native/vulkan/TextureVk.cpp", "src/dawn/native/vulkan/TextureVk.h", "src/dawn/native/vulkan/UtilsVulkan.cpp", "src/dawn/native/vulkan/UtilsVulkan.h", "src/dawn/native/vulkan/VulkanBackend.cpp", "src/dawn/native/vulkan/VulkanError.cpp", "src/dawn/native/vulkan/VulkanError.h", "src/dawn/native/vulkan/VulkanExtensions.cpp", "src/dawn/native/vulkan/VulkanExtensions.h", "src/dawn/native/vulkan/VulkanFunctions.cpp", "src/dawn/native/vulkan/VulkanFunctions.h", "src/dawn/native/vulkan/VulkanInfo.cpp", "src/dawn/native/vulkan/VulkanInfo.h", "src/dawn/native/vulkan/external_memory/MemoryImportParams.h", "src/dawn/native/vulkan/external_memory/MemoryService.cpp", "src/dawn/native/vulkan/external_memory/MemoryService.h", "src/dawn/native/vulkan/external_memory/MemoryServiceImplementation.cpp", "src/dawn/native/vulkan/external_memory/MemoryServiceImplementation.h", "src/dawn/native/vulkan/external_semaphore/SemaphoreService.cpp", "src/dawn/native/vulkan/external_semaphore/SemaphoreService.h", "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementation.cpp", "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementation.h", ] DAWN_VULKAN_LINUX_SRCS = [ # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan && (is_android || is_linux || is_chromeos)) "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementationFD.cpp", "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementationFD.h", # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan && (is_linux || is_chromeos)) "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationDmaBuf.cpp", "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationDmaBuf.h", "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationOpaqueFD.cpp", "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationOpaqueFD.h", ] DAWN_VULKAN_DEFINES = [ # From dawn/src/dawn/common/BUILD.gn:internal_config "DAWN_ENABLE_BACKEND_VULKAN", ] cc_library( name = "dawn_native", srcs = DAWN_SRCS + DAWN_VULKAN_SRCS + DAWN_VULKAN_LINUX_SRCS, hdrs = DAWN_HDRS, copts = [ # List this as a copt, so as not to propagate it to dependents # Skia has its own vulkan headers and we do not want these to # interfere/override those. "-Iexternal/vulkan_headers/include", ], defines = DAWN_VULKAN_DEFINES, includes = [ "include", "src", ], visibility = ["//visibility:private"], # only used by :dawn deps = [ # Dawn specifically depends on dawn/src/tint:libtint ":tint", "@abseil_cpp//absl/strings:str_format", "@vulkan_headers", "@vulkan_tools", "@vulkan_utility_libraries", ], ) cc_library( name = "dawn_cpp", srcs = [ # From dawn/src/dawn/BUILD.gn#cpp "include/dawn/webgpu.h", "include/dawn/EnumClassBitmasks.h", "include/dawn/webgpu_cpp.h", "include/dawn/webgpu_cpp_chained_struct.h", "src/dawn/webgpu_cpp.cpp", ], includes = [ "include", ], visibility = ["//visibility:private"], # only used by :dawn ) cc_library( name = "dawn_proc", srcs = [ # From dawn/src/dawn/BUILD.gn#proc "include/dawn/webgpu.h", "include/dawn/dawn_proc.h", "include/dawn/dawn_thread_dispatch_proc.h", "include/dawn/dawn_proc_table.h", "src/dawn/dawn_proc.c", "src/dawn/dawn_thread_dispatch_proc.cpp", ], includes = [ "include", ], visibility = ["//visibility:private"], # only used by :dawn ) cc_library( name = "dawn", visibility = ["//visibility:public"], deps = [ ":dawn_cpp", ":dawn_native", ":dawn_proc", ], ) cc_library( name = "tint", hdrs = glob( [ "include/**/*.h", ], allow_empty = False, ), defines = [ "TINT_BUILD_WGSL_READER=1", "TINT_BUILD_WGSL_WRITER=1", ], includes = ["include"], visibility = ["//visibility:public"], deps = [ "@dawn//src/tint/api", ], )