blob: 001d09a17b136e3a2207068f01eb48d8781293d1 [file] [log] [blame] [edit]
// 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);
};