| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.vulkan.loader; |
| |
| using zx; |
| |
| flexible bits Features { |
| /// Implements Get(). |
| GET = 1; |
| /// Implements ConnectToDeviceFs(). |
| CONNECT_TO_DEVICE_FS = 2; |
| }; |
| |
| /// Service to provide Vulkan libraries to the loader. |
| [Discoverable, ForDeprecatedCBindings] |
| protocol Loader { |
| /// Requests a client driver library with the given name from the Vulkan loader |
| /// service. Returns a VMO suitable for loading as a dynamic library on |
| /// success, a null handle on failure. |
| Get(string:64 name) -> (zx.handle:VMO? lib); |
| |
| /// Connects to a FS serving fuchsia.io containing all device nodes |
| /// potentially relevant to ICDs. /dev/<devname> will be served under |
| /// <devname> in this directory. |
| ConnectToDeviceFs(zx.handle:CHANNEL channel); |
| |
| /// Returns the set of features the loader service supports. |
| GetSupportedFeatures() -> (Features features); |
| }; |