AGIS - Android GPU 检查器服务
协议
ComponentRegistry
在 fuchsia.gpu.agis/agis.fidl 中定义
AGIS ComponentRegistry 协议允许将可跟踪的 Fuchsia 组件注册为 Vulkan 可跟踪组件。
获取 VulkanSocket
挂起获取以检索 ffx/vulkan Zircon Zircon 套接字对的 Vulkan 端点。当客户端(AGI 应用)对与客户端 ID |id| 匹配的 |global_id| 调用 FfxBridge::GetSocket() 时,系统会首先满足此 get 请求。
请求
名称 | 类型 |
---|---|
id |
ClientId
|
回复
名称 | 类型 |
---|---|
payload |
ComponentRegistry_GetVulkanSocket_Result
|
注册
将进程注册为可跟踪。
请求
名称 | 类型 |
---|---|
id |
ClientId
|
process_koid |
zx/Koid
|
process_name |
string[32]
|
回复
名称 | 类型 |
---|---|
payload |
ComponentRegistry_Register_Result
|
取消注册
请求
名称 | 类型 |
---|---|
id |
ClientId
|
回复
名称 | 类型 |
---|---|
payload |
ComponentRegistry_Unregister_Result
|
连接线
在 fuchsia.gpu.agis/agis.fidl 中定义
AGIS 连接器协议提供了用于检索 ffx 套接字端点的接口。
GetSocket
检索 ffx/vulkan 套接字对的 ffx 套接字端点。
请求
名称 | 类型 |
---|---|
global_id |
GlobalId
|
回复
名称 | 类型 |
---|---|
payload |
Connector_GetSocket_Result
|
Observer
在 fuchsia.gpu.agis/agis.fidl 中定义
AGIS Observer 协议提供了用于检索已注册的 Vulkan 可跟踪组件 (vtcs) 的完整列表的接口。
浏览型转化
检索已注册的组件。 对于 AGI,gapis 将是此 Vtcs 接口的唯一客户端。
请求
<空>
回复
名称 | 类型 |
---|---|
payload |
Observer_Vtcs_Result
|
结构
ComponentRegistry_GetVulkanSocket_Response 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
socket |
handle<socket>?
|
无默认值 |
ComponentRegistry_Register_Response
在 fuchsia.gpu.agis/agis.fidl 中定义
<空>
ComponentRegistry_Unregister_Response
在 fuchsia.gpu.agis/agis.fidl 中定义
<空>
Connector_GetSocket_Response 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
socket |
handle<socket>
|
无默认值 |
Observer_Vtcs_Response 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
vtcs |
vector<Vtc>[128]
|
无默认值 |
枚举
柔性错误
类型:uint32
在 fuchsia.gpu.agis/agis.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
找不到 |
1 |
|
已登记 |
2 |
|
VTCS_EXCEEDED |
3 |
|
INTERNAL_ERROR |
4 |
表格
VTC 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
AGIS 提供有助于 Vulkan 命令跟踪的 FIDL 服务。它充当 gapii(介于共享库和 Vulkan 层之间的 Android GPU 检查器)与主机 Android GPU 检查器 (AGI) 应用之间的中介。
Vulkan 可跟踪组件 (vtc)
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
global_id |
GlobalId
|
|
2 |
process_koid |
zx/Koid
|
|
3 |
process_name |
string[32]
|
联合
ComponentRegistry_GetVulkanSocket_Result 严格资源
在 fuchsia.gpu.agis/agis.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ComponentRegistry_GetVulkanSocket_Response
|
|
2 |
err |
Error
|
ComponentRegistry_Register_Result 严格
在 fuchsia.gpu.agis/agis.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ComponentRegistry_Register_Response
|
|
2 |
err |
Error
|
ComponentRegistry_Unregister_Result 严格
在 fuchsia.gpu.agis/agis.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ComponentRegistry_Unregister_Response
|
|
2 |
err |
Error
|
Connector_GetSocket_Result 严格 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Connector_GetSocket_Response
|
|
2 |
err |
Error
|
Observer_Vtcs_Result 严格 资源
在 fuchsia.gpu.agis/agis.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Observer_Vtcs_Response
|
|
2 |
err |
Error
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_VTCS |
128
|
uint32 |
可以注册的 vtcs 大小上限。 ZX_CHANNEL_MAX_MESSAGE_BYTES = 64KiB。当消息大小约为 50B(向上舍入为 64B)时,我们可以轻松将 128 个 Vtcs 放入消息中,有充足的提升空间来增加消息大小。 浏览型转化次数由开发者而非用户决定。考虑到开发者一次在 1 个组件上执行 Vulkan 跟踪,典型的预期 vtc 计数为 1。 |
别名
名称 | 值 | 说明 |
---|---|---|
ClientId |
uint64 |
客户提供的 ID。 |
GlobalId |
uint32 |
AAG 内部生成的 ID。 |