fuchsia.gpu.agis

AGIS - Android GPU Inspector Service

Added: 9

PROTOCOLS

ComponentRegistry

Defined in fuchsia.gpu.agis/agis.fidl

The AGIS ComponentRegistry protocol allows traceable Fuchsia components to register as Vulkan traceable.

GetVulkanSocket

Hanging get to retrieve the Vulkan endpoint of the ffx/vulkan Zircon socket pair. This get is first satisfied when the client (the AGI application) calls FfxBridge::GetSocket() on the |global_id| that matches the client id |id|.

Request

NameType
id ClientId

Response

NameType
payload ComponentRegistry_GetVulkanSocket_Result

Register

Register a process as traceable.

Request

NameType
id ClientId
process_koid zx/Koid
process_name string[32]

Response

NameType
payload ComponentRegistry_Register_Result

Unregister

Request

NameType
id ClientId

Response

NameType
payload ComponentRegistry_Unregister_Result

Connector

Defined in fuchsia.gpu.agis/agis.fidl

The AGIS Connector protocol provides the interface to retrieve the ffx socket endpoint.

GetSocket

Retrieves the ffx socket endpoint of the ffx/vulkan socket pair.

Request

NameType
global_id GlobalId

Response

NameType
payload Connector_GetSocket_Result

Observer

Defined in fuchsia.gpu.agis/agis.fidl

The AGIS Observer protocol provides the interface to retrieve the full list of registered Vulkan Traceable Components (vtcs).

Vtcs

Retrieve registered components. For AGI, gapis will be the only client of this Vtcs interface.

Request

<EMPTY>

Response

NameType
payload Observer_Vtcs_Result

STRUCTS

ComponentRegistry_GetVulkanSocket_Response resource

Defined in fuchsia.gpu.agis/agis.fidl

FieldTypeDescriptionDefault
socket handle<socket>? No default

ComponentRegistry_Register_Response

Defined in fuchsia.gpu.agis/agis.fidl

<EMPTY>

ComponentRegistry_Unregister_Response

Defined in fuchsia.gpu.agis/agis.fidl

<EMPTY>

Connector_GetSocket_Response resource

Defined in fuchsia.gpu.agis/agis.fidl

FieldTypeDescriptionDefault
socket handle<socket> No default

Observer_Vtcs_Response resource

Defined in fuchsia.gpu.agis/agis.fidl

FieldTypeDescriptionDefault
vtcs vector<Vtc>[128] No default

ENUMS

Error flexible

Type: uint32

Defined in fuchsia.gpu.agis/agis.fidl

NameValueDescription
1
2
3
4

TABLES

Vtc resource

Defined in fuchsia.gpu.agis/agis.fidl

AGIS provides FIDL services that facilitate Vulkan command tracing. It acts as an intermediary between gapii, the Android GPU Inspector interposing shared library and Vulkan layer, and the host Android GPU Inspector (AGI) application.

Vulkan Traceable Component (vtc)

OrdinalFieldTypeDescription
global_id GlobalId
process_koid zx/Koid
process_name string[32]

UNIONS

ComponentRegistry_GetVulkanSocket_Result strict resource

Defined in fuchsia.gpu.agis/agis.fidl

OrdinalVariantTypeDescription
response ComponentRegistry_GetVulkanSocket_Response
err Error

ComponentRegistry_Register_Result strict

Defined in fuchsia.gpu.agis/agis.fidl

OrdinalVariantTypeDescription
response ComponentRegistry_Register_Response
err Error

ComponentRegistry_Unregister_Result strict

Defined in fuchsia.gpu.agis/agis.fidl

OrdinalVariantTypeDescription
response ComponentRegistry_Unregister_Response
err Error

Connector_GetSocket_Result strict resource

Defined in fuchsia.gpu.agis/agis.fidl

OrdinalVariantTypeDescription
response Connector_GetSocket_Response
err Error

Observer_Vtcs_Result strict resource

Defined in fuchsia.gpu.agis/agis.fidl

OrdinalVariantTypeDescription
response Observer_Vtcs_Response
err Error

CONSTANTS

NameValueTypeDescription
MAX_VTCS 128 uint32

Max vtcs that may be registered. ZX_CHANNEL_MAX_MESSAGE_BYTES = 64KiB. At an approximate message size of 50B, rounding up to 64B, we easily fit 128 vtcs in a message with ample headroom for message size growth.

The number of vtcs is determined by developers, rather than users. The typical expected vtc count is 1 considering a developer performing Vulkan tracing on 1 component at a time.

ALIASES

NameValueDescription
ClientId uint64

Client supplied id.

GlobalId uint32

Agis internally generated id.