fuchsia.gpu.agis

AGIS - Android GPU 检查器服务

添加数量:9

协议

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
3
4

表格

VTC 资源

fuchsia.gpu.agis/agis.fidl 中定义

AGIS 提供有助于 Vulkan 命令跟踪的 FIDL 服务。它充当 gapii(介于共享库和 Vulkan 层之间的 Android GPU 检查器)与主机 Android GPU 检查器 (AGI) 应用之间的中介。

Vulkan 可跟踪组件 (vtc)

序数字段类型说明
global_id GlobalId
process_koid zx/Koid
process_name string[32]

联合

ComponentRegistry_GetVulkanSocket_Result 严格资源

fuchsia.gpu.agis/agis.fidl 中定义

序数变体类型说明
response ComponentRegistry_GetVulkanSocket_Response
err Error

ComponentRegistry_Register_Result 严格

fuchsia.gpu.agis/agis.fidl 中定义

序数变体类型说明
response ComponentRegistry_Register_Response
err Error

ComponentRegistry_Unregister_Result 严格

fuchsia.gpu.agis/agis.fidl 中定义

序数变体类型说明
response ComponentRegistry_Unregister_Response
err Error

Connector_GetSocket_Result 严格 资源

fuchsia.gpu.agis/agis.fidl 中定义

序数变体类型说明
response Connector_GetSocket_Response
err Error

Observer_Vtcs_Result 严格 资源

fuchsia.gpu.agis/agis.fidl 中定义

序数变体类型说明
response Observer_Vtcs_Response
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。