| // 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; |
| }); |
| }; |