AGIS - Android GPU Inspector Service
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
Name | Type |
---|---|
id |
ClientId
|
Response
Name | Type |
---|---|
payload |
ComponentRegistry_GetVulkanSocket_Result
|
Register
Register a process as traceable.
Request
Name | Type |
---|---|
id |
ClientId
|
process_koid |
zx/Koid
|
process_name |
string:32
|
Response
Name | Type |
---|---|
payload |
ComponentRegistry_Register_Result
|
Unregister
Request
Name | Type |
---|---|
id |
ClientId
|
Response
Name | Type |
---|---|
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
Name | Type |
---|---|
global_id |
GlobalId
|
Response
Name | Type |
---|---|
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
Name | Type |
---|---|
payload |
Observer_Vtcs_Result
|
STRUCTS
ComponentRegistry_GetVulkanSocket_Response resource
Defined in fuchsia.gpu.agis/agis.fidl
Field | Type | Description | Default |
---|---|---|---|
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
Field | Type | Description | Default |
---|---|---|---|
socket |
handle<socket>
|
No default |
Observer_Vtcs_Response resource
Defined in fuchsia.gpu.agis/agis.fidl
Field | Type | Description | Default |
---|---|---|---|
vtcs |
vector<Vtc>:128
|
No default |
ENUMS
Error flexible
Type: uint32
Defined in fuchsia.gpu.agis/agis.fidl
Name | Value | Description |
---|---|---|
NOT_FOUND |
1 |
|
ALREADY_REGISTERED |
2 |
|
VTCS_EXCEEDED |
3 |
|
INTERNAL_ERROR |
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)
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
global_id |
GlobalId
|
|
2 |
process_koid |
zx/Koid
|
|
3 |
process_name |
string:32
|
UNIONS
ComponentRegistry_GetVulkanSocket_Result strict resource
Defined in fuchsia.gpu.agis/agis.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
ComponentRegistry_GetVulkanSocket_Response
|
|
2 |
err |
Error
|
ComponentRegistry_Register_Result strict
Defined in fuchsia.gpu.agis/agis.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
ComponentRegistry_Register_Response
|
|
2 |
err |
Error
|
ComponentRegistry_Unregister_Result strict
Defined in fuchsia.gpu.agis/agis.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
ComponentRegistry_Unregister_Response
|
|
2 |
err |
Error
|
Connector_GetSocket_Result strict resource
Defined in fuchsia.gpu.agis/agis.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Connector_GetSocket_Response
|
|
2 |
err |
Error
|
Observer_Vtcs_Result strict resource
Defined in fuchsia.gpu.agis/agis.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Observer_Vtcs_Response
|
|
2 |
err |
Error
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
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
Name | Value | Description |
---|---|---|
ClientId |
uint64 |
Client supplied id. |
GlobalId |
uint32 |
Agis internally generated id. |