1load("@py_deps//:requirements.bzl", "requirement") 2load("@rules_python//python:defs.bzl", "py_binary") 3 4# This file will be copied into //third_party/externals/dawn via the new_local_repository 5# rule in WORKSPACE.bazel, so all files should be relative to that path. 6 7# We define this here because the emscripten toolchain calls the cpu wasm, whereas the 8# bazelbuild/platforms call it wasm32. https://github.com/emscripten-core/emsdk/issues/919 9config_setting( 10 name = "cpu_wasm", 11 values = { 12 "cpu": "wasm", 13 }, 14) 15 16py_binary( 17 name = "dawn_json_generator", 18 srcs = [ 19 "generator/dawn_json_generator.py", 20 "generator/generator_lib.py", 21 ], 22 deps = [ 23 requirement("jinja2"), 24 # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes 25 # the link easier to find than searching the Bazel cache for generated deps. 26 requirement("MarkupSafe"), 27 ], 28) 29 30genrule( 31 name = "generate_webgpu_cpp", 32 srcs = [ 33 "generator/templates/api_cpp.h", 34 "generator/templates/api_cpp_chained_struct.h", 35 "generator/templates/api_cpp_print.h", 36 "generator/templates/BSD_LICENSE", 37 "dawn.json", 38 "dawn_wire.json", 39 ], 40 outs = [ 41 "include/dawn/webgpu_cpp.h", 42 "include/dawn/webgpu_cpp_chained_struct.h", 43 "include/dawn/webgpu_cpp_print.h", 44 ], 45 cmd = "$(location :dawn_json_generator) " + 46 "--dawn-json $(location dawn.json) " + 47 "--wire-json $(location dawn_wire.json) " + 48 "--template-dir $$(dirname $(location generator/templates/api_cpp.h)) " + 49 "--targets cpp_headers " + 50 "--output-dir $(RULEDIR)", 51 tools = [":dawn_json_generator"], 52) 53 54genrule( 55 name = "generate_webgpu", 56 srcs = [ 57 "generator/templates/api.h", 58 "generator/templates/dawn_proc_table.h", 59 "generator/templates/BSD_LICENSE", 60 "dawn.json", 61 "dawn_wire.json", 62 ], 63 outs = [ 64 "include/dawn/webgpu.h", 65 "include/dawn/dawn_proc_table.h", 66 ], 67 cmd = "$(location :dawn_json_generator) " + 68 "--dawn-json $(location dawn.json) " + 69 "--wire-json $(location dawn_wire.json) " + 70 "--template-dir $$(dirname $(location generator/templates/api.h)) " + 71 "--targets headers " + 72 "--output-dir $(RULEDIR)", 73 tools = [":dawn_json_generator"], 74) 75 76genrule( 77 name = "generate_proc", 78 srcs = [ 79 "dawn.json", 80 "dawn_wire.json", 81 "generator/templates/BSD_LICENSE", 82 "generator/templates/dawn_proc.c", 83 "generator/templates/dawn_thread_dispatch_proc.cpp", 84 ], 85 outs = [ 86 "src/dawn/dawn_proc.c", 87 "src/dawn/dawn_thread_dispatch_proc.cpp", 88 ], 89 cmd = "$(location :dawn_json_generator) " + 90 "--dawn-json $(location dawn.json) " + 91 "--wire-json $(location dawn_wire.json) " + 92 "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 93 "--targets proc " + 94 "--output-dir $(RULEDIR)", 95 tools = [":dawn_json_generator"], 96) 97 98genrule( 99 name = "generate_dawn_cpp", 100 srcs = [ 101 "dawn.json", 102 "dawn_wire.json", 103 "generator/templates/BSD_LICENSE", 104 "generator/templates/api_cpp.cpp", 105 ], 106 outs = [ 107 "src/dawn/webgpu_cpp.cpp", 108 ], 109 cmd = "$(location :dawn_json_generator) " + 110 "--dawn-json $(location dawn.json) " + 111 "--wire-json $(location dawn_wire.json) " + 112 "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 113 "--targets cpp " + 114 "--output-dir $(RULEDIR)", 115 tools = [":dawn_json_generator"], 116) 117 118genrule( 119 name = "generate_utils", 120 srcs = [ 121 "dawn.json", 122 "dawn_wire.json", 123 "generator/templates/BSD_LICENSE", 124 "generator/templates/dawn/native/ChainUtils.cpp", 125 "generator/templates/dawn/native/ChainUtils.h", 126 "generator/templates/dawn/native/Features.h", 127 "generator/templates/dawn/native/Features.inl", 128 "generator/templates/dawn/native/ObjectType.cpp", 129 "generator/templates/dawn/native/ObjectType.h", 130 "generator/templates/dawn/native/ProcTable.cpp", 131 "generator/templates/dawn/native/ValidationUtils.cpp", 132 "generator/templates/dawn/native/ValidationUtils.h", 133 "generator/templates/dawn/native/api_StreamImpl.cpp", 134 "generator/templates/dawn/native/api_absl_format.cpp", 135 "generator/templates/dawn/native/api_absl_format.h", 136 "generator/templates/dawn/native/api_structs.cpp", 137 "generator/templates/dawn/native/api_structs.h", 138 "generator/templates/dawn/native/dawn_platform.h", 139 ], 140 outs = [ 141 "src/dawn/native/ChainUtils_autogen.cpp", 142 "src/dawn/native/ChainUtils_autogen.h", 143 "src/dawn/native/Features_autogen.h", 144 "src/dawn/native/Features_autogen.inl", 145 "src/dawn/native/ObjectType_autogen.cpp", 146 "src/dawn/native/ObjectType_autogen.h", 147 "src/dawn/native/ProcTable.cpp", 148 "src/dawn/native/ValidationUtils_autogen.cpp", 149 "src/dawn/native/ValidationUtils_autogen.h", 150 "src/dawn/native/dawn_platform_autogen.h", 151 "src/dawn/native/webgpu_StreamImpl_autogen.cpp", 152 "src/dawn/native/webgpu_absl_format_autogen.cpp", 153 "src/dawn/native/webgpu_absl_format_autogen.h", 154 "src/dawn/native/wgpu_structs_autogen.cpp", 155 "src/dawn/native/wgpu_structs_autogen.h", 156 ], 157 cmd = "$(location :dawn_json_generator) " + 158 "--dawn-json $(location dawn.json) " + 159 "--wire-json $(location dawn_wire.json) " + 160 "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 161 "--targets native_utils " + 162 "--output-dir $(RULEDIR)", 163 tools = [":dawn_json_generator"], 164) 165 166py_binary( 167 name = "dawn_gpu_info_generator", 168 srcs = [ 169 "generator/dawn_gpu_info_generator.py", 170 "generator/generator_lib.py", 171 ], 172 deps = [ 173 requirement("jinja2"), 174 # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes 175 # the link easier to find than searching the Bazel cache for generated deps. 176 requirement("MarkupSafe"), 177 ], 178) 179 180genrule( 181 name = "generate_gpuinfo", 182 srcs = [ 183 "src/dawn/gpu_info.json", 184 "generator/templates/BSD_LICENSE", 185 "generator/templates/dawn/common/GPUInfo.h", 186 "generator/templates/dawn/common/GPUInfo.cpp", 187 ], 188 outs = [ 189 "src/dawn/common/GPUInfo_autogen.h", 190 "src/dawn/common/GPUInfo_autogen.cpp", 191 ], 192 cmd = "$(location :dawn_gpu_info_generator) " + 193 "--gpu-info-json $(location src/dawn/gpu_info.json) " + 194 "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 195 "--output-dir $(RULEDIR)", 196 tools = [":dawn_gpu_info_generator"], 197) 198 199py_binary( 200 name = "dawn_version_generator", 201 srcs = [ 202 "generator/dawn_version_generator.py", 203 "generator/generator_lib.py", 204 ], 205 deps = [ 206 requirement("jinja2"), 207 # jinja2 has a dep on MarkupSafe. Declaring MarkupSafe here is not necessary, but it makes 208 # the link easier to find than searching the Bazel cache for generated deps. 209 requirement("MarkupSafe"), 210 ], 211) 212 213# This currently has a blank version, which "disables caching" according to 214# https://dawn.googlesource.com/dawn/+/bd30d9e594226e96c07ec3cd46dbdc68928aef41/generator/dawn_version_generator.py#39 215# We don't anticipate that being a real issue. Should we need to make this work, 216# the easiest way is to use cat to read in .git/HEAD and specify that directly 217# to the dawn_version_generator script (which needs a patch to accept that argument. 218genrule( 219 name = "generate_version", 220 srcs = [ 221 "generator/templates/BSD_LICENSE", 222 "generator/templates/dawn/common/Version.h", 223 ], 224 outs = [ 225 "src/dawn/common/Version_autogen.h", 226 ], 227 cmd = "$(location :dawn_version_generator) " + 228 "--template-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 229 "--dawn-dir $$(dirname $(location generator/templates/BSD_LICENSE)) " + 230 "--output-dir $(RULEDIR) 2> /dev/null", 231 tools = [":dawn_version_generator"], 232) 233 234DAWN_HDRS = [ 235 "include/dawn/EnumClassBitmasks.h", 236 "include/dawn/dawn_proc.h", 237 "include/dawn/dawn_thread_dispatch_proc.h", 238 "include/dawn/native/D3D12Backend.h", 239 "include/dawn/native/DawnNative.h", 240 "include/dawn/native/MetalBackend.h", 241 "include/dawn/native/NullBackend.h", 242 "include/dawn/native/OpenGLBackend.h", 243 "include/dawn/native/VulkanBackend.h", 244 "include/dawn/native/dawn_native_export.h", 245 "include/dawn/platform/DawnPlatform.h", 246 "include/dawn/platform/dawn_platform_export.h", 247 "include/dawn/wire/Wire.h", 248 "include/dawn/wire/WireClient.h", 249 "include/dawn/wire/WireServer.h", 250 "include/dawn/wire/dawn_wire_export.h", 251 "include/webgpu/webgpu.h", 252 "include/webgpu/webgpu_cpp.h", 253] 254 255DAWN_SRCS = [ 256 # Generated files 257 "include/dawn/dawn_proc_table.h", 258 "include/dawn/webgpu.h", 259 "include/dawn/webgpu_cpp.h", 260 "include/dawn/webgpu_cpp_chained_struct.h", 261 # From dawn/src/dawn/native/BUILD.gn:sources 262 "src/dawn/native/DawnNative.cpp", 263 "src/dawn/native/Adapter.cpp", 264 "src/dawn/native/Adapter.h", 265 "src/dawn/native/ApplyClearColorValueWithDrawHelper.cpp", 266 "src/dawn/native/ApplyClearColorValueWithDrawHelper.h", 267 "src/dawn/native/AsyncTask.cpp", 268 "src/dawn/native/AsyncTask.h", 269 "src/dawn/native/AttachmentState.cpp", 270 "src/dawn/native/AttachmentState.h", 271 "src/dawn/native/BackendConnection.cpp", 272 "src/dawn/native/BackendConnection.h", 273 "src/dawn/native/BindGroup.cpp", 274 "src/dawn/native/BindGroup.h", 275 "src/dawn/native/BindGroupLayout.cpp", 276 "src/dawn/native/BindGroupLayout.h", 277 "src/dawn/native/BindGroupLayoutInternal.cpp", 278 "src/dawn/native/BindGroupLayoutInternal.h", 279 "src/dawn/native/BindGroupTracker.h", 280 "src/dawn/native/BindingInfo.cpp", 281 "src/dawn/native/BindingInfo.h", 282 "src/dawn/native/BlitBufferToDepthStencil.cpp", 283 "src/dawn/native/BlitBufferToDepthStencil.h", 284 "src/dawn/native/BlitColorToColorWithDraw.cpp", 285 "src/dawn/native/BlitColorToColorWithDraw.h", 286 "src/dawn/native/BlitDepthToDepth.cpp", 287 "src/dawn/native/BlitDepthToDepth.h", 288 "src/dawn/native/BlitTextureToBuffer.cpp", 289 "src/dawn/native/BlitTextureToBuffer.h", 290 "src/dawn/native/Blob.cpp", 291 "src/dawn/native/Blob.h", 292 "src/dawn/native/BlobCache.cpp", 293 "src/dawn/native/BlobCache.h", 294 "src/dawn/native/BuddyAllocator.cpp", 295 "src/dawn/native/BuddyAllocator.h", 296 "src/dawn/native/BuddyMemoryAllocator.cpp", 297 "src/dawn/native/BuddyMemoryAllocator.h", 298 "src/dawn/native/Buffer.cpp", 299 "src/dawn/native/Buffer.h", 300 "src/dawn/native/CacheKey.cpp", 301 "src/dawn/native/CacheKey.h", 302 "src/dawn/native/CacheRequest.cpp", 303 "src/dawn/native/CacheRequest.h", 304 "src/dawn/native/CacheResult.h", 305 "src/dawn/native/CachedObject.cpp", 306 "src/dawn/native/CachedObject.h", 307 "src/dawn/native/CallbackTaskManager.cpp", 308 "src/dawn/native/CallbackTaskManager.h", 309 "src/dawn/native/ChainUtils.h", 310 "src/dawn/native/ChainUtilsImpl.h", 311 "src/dawn/native/CommandAllocator.cpp", 312 "src/dawn/native/CommandAllocator.h", 313 "src/dawn/native/CommandBuffer.cpp", 314 "src/dawn/native/CommandBuffer.h", 315 "src/dawn/native/CommandBufferStateTracker.cpp", 316 "src/dawn/native/CommandBufferStateTracker.h", 317 "src/dawn/native/CommandEncoder.cpp", 318 "src/dawn/native/CommandEncoder.h", 319 "src/dawn/native/CommandValidation.cpp", 320 "src/dawn/native/CommandValidation.h", 321 "src/dawn/native/Commands.cpp", 322 "src/dawn/native/Commands.h", 323 "src/dawn/native/CompilationMessages.cpp", 324 "src/dawn/native/CompilationMessages.h", 325 "src/dawn/native/ComputePassEncoder.cpp", 326 "src/dawn/native/ComputePassEncoder.h", 327 "src/dawn/native/ComputePipeline.cpp", 328 "src/dawn/native/ComputePipeline.h", 329 "src/dawn/native/CopyTextureForBrowserHelper.cpp", 330 "src/dawn/native/CopyTextureForBrowserHelper.h", 331 "src/dawn/native/CreatePipelineAsyncTask.cpp", 332 "src/dawn/native/CreatePipelineAsyncTask.h", 333 "src/dawn/native/Device.cpp", 334 "src/dawn/native/Device.h", 335 "src/dawn/native/DynamicUploader.cpp", 336 "src/dawn/native/DynamicUploader.h", 337 "src/dawn/native/EncodingContext.cpp", 338 "src/dawn/native/EncodingContext.h", 339 "src/dawn/native/EnumClassBitmasks.h", 340 "src/dawn/native/EnumMaskIterator.h", 341 "src/dawn/native/Error.cpp", 342 "src/dawn/native/Error.h", 343 "src/dawn/native/ErrorData.cpp", 344 "src/dawn/native/ErrorData.h", 345 "src/dawn/native/ErrorInjector.cpp", 346 "src/dawn/native/ErrorInjector.h", 347 "src/dawn/native/ErrorScope.cpp", 348 "src/dawn/native/ErrorScope.h", 349 "src/dawn/native/ExecutionQueue.cpp", 350 "src/dawn/native/ExecutionQueue.h", 351 "src/dawn/native/ExternalTexture.cpp", 352 "src/dawn/native/ExternalTexture.h", 353 "src/dawn/native/Features.cpp", 354 "src/dawn/native/Features.h", 355 "src/dawn/native/Format.cpp", 356 "src/dawn/native/Format.h", 357 "src/dawn/native/Forward.h", 358 "src/dawn/native/IndirectDrawMetadata.cpp", 359 "src/dawn/native/IndirectDrawMetadata.h", 360 "src/dawn/native/IndirectDrawValidationEncoder.cpp", 361 "src/dawn/native/IndirectDrawValidationEncoder.h", 362 "src/dawn/native/Instance.cpp", 363 "src/dawn/native/Instance.h", 364 "src/dawn/native/IntegerTypes.h", 365 "src/dawn/native/InternalPipelineStore.cpp", 366 "src/dawn/native/InternalPipelineStore.h", 367 "src/dawn/native/Limits.cpp", 368 "src/dawn/native/Limits.h", 369 "src/dawn/native/ObjectBase.cpp", 370 "src/dawn/native/ObjectBase.h", 371 "src/dawn/native/ObjectContentHasher.cpp", 372 "src/dawn/native/ObjectContentHasher.h", 373 "src/dawn/native/PassResourceUsage.cpp", 374 "src/dawn/native/PassResourceUsage.h", 375 "src/dawn/native/PassResourceUsageTracker.cpp", 376 "src/dawn/native/PassResourceUsageTracker.h", 377 "src/dawn/native/PerStage.cpp", 378 "src/dawn/native/PerStage.h", 379 "src/dawn/native/PhysicalDevice.cpp", 380 "src/dawn/native/PhysicalDevice.h", 381 "src/dawn/native/Pipeline.cpp", 382 "src/dawn/native/Pipeline.h", 383 "src/dawn/native/PipelineCache.cpp", 384 "src/dawn/native/PipelineCache.h", 385 "src/dawn/native/PipelineLayout.cpp", 386 "src/dawn/native/PipelineLayout.h", 387 "src/dawn/native/PooledResourceMemoryAllocator.cpp", 388 "src/dawn/native/PooledResourceMemoryAllocator.h", 389 "src/dawn/native/ProgrammableEncoder.cpp", 390 "src/dawn/native/ProgrammableEncoder.h", 391 "src/dawn/native/QueryHelper.cpp", 392 "src/dawn/native/QueryHelper.h", 393 "src/dawn/native/QuerySet.cpp", 394 "src/dawn/native/QuerySet.h", 395 "src/dawn/native/Queue.cpp", 396 "src/dawn/native/Queue.h", 397 "src/dawn/native/RefCountedWithExternalCount.cpp", 398 "src/dawn/native/RefCountedWithExternalCount.h", 399 "src/dawn/native/RenderBundle.cpp", 400 "src/dawn/native/RenderBundle.h", 401 "src/dawn/native/RenderBundleEncoder.cpp", 402 "src/dawn/native/RenderBundleEncoder.h", 403 "src/dawn/native/RenderEncoderBase.cpp", 404 "src/dawn/native/RenderEncoderBase.h", 405 "src/dawn/native/RenderPassEncoder.cpp", 406 "src/dawn/native/RenderPassEncoder.h", 407 "src/dawn/native/RenderPipeline.cpp", 408 "src/dawn/native/RenderPipeline.h", 409 "src/dawn/native/ResourceHeap.h", 410 "src/dawn/native/ResourceHeapAllocator.h", 411 "src/dawn/native/ResourceMemoryAllocation.cpp", 412 "src/dawn/native/ResourceMemoryAllocation.h", 413 "src/dawn/native/RingBufferAllocator.cpp", 414 "src/dawn/native/RingBufferAllocator.h", 415 "src/dawn/native/Sampler.cpp", 416 "src/dawn/native/Sampler.h", 417 "src/dawn/native/ScratchBuffer.cpp", 418 "src/dawn/native/ScratchBuffer.h", 419 "src/dawn/native/Serializable.h", 420 "src/dawn/native/ShaderModule.cpp", 421 "src/dawn/native/ShaderModule.h", 422 "src/dawn/native/SharedFence.cpp", 423 "src/dawn/native/SharedFence.h", 424 "src/dawn/native/SharedTextureMemory.cpp", 425 "src/dawn/native/SharedTextureMemory.h", 426 "src/dawn/native/StreamImplTint.cpp", 427 "src/dawn/native/Subresource.cpp", 428 "src/dawn/native/Subresource.h", 429 "src/dawn/native/SubresourceStorage.h", 430 "src/dawn/native/Surface.cpp", 431 "src/dawn/native/Surface.h", 432 "src/dawn/native/SwapChain.cpp", 433 "src/dawn/native/SwapChain.h", 434 "src/dawn/native/Texture.cpp", 435 "src/dawn/native/Texture.h", 436 "src/dawn/native/TintUtils.cpp", 437 "src/dawn/native/TintUtils.h", 438 "src/dawn/native/ToBackend.h", 439 "src/dawn/native/Toggles.cpp", 440 "src/dawn/native/Toggles.h", 441 "src/dawn/native/UsageValidationMode.h", 442 "src/dawn/native/VertexFormat.cpp", 443 "src/dawn/native/VertexFormat.h", 444 "src/dawn/native/VisitableMembers.h", 445 "src/dawn/native/dawn_platform.h", 446 "src/dawn/native/stream/BlobSource.cpp", 447 "src/dawn/native/stream/BlobSource.h", 448 "src/dawn/native/stream/ByteVectorSink.cpp", 449 "src/dawn/native/stream/ByteVectorSink.h", 450 "src/dawn/native/stream/Sink.h", 451 "src/dawn/native/stream/Source.h", 452 "src/dawn/native/stream/Stream.cpp", 453 "src/dawn/native/stream/Stream.h", 454 "src/dawn/native/utils/WGPUHelpers.cpp", 455 "src/dawn/native/utils/WGPUHelpers.h", 456 "src/dawn/native/webgpu_absl_format.cpp", 457 "src/dawn/native/webgpu_absl_format.h", 458 # From dawn/src/dawn/native/BUILD.gn:utils_gen 459 "src/dawn/native/ChainUtils_autogen.cpp", 460 "src/dawn/native/ChainUtils_autogen.h", 461 "src/dawn/native/Features_autogen.h", 462 "src/dawn/native/Features_autogen.inl", 463 "src/dawn/native/ObjectType_autogen.cpp", 464 "src/dawn/native/ObjectType_autogen.h", 465 "src/dawn/native/ProcTable.cpp", 466 "src/dawn/native/ValidationUtils_autogen.cpp", 467 "src/dawn/native/ValidationUtils_autogen.h", 468 "src/dawn/native/dawn_platform_autogen.h", 469 "src/dawn/native/webgpu_StreamImpl_autogen.cpp", 470 "src/dawn/native/webgpu_absl_format_autogen.cpp", 471 "src/dawn/native/webgpu_absl_format_autogen.h", 472 "src/dawn/native/wgpu_structs_autogen.cpp", 473 "src/dawn/native/wgpu_structs_autogen.h", 474 # From dawn/src/dawn/common/BUILD.gn:common 475 "src/dawn/common/Alloc.h", 476 "src/dawn/common/Assert.cpp", 477 "src/dawn/common/Assert.h", 478 "src/dawn/common/BitSetIterator.h", 479 "src/dawn/common/Compiler.h", 480 "src/dawn/common/ConcurrentCache.h", 481 "src/dawn/common/Constants.h", 482 "src/dawn/common/ContentLessObjectCache.h", 483 "src/dawn/common/ContentLessObjectCacheable.h", 484 "src/dawn/common/CoreFoundationRef.h", 485 "src/dawn/common/DynamicLib.cpp", 486 "src/dawn/common/DynamicLib.h", 487 "src/dawn/common/GPUInfo.cpp", 488 "src/dawn/common/GPUInfo.h", 489 "src/dawn/common/HashUtils.h", 490 "src/dawn/common/IOKitRef.h", 491 "src/dawn/common/LinkedList.h", 492 "src/dawn/common/Log.cpp", 493 "src/dawn/common/Log.h", 494 "src/dawn/common/Math.cpp", 495 "src/dawn/common/Math.h", 496 "src/dawn/common/Mutex.cpp", 497 "src/dawn/common/Mutex.h", 498 "src/dawn/common/MutexProtected.h", 499 "src/dawn/common/NSRef.h", 500 "src/dawn/common/NonCopyable.h", 501 "src/dawn/common/Numeric.h", 502 "src/dawn/common/PlacementAllocated.h", 503 "src/dawn/common/Platform.h", 504 "src/dawn/common/Preprocessor.h", 505 "src/dawn/common/Ref.h", 506 "src/dawn/common/RefBase.h", 507 "src/dawn/common/RefCounted.cpp", 508 "src/dawn/common/RefCounted.h", 509 "src/dawn/common/Result.cpp", 510 "src/dawn/common/Result.h", 511 "src/dawn/common/SerialMap.h", 512 "src/dawn/common/SerialQueue.h", 513 "src/dawn/common/SerialStorage.h", 514 "src/dawn/common/SlabAllocator.cpp", 515 "src/dawn/common/SlabAllocator.h", 516 "src/dawn/common/StackContainer.h", 517 "src/dawn/common/SystemUtils.cpp", 518 "src/dawn/common/SystemUtils.h", 519 "src/dawn/common/TypeTraits.h", 520 "src/dawn/common/TypedInteger.h", 521 "src/dawn/common/UnderlyingType.h", 522 "src/dawn/common/WeakRef.h", 523 "src/dawn/common/WeakRefSupport.cpp", 524 "src/dawn/common/WeakRefSupport.h", 525 "src/dawn/common/ityp_array.h", 526 "src/dawn/common/ityp_bitset.h", 527 "src/dawn/common/ityp_span.h", 528 "src/dawn/common/ityp_stack_vec.h", 529 "src/dawn/common/ityp_vector.h", 530 "src/dawn/common/vulkan_platform.h", 531 "src/dawn/common/xlib_with_undefs.h", 532 # Generated files in dawn/src/dawn/common/BUILD.gn 533 "src/dawn/common/GPUInfo_autogen.cpp", 534 "src/dawn/common/GPUInfo_autogen.h", 535 "src/dawn/common/Version_autogen.h", 536 # From dawn/src/dawn/platform/BUILD.gn:platform 537 "include/dawn/platform/DawnPlatform.h", 538 "include/dawn/platform/dawn_platform_export.h", 539 "src/dawn/platform/DawnPlatform.cpp", 540 "src/dawn/platform/WorkerThread.cpp", 541 "src/dawn/platform/WorkerThread.h", 542 "src/dawn/platform/metrics/HistogramMacros.cpp", 543 "src/dawn/platform/metrics/HistogramMacros.h", 544 "src/dawn/platform/tracing/EventTracer.cpp", 545 "src/dawn/platform/tracing/EventTracer.h", 546 "src/dawn/platform/tracing/TraceEvent.h", 547] 548 549DAWN_VULKAN_SRCS = [ 550 # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan) 551 "src/dawn/native/SpirvValidation.cpp", 552 "src/dawn/native/SpirvValidation.h", 553 "src/dawn/native/vulkan/BackendVk.cpp", 554 "src/dawn/native/vulkan/BackendVk.h", 555 "src/dawn/native/vulkan/BindGroupLayoutVk.cpp", 556 "src/dawn/native/vulkan/BindGroupLayoutVk.h", 557 "src/dawn/native/vulkan/BindGroupVk.cpp", 558 "src/dawn/native/vulkan/BindGroupVk.h", 559 "src/dawn/native/vulkan/BufferVk.cpp", 560 "src/dawn/native/vulkan/BufferVk.h", 561 "src/dawn/native/vulkan/StreamImplVk.cpp", 562 "src/dawn/native/vulkan/CommandBufferVk.cpp", 563 "src/dawn/native/vulkan/CommandBufferVk.h", 564 "src/dawn/native/vulkan/CommandRecordingContext.h", 565 "src/dawn/native/vulkan/ComputePipelineVk.cpp", 566 "src/dawn/native/vulkan/ComputePipelineVk.h", 567 "src/dawn/native/vulkan/DescriptorSetAllocation.h", 568 "src/dawn/native/vulkan/DescriptorSetAllocator.cpp", 569 "src/dawn/native/vulkan/DescriptorSetAllocator.h", 570 "src/dawn/native/vulkan/DeviceVk.cpp", 571 "src/dawn/native/vulkan/DeviceVk.h", 572 "src/dawn/native/vulkan/ExternalHandle.h", 573 "src/dawn/native/vulkan/FencedDeleter.cpp", 574 "src/dawn/native/vulkan/FencedDeleter.h", 575 "src/dawn/native/vulkan/Forward.h", 576 "src/dawn/native/vulkan/PhysicalDeviceVk.cpp", 577 "src/dawn/native/vulkan/PhysicalDeviceVk.h", 578 "src/dawn/native/vulkan/PipelineCacheVk.cpp", 579 "src/dawn/native/vulkan/PipelineCacheVk.h", 580 "src/dawn/native/vulkan/PipelineLayoutVk.cpp", 581 "src/dawn/native/vulkan/PipelineLayoutVk.h", 582 "src/dawn/native/vulkan/QuerySetVk.cpp", 583 "src/dawn/native/vulkan/QuerySetVk.h", 584 "src/dawn/native/vulkan/QueueVk.cpp", 585 "src/dawn/native/vulkan/QueueVk.h", 586 "src/dawn/native/vulkan/RenderPassCache.cpp", 587 "src/dawn/native/vulkan/RenderPassCache.h", 588 "src/dawn/native/vulkan/RenderPipelineVk.cpp", 589 "src/dawn/native/vulkan/RenderPipelineVk.h", 590 "src/dawn/native/vulkan/ResourceHeapVk.cpp", 591 "src/dawn/native/vulkan/ResourceHeapVk.h", 592 "src/dawn/native/vulkan/ResourceMemoryAllocatorVk.cpp", 593 "src/dawn/native/vulkan/ResourceMemoryAllocatorVk.h", 594 "src/dawn/native/vulkan/SamplerVk.cpp", 595 "src/dawn/native/vulkan/SamplerVk.h", 596 "src/dawn/native/vulkan/ShaderModuleVk.cpp", 597 "src/dawn/native/vulkan/ShaderModuleVk.h", 598 "src/dawn/native/vulkan/SwapChainVk.cpp", 599 "src/dawn/native/vulkan/SwapChainVk.h", 600 "src/dawn/native/vulkan/TextureVk.cpp", 601 "src/dawn/native/vulkan/TextureVk.h", 602 "src/dawn/native/vulkan/UtilsVulkan.cpp", 603 "src/dawn/native/vulkan/UtilsVulkan.h", 604 "src/dawn/native/vulkan/VulkanBackend.cpp", 605 "src/dawn/native/vulkan/VulkanError.cpp", 606 "src/dawn/native/vulkan/VulkanError.h", 607 "src/dawn/native/vulkan/VulkanExtensions.cpp", 608 "src/dawn/native/vulkan/VulkanExtensions.h", 609 "src/dawn/native/vulkan/VulkanFunctions.cpp", 610 "src/dawn/native/vulkan/VulkanFunctions.h", 611 "src/dawn/native/vulkan/VulkanInfo.cpp", 612 "src/dawn/native/vulkan/VulkanInfo.h", 613 "src/dawn/native/vulkan/external_memory/MemoryImportParams.h", 614 "src/dawn/native/vulkan/external_memory/MemoryService.cpp", 615 "src/dawn/native/vulkan/external_memory/MemoryService.h", 616 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementation.cpp", 617 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementation.h", 618 "src/dawn/native/vulkan/external_semaphore/SemaphoreService.cpp", 619 "src/dawn/native/vulkan/external_semaphore/SemaphoreService.h", 620 "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementation.cpp", 621 "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementation.h", 622] 623 624DAWN_VULKAN_LINUX_SRCS = [ 625 # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan && (is_android || is_linux || is_chromeos)) 626 "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementationFD.cpp", 627 "src/dawn/native/vulkan/external_semaphore/SemaphoreServiceImplementationFD.h", 628 # From dawn/src/dawn/native/BUILD.gn:sources (dawn_enable_vulkan && (is_linux || is_chromeos)) 629 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationDmaBuf.cpp", 630 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationDmaBuf.h", 631 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationOpaqueFD.cpp", 632 "src/dawn/native/vulkan/external_memory/MemoryServiceImplementationOpaqueFD.h", 633] 634 635DAWN_VULKAN_DEFINES = [ 636 # From dawn/src/dawn/common/BUILD.gn:internal_config 637 "DAWN_ENABLE_BACKEND_VULKAN", 638] 639 640cc_library( 641 name = "dawn_native", 642 srcs = DAWN_SRCS + DAWN_VULKAN_SRCS + DAWN_VULKAN_LINUX_SRCS, 643 hdrs = DAWN_HDRS, 644 copts = [ 645 # List this as a copt, so as not to propagate it to dependents 646 # Skia has its own vulkan headers and we do not want these to 647 # interfere/override those. 648 "-Iexternal/vulkan_headers/include", 649 ], 650 defines = DAWN_VULKAN_DEFINES, 651 includes = [ 652 "include", 653 "src", 654 ], 655 visibility = ["//visibility:private"], # only used by :dawn 656 deps = [ 657 # Dawn specifically depends on dawn/src/tint:libtint 658 ":tint", 659 "@abseil_cpp//absl/strings:str_format", 660 "@vulkan_headers", 661 "@vulkan_tools", 662 "@vulkan_utility_libraries", 663 ], 664) 665 666cc_library( 667 name = "dawn_cpp", 668 srcs = [ 669 # From dawn/src/dawn/BUILD.gn#cpp 670 "include/dawn/webgpu.h", 671 "include/dawn/EnumClassBitmasks.h", 672 "include/dawn/webgpu_cpp.h", 673 "include/dawn/webgpu_cpp_chained_struct.h", 674 "src/dawn/webgpu_cpp.cpp", 675 ], 676 includes = [ 677 "include", 678 ], 679 visibility = ["//visibility:private"], # only used by :dawn 680) 681 682cc_library( 683 name = "dawn_proc", 684 srcs = [ 685 # From dawn/src/dawn/BUILD.gn#proc 686 "include/dawn/webgpu.h", 687 "include/dawn/dawn_proc.h", 688 "include/dawn/dawn_thread_dispatch_proc.h", 689 "include/dawn/dawn_proc_table.h", 690 "src/dawn/dawn_proc.c", 691 "src/dawn/dawn_thread_dispatch_proc.cpp", 692 ], 693 includes = [ 694 "include", 695 ], 696 visibility = ["//visibility:private"], # only used by :dawn 697) 698 699cc_library( 700 name = "dawn", 701 visibility = ["//visibility:public"], 702 deps = [ 703 ":dawn_cpp", 704 ":dawn_native", 705 ":dawn_proc", 706 ], 707) 708 709cc_library( 710 name = "tint", 711 hdrs = glob( 712 [ 713 "include/**/*.h", 714 ], 715 allow_empty = False, 716 ), 717 defines = [ 718 "TINT_BUILD_WGSL_READER=1", 719 "TINT_BUILD_WGSL_WRITER=1", 720 ], 721 includes = ["include"], 722 visibility = ["//visibility:public"], 723 deps = [ 724 "@dawn//src/tint/api", 725 ], 726) 727