blob: cddb22afc12680fcc62f6f5506bc0b4a63b5668c [file] [log] [blame]
// Copyright 2025 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.
@available(added=HEAD)
library fuchsia.gpu.magma.test;
type ExecuteCommandNoResourcesType = flexible enum : uint64 {
UNKNOWN = 1;
NOT_IMPLEMENTED = 2;
SUPPORTED = 3;
INVALID = 4;
};
type BufferMapFeatures = flexible bits : uint64 {
SUPPORTED = 1;
SUPPORTS_GROWABLE = 2;
};
type GetDeviceTimestampType = flexible enum : uint64 {
SUPPORTED = 1;
NOT_IMPLEMENTED = 2;
};
type BufferUnmapType = flexible enum : uint64 {
SUPPORTED = 1;
NOT_IMPLEMENTED = 2;
};
type ConnectionPerformBufferOpType = flexible enum : uint64 {
SUPPORTED = 1;
NOT_IMPLEMENTED = 2;
};
@discoverable
open protocol VendorHelper {
flexible GetConfig() -> (table {
1: get_device_timestamp_type GetDeviceTimestampType;
2: get_device_timestamp_query_id uint64;
3: execute_command_no_resources_type ExecuteCommandNoResourcesType;
4: buffer_map_features BufferMapFeatures;
5: buffer_unmap_type BufferUnmapType;
6: connection_perform_buffer_op_type ConnectionPerformBufferOpType;
});
flexible ValidateCalibratedTimestamps(struct {
/// Contains a vendor specific representation of a device timestamp.
query_buffer vector<uint8>:MAX;
before_ns uint64;
after_ns uint64;
}) -> (struct {
result bool;
});
};