blob: d531e68baf2581d869a9f35c5f02f08eed47c4c0 [file]
# Copyright 2019 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# HAL implementation using Vulkan and (likely) SPIR-V executables.
load("//iree:build_defs.oss.bzl", "iree_cmake_extra_content")
package(
default_visibility = ["//visibility:public"],
features = ["layering_check"],
licenses = ["notice"], # Apache 2.0
)
iree_cmake_extra_content(
content = """
if(NOT ${IREE_HAL_DRIVER_VULKAN})
return()
endif()
""",
)
cc_library(
name = "vulkan",
srcs = [
"api.cc",
"builtin_executables.cc",
"builtin_executables.h",
"command_queue.h",
"debug_reporter.cc",
"debug_reporter.h",
"descriptor_pool_cache.cc",
"descriptor_pool_cache.h",
"descriptor_set_arena.cc",
"descriptor_set_arena.h",
"direct_command_buffer.cc",
"direct_command_buffer.h",
"direct_command_queue.cc",
"direct_command_queue.h",
"emulated_semaphore.cc",
"emulated_semaphore.h",
"extensibility_util.cc",
"extensibility_util.h",
"handle_util.h",
"internal_vk_mem_alloc.cc",
"internal_vk_mem_alloc.h",
"native_descriptor_set.cc",
"native_descriptor_set.h",
"native_descriptor_set_layout.cc",
"native_descriptor_set_layout.h",
"native_event.cc",
"native_event.h",
"native_executable.cc",
"native_executable.h",
"native_executable_layout.cc",
"native_executable_layout.h",
"native_semaphore.cc",
"native_semaphore.h",
"nop_executable_cache.cc",
"nop_executable_cache.h",
"serializing_command_queue.cc",
"serializing_command_queue.h",
"status_util.c",
"status_util.h",
"timepoint_util.cc",
"timepoint_util.h",
"tracing.cc",
"tracing.h",
"vma_allocator.cc",
"vma_allocator.h",
"vma_buffer.cc",
"vma_buffer.h",
"vulkan_device.cc",
"vulkan_driver.cc",
"vulkan_headers.h",
],
hdrs = [
# TODO(benvanik): hide all but api.h.
"api.h",
"vulkan_device.h",
"vulkan_driver.h",
],
visibility = ["//visibility:public"],
deps = [
":dynamic_symbols",
"//iree/base",
"//iree/base:cc",
"//iree/base:core_headers",
"//iree/base:logging",
"//iree/base:tracing",
"//iree/base/internal",
"//iree/base/internal:synchronization",
"//iree/base/internal/flatcc:parsing",
"//iree/hal",
"//iree/hal/vulkan/builtin",
"//iree/hal/vulkan/util:arena",
"//iree/hal/vulkan/util:intrusive_list",
"//iree/hal/vulkan/util:ref_ptr",
"//iree/schemas:spirv_executable_def_c_fbs",
"@vulkan_headers",
"@vulkan_memory_allocator//:impl_header_only",
],
)
cc_library(
name = "dynamic_symbols",
srcs = [
"dynamic_symbols.cc",
"vulkan_headers.h",
],
hdrs = [
"dynamic_symbols.h",
],
textual_hdrs = [
"dynamic_symbol_tables.h",
],
deps = [
"//iree/base",
"//iree/base:cc",
"//iree/base:core_headers",
"//iree/base:tracing",
"//iree/base/internal:dynamic_library",
"//iree/hal/vulkan/util:ref_ptr",
"@vulkan_headers",
],
)
cc_test(
name = "dynamic_symbols_test",
srcs = ["dynamic_symbols_test.cc"],
tags = ["driver=vulkan"],
deps = [
":dynamic_symbols",
"//iree/base",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)