[metal] Initial bring up of Metal HAL driver (1/n) (#3045) This commit starts a Metal HAL driver. It registers the Metal HAL driver and implements the following functionalities: * All hal::Driver APIs * hal::Device APIs for creating queues/buffers/semaphores and waiting on semaphores * All hal::CommandQueue APIs * All hal::Semaphore APIs * hal::CommandBuffer APIs for lifetime All other APIs will return unimplemented error for now. hal/cts/ tests are enhanced to cover hal::Driver APIs and more semaphore wait APIs. Existing hal/cts/ tests are all passing, except allocator_test, which is not yet implemented at the moment.
diff --git a/docs/get_started/getting_started_linux_vulkan.md b/docs/get_started/getting_started_linux_vulkan.md index 5a0fd7f..8ccf6c1 100644 --- a/docs/get_started/getting_started_linux_vulkan.md +++ b/docs/get_started/getting_started_linux_vulkan.md
@@ -58,16 +58,16 @@ HAL, which includes checking for supported layers and extensions. Run the -[device creation test](https://github.com/google/iree/blob/main/iree/hal/cts/device_creation_test.cc): +[driver test](https://github.com/google/iree/blob/main/iree/hal/cts/driver_test.cc): ```shell # -- CMake -- $ export VK_LOADER_DEBUG=all -$ cmake --build build/ --target iree_hal_cts_device_creation_test -$ ./build/iree/hal/cts/iree_hal_cts_device_creation_test +$ cmake --build build/ --target iree_hal_cts_driver_test +$ ./build/iree/hal/cts/iree_hal_cts_driver_test # -- Bazel -- -$ bazel test iree/hal/cts:device_creation_test --test_env=VK_LOADER_DEBUG=all --test_output=all +$ bazel test iree/hal/cts:driver_test --test_env=VK_LOADER_DEBUG=all --test_output=all ``` If these tests pass, you can skip down to the next section.
diff --git a/docs/get_started/getting_started_macos_bazel.md b/docs/get_started/getting_started_macos_bazel.md index 3fc3dcb..1dce426 100644 --- a/docs/get_started/getting_started_macos_bazel.md +++ b/docs/get_started/getting_started_macos_bazel.md
@@ -126,9 +126,11 @@ ### Further Reading * For an introduction to IREE's project structure and developer tools, see - [Developer Overview](../developing_iree/developer_overview.md) <!-- TODO: + [Developer Overview](../developing_iree/developer_overview.md). +* To understand how IREE implements HAL over Metal, see + [Metal HAL Driver](../design_docs/metal_hal_driver.md). +<!-- TODO: Link to macOS versions of these guides once they are developed. -* To target GPUs using Vulkan, see - [Getting Started on Linux with Vulkan](getting_started_linux_vulkan.md) * To use IREE's Python bindings, see - [Getting Started with Python](getting_started_python.md) --> + [Getting Started with Python](getting_started_python.md) +-->
diff --git a/docs/get_started/getting_started_macos_cmake.md b/docs/get_started/getting_started_macos_cmake.md index 7b916cd..b71284a 100644 --- a/docs/get_started/getting_started_macos_cmake.md +++ b/docs/get_started/getting_started_macos_cmake.md
@@ -110,9 +110,11 @@ ### Further Reading * For an introduction to IREE's project structure and developer tools, see - [Developer Overview](../developing_iree/developer_overview.md) <!-- TODO: + [Developer Overview](../developing_iree/developer_overview.md). +* To understand how IREE implements HAL over Metal, see + [Metal HAL Driver](../design_docs/metal_hal_driver.md). +<!-- TODO: Link to macOS versions of these guides once they are developed. -* To target GPUs using Vulkan, see - [Getting Started on Linux with Vulkan](getting_started_linux_vulkan.md) * To use IREE's Python bindings, see - [Getting Started with Python](getting_started_python.md) --> + [Getting Started with Python](getting_started_python.md) +-->
diff --git a/docs/get_started/getting_started_windows_vulkan.md b/docs/get_started/getting_started_windows_vulkan.md index e263052..dcee4a1 100644 --- a/docs/get_started/getting_started_windows_vulkan.md +++ b/docs/get_started/getting_started_windows_vulkan.md
@@ -58,16 +58,16 @@ HAL, which includes checking for supported layers and extensions. Run the -[device creation test](https://github.com/google/iree/blob/main/iree/hal/cts/device_creation_test.cc): +[driver test](https://github.com/google/iree/blob/main/iree/hal/cts/driver_test.cc): ```powershell # -- CMake -- > set VK_LOADER_DEBUG=all -> cmake --build build\ --target iree_hal_cts_device_creation_test -> .\build\iree\hal\cts\iree_hal_cts_device_creation_test.exe +> cmake --build build\ --target iree_hal_cts_driver_test +> .\build\iree\hal\cts\iree_hal_cts_driver_test.exe # -- Bazel -- -> bazel test iree/hal/cts:device_creation_test --test_env=VK_LOADER_DEBUG=all --test_output=all +> bazel test iree/hal/cts:driver_test --test_env=VK_LOADER_DEBUG=all --test_output=all ``` If these tests pass, you can skip down to the next section.