Fuchsia.gpu.magma

Magma 是 Fuchsia 上 GPU/NPU 的驱动程序模型。

Magma 有两个驱动程序组件:一个加载到每个应用地址空间中的硬件专用库(“客户端驱动程序”,有时称为“可安装客户端驱动程序”或“ICD”);以及与硬件交互的 Magma 系统驱动程序。 此处定义了两个驱动程序部分之间的通信协议。

某些名称具有数字后缀(例如 BufferRangeOp2);该数字是协议演变的细节,可以忽略。

新增:9

协议

CombinedDevice

在 fuchsia.gpu.magma/magma.fidl 中定义

所有正式版 |Device| 协议的组合。此协议在 Magma 服务端实现,不应由客户端使用。

Connect2

创建与设备的连接,该连接由两个 IPC 通道组成。主通道用于主协议(见下文)。通知通道用于仅在反向(服务器-客户端)方向发送的供应商特定消息,通常是为了响应客户端命令完成。

请求

名称类型
client_id uint64
primary_channel server_end:Primary
notification_channel server_end:Notification

DumpState

将驱动程序和硬件状态转储到日志。

请求

名称类型
dump_type uint32

GetIcdList

返回可与此 Magma 设备搭配使用的 ICD 列表。该列表按偏好程度降序排列。

请求

<EMPTY>

响应

名称类型
icd_list vector<IcdInfo>:8

查询

成功时,返回缓冲区中的结果或简单值。

请求

名称类型
query_id QueryId

响应

名称类型
payload Device_Query_Result

DebugUtils

在 fuchsia.gpu.magma/magma.fidl 中定义

GPU 驱动程序公开的低级协议,主要用于测试和调试驱动程序。

Added: HEAD

SetPowerState

设置 GPU 电源状态。在转换完成后返回。

请求

名称类型
power_state int64

响应

名称类型
payload DebugUtils_SetPowerState_Result

DependencyInjection

在 fuchsia.gpu.magma/magma.fidl 中定义

此协议由 ZX_PROTOCOL_GPU_DEPENDENCY_INJECTION 设备实现。它用于将对其他服务的依赖项注入 MSD。它只能由特权进程使用。

SetMemoryPressureProvider

向 MSD 提供 fuchsia.memorypressure.Provider 实现。

请求

名称类型
provider client_end:fuchsia.memorypressure/Provider

设备

在 fuchsia.gpu.magma/magma.fidl 中定义

Magma 设备协议允许客户端通过查询来了解硬件,例如设备和供应商 ID,以及设备的系统驱动程序支持哪些客户端驱动程序。
为了进一步与设备互动,客户端可以建立由通道对组成的连接:用于发出请求的主通道(请参阅下文的“主协议”)和用于接收通知消息的辅助通道(请参阅下文的“通知协议”)。

Connect2

创建与设备的连接,该连接由两个 IPC 通道组成。主通道用于主协议(见下文)。通知通道用于仅在反向(服务器-客户端)方向发送的供应商特定消息,通常是为了响应客户端命令完成。

请求

名称类型
client_id uint64
primary_channel server_end:Primary
notification_channel server_end:Notification

查询

成功时,返回缓冲区中的结果或简单值。

请求

名称类型
query_id QueryId

响应

名称类型
payload Device_Query_Result

DiagnosticDevice

在 fuchsia.gpu.magma/magma.fidl 中定义

用于从 Magma 设备公开诊断信息的方法。

DumpState

将驱动程序和硬件状态转储到日志。

请求

名称类型
dump_type uint32

IcdLoaderDevice

在 fuchsia.gpu.magma/magma.fidl 中定义

由 MSD 实现并公开以供 ICD 加载器使用的方法。

GetIcdList

返回可与此 Magma 设备搭配使用的 ICD 列表。该列表按偏好程度降序排列。

请求

<EMPTY>

响应

名称类型
icd_list vector<IcdInfo>:8

通知

在 fuchsia.gpu.magma/magma.fidl 中定义

此协议为空,因为消息内容因供应商而异。

PerformanceCounterAccess

在 fuchsia.gpu.magma/magma.fidl 中定义

此协议由 ZX_PROTOCOL_GPU_PERFORMANCE_COUNTERS 设备实现。

GetPerformanceCountToken

此访问令牌不用作事件,而是传递给 Primary.EnablePerformanceCounterAccess。

请求

<EMPTY>

响应

名称类型
access_token handle<event>

PerformanceCounterEvents

在 fuchsia.gpu.magma/magma.fidl 中定义

OnPerformanceCounterReadCompleted

表示性能计数器缓冲区中有数据。这些结果将按照读取完成的顺序输出。

响应

名称类型
payload PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest

PowerElementProvider

在 fuchsia.gpu.magma/magma.fidl 中定义

此协议用于检索有关此驱动程序提供的功率级别的信息。

Added: HEAD

GetClockSpeedLevel

获取一个功率级别,该级别表示 GPU 时钟至少设置为目标频率。 只要时钟频率保持不变,电源级别就可以允许 GPU 处于空闲状态或关闭。

请求

名称类型
payload PowerElementProviderGetClockSpeedLevelRequest

响应

名称类型
payload PowerElementProvider_GetClockSpeedLevel_Result

GetPowerGoals

检索硬件可以尝试实现的功耗目标列表。

请求

<EMPTY>

响应

名称类型
payload PowerElementProvider_GetPowerGoals_Result

SetClockLimit

将时钟频率限制为最高不超过特定频率。

请求

名称类型
payload PowerElementProviderSetClockLimitRequest

响应

名称类型
payload PowerElementProvider_SetClockLimit_Result

主要

在 fuchsia.gpu.magma/magma.fidl 中定义

如果发生系统驱动程序错误,或者客户端发送了其本应知道无效的消息,则连接将关闭,并通过 epitaph 发送 zx.Status。

AddPerformanceCounterBufferOffsetsToPool

向池中添加一组缓冲区偏移量。|offsets[n].buffer_id| 是之前使用 ImportBuffer() 导入的缓冲区的 ID。同一缓冲区可以添加到多个池中。即使在调用 ReleaseBuffer 后,池也会保留对缓冲区的引用。转储到此条目时,计数器将从 |offsets[n].buffer_offset| 字节开始写入缓冲区,最多写入 |offsets[n].buffer_offset| + |offsets[n].buffer_size|。|offsets[n].buffer_size| 必须足够大,才能容纳所有已启用的计数器。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
pool_id PerformanceCounterPoolId
offsets vector<BufferRange>:64

BufferRangeOp2

对缓冲区的一定范围执行操作。

请求

名称类型
op BufferOp
range BufferRange

ClearPerformanceCounters

将所有列出的性能计数器的值设置为 0。部分硬件可能不支持。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
counters PerformanceCounterSet

CreateContext

创建用于执行命令的上下文 context_id。上下文可能与硬件状态相关联。 已弃用:请使用 CreateContext2。 TODO(https://fxbug.dev/413030654):完全弃用此 API。

请求

名称类型
context_id ContextId

CreateContext2

创建用于执行命令的上下文 context_id。上下文可能与硬件状态相关联。

新增:28

请求

名称类型
context_id ContextId
priority Priority

CreatePerformanceCounterBufferPool

创建一个缓冲区池,性能计数器可以转储到其中。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
pool_id PerformanceCounterPoolId
event_channel server_end:PerformanceCounterEvents

DestroyContext

销毁上下文 context_id。

请求

名称类型
context_id ContextId

DumpPerformanceCounters

触发将性能计数器转储到缓冲区池。如果池中没有缓冲区,则可能会静默失败。|trigger_id| 是由客户端分配的任意 ID,可在 OnPerformanceCounterReadCompleted 中返回。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
pool_id PerformanceCounterPoolId
trigger_id PerformanceCounterTriggerId

EnableFlowControl

启用 OnNotifyMessagesConsumed 和 OnNotifyMemoryImported 事件。

请求

<EMPTY>

EnablePerformanceCounterAccess

尝试启用性能计数器 FIDL 消息。为确保成功,|access_token| 必须由匹配设备的 PerformanceCounterAccess.GetPerformanceCountToken() 返回。

请求

名称类型
access_token handle<event>

EnablePerformanceCounters

启用一组性能计数器。停用不在新集合中的已启用性能计数器。连接关闭时,性能计数器也会自动停用。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
counters PerformanceCounterSet

ExecuteCommand

提交命令缓冲区,以便在硬件上执行,并附带关联的 resources。resources 必须引用已导入的缓冲区。 wait_semaphores 和 signal_semaphores 必须引用已导入的事件。 必须在执行开始之前发出所有 wait_semaphores 信号,然后重置。命令缓冲区完成后,系统会发出 signal_semaphores 信号。

请求

名称类型
context_id ContextId
resources vector<BufferRange>
command_buffers vector<CommandBuffer>
wait_semaphores vector<ObjectId>
signal_semaphores vector<ObjectId>
flags CommandBufferFlags

ExecuteInlineCommands

提交一系列命令,以便在不使用命令缓冲区的情况下在硬件上执行。 应计算发送的命令数量,使消息总大小小于 MAX_INLINE_COMMANDS_DATA_SIZE。

新增:15

请求

名称类型
context_id ContextId
commands vector<InlineCommand>

清空

会产生到系统驱动程序的往返,用于确保所有先前的消息都已被观察到,但不一定已完成。

请求

<EMPTY>

响应

<EMPTY>

ImportObject

导入一个对象,以便在系统驱动程序中使用。

新增:13

请求

名称类型
payload PrimaryImportObjectRequest

IsPerformanceCounterAccessAllowed

如果任何 EnablePerformanceCounterAccess 消息成功,则返回 true。

请求

<EMPTY>

响应

名称类型
enabled bool

MapBuffer

将页面范围映射到连接地址空间中地址 hw_va 处的硬件。 flags 是 MapFlags 中的一组标志,用于指定硬件如何访问缓冲区。

请求

名称类型
payload PrimaryMapBufferRequest

OnNotifyMemoryImported

表示服务器导入了指定数量的缓冲区内存字节。 调用方应限制传输中的 ImportBuffer 消息所占用的内存量: (发送的字节数 - 服务器导入的字节数)<= MaxBytes(请参阅 QueryId::MAXIMUM_INFLIGHT_PARAMS)。 这是一个软限制,旨在防止内存消耗过多,但对于大型消息,客户端可能会超出此限制。 服务器会尽快导入内存,但只有在消耗的字节数达到上限的一半时,才会发送此事件;因此,如果客户端的传输中字节数小于 max/2,则无论其大小如何,客户端都应发送 ImportBuffer 消息。

响应

名称类型
bytes uint64

OnNotifyMessagesConsumed

表示服务器已使用指定数量的消息。 调用方应限制传输中的消息数量: (发送的消息数 - 服务器使用的消息数)<= MaxMessages(请参阅 QueryId::MAXIMUM_INFLIGHT_PARAMS)。消息实际上会尽快被服务器使用,但只有当使用的消息数量达到上限的一半时,服务器才会发送此事件。

响应

名称类型
count uint64

ReleaseObject

销毁此连接中具有 object_id 的对象。

请求

名称类型
object_id ObjectId
object_type ObjectType

ReleasePerformanceCounterBufferPool

释放性能计数器缓冲区池。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
pool_id PerformanceCounterPoolId

RemovePerformanceCounterBufferFromPool

从池中移除缓冲区的每个偏移量。在服务器上处理完此方法后,系统不会再将任何转储处理到此缓冲区中。正在转储到此缓冲区的数据可能会丢失。在调用此方法之前,必须已使用 EnablePerformanceCounterAccess 启用性能计数器访问权限。

请求

名称类型
pool_id PerformanceCounterPoolId
buffer_id ObjectId

UnmapBuffer

从给定 buffer_id 的硬件中释放地址 hw_va 处的映射。 缓冲区在释放时也会隐式取消映射。

请求

名称类型
payload PrimaryUnmapBufferRequest

TestDevice

在 fuchsia.gpu.magma/magma.fidl 中定义

用于测试 MSD 的其他设备方法,不应由 ICD 使用。 已弃用:请使用 TestDevice2。

已移除:HEAD

Connect2

创建与设备的连接,该连接由两个 IPC 通道组成。主通道用于主协议(见下文)。通知通道用于仅在反向(服务器-客户端)方向发送的供应商特定消息,通常是为了响应客户端命令完成。

请求

名称类型
client_id uint64
primary_channel server_end:Primary
notification_channel server_end:Notification

DumpState

将驱动程序和硬件状态转储到日志。

请求

名称类型
dump_type uint32

GetIcdList

返回可与此 Magma 设备搭配使用的 ICD 列表。该列表按偏好程度降序排列。

请求

<EMPTY>

响应

名称类型
icd_list vector<IcdInfo>:8

GetUnitTestStatus

请求

<EMPTY>

响应

名称类型
status zx/Result

查询

成功时,返回缓冲区中的结果或简单值。

请求

名称类型
query_id QueryId

响应

名称类型
payload Device_Query_Result

TestDevice2

在 fuchsia.gpu.magma/magma.fidl 中定义

用于报告在 MSD 中运行的测试的其他方法。

Added: HEAD

GetUnitTestStatus

请求

<EMPTY>

响应

名称类型
status zx/Result

STRUCTS

BufferRange

在 fuchsia.gpu.magma/magma.fidl 中定义

字段类型说明默认
buffer_id ObjectId 无默认应用
offset uint64 无默认应用
size uint64 无默认应用

CommandBuffer

在 fuchsia.gpu.magma/magma.fidl 中定义

命令缓冲区可用于在共享缓冲区 (VMO) 中传递硬件指令。

字段类型说明默认
resource_index uint32

包含用于启动命令缓冲区的指令的资源的索引。

无默认应用
start_offset uint64

资源内的起始偏移量。

无默认应用

DebugUtils_SetPowerState_Response

在 fuchsia.gpu.magma/magma.fidl 中定义

字段类型说明默认
time_in_ns uint64

完成电源状态转换所需的时间(以纳秒为单位)。

无默认应用

PowerElementProvider_GetPowerGoals_Response 资源

在 fuchsia.gpu.magma/magma.fidl 中定义

字段类型说明默认
goals vector<PowerGoal> 无默认应用

枚举

BufferOp 灵活

类型:uint32

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
1

使用此范围内映射的页面填充硬件页表,并根据需要提交页面。对于映射为 GROWABLE 的分配,则不需要这样做,因为页表会按需填充。

2

取消填充此范围的页表映射。这会阻止硬件访问该范围内的页面,但页面会保留其内容。

ObjectType flexible

类型:uint32

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
11

由 Zircon VMO 支持的内存对象。

12

由 Zircon 事件或计数器支持的同步对象。

新增:13

PowerGoalType flexible

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

此枚举的每个元素都代表特定电源状态的高级目标。

Added: HEAD

名称值说明
1

硬件已开机,但处于空闲状态,随时可以立即处理工作。

2

硬件处于高性能状态,适合游戏或其他高强度活动。

3

硬件处于可在长时间内提供稳定性能水平的模式。

优先考虑灵活

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

指定的优先级。硬件会尝试分配资源,以便优先处理优先级较高的任务。 只有受信任的客户端才能请求高于 MEDIUM 的优先级。 MEDIUM 被视为默认优先级。

新增:28

名称值说明
128
256
512
1024

QueryId flexible

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

可从 Magma 系统驱动程序查询的硬件和驱动程序信息类型。可以使用供应商专用 ID 号,但这些 ID 将列在其他位置。

名称值说明
0

返回硬件供应商 ID(简单结果)- 如果可能,应为硬件供应商的 PCI ID,否则应为 Khronos 供应商 ID。

1

返回硬件设备 ID(简单结果)

2

返回系统驱动程序支持的供应商接口版本。

新增:12
3

如果支持 MAGMA_QUERY_TOTAL_TIME,则返回 true(简单结果)

5

高 32 位:传输中的消息数上限;低 32 位:传输中的内存上限 (MB)(简单结果)

500

返回一个 struct magma_total_time_query_result(缓冲区结果);请参阅:src/graphics/lib/magma/include/magma/magma_common_defs.h

10000

供应商专用查询 ID 从此处开始

TABLES

IcdInfo

在 fuchsia.gpu.magma/magma.fidl 中定义

有关可与 Magma 设备搭配使用的 ICD 实现的信息。

序数字段类型说明
component_url fuchsia.url/Url

提供 ICD 的组件实现的网址。

flags IcdFlags

描述 ICD 基本功能的标志,包括它支持哪些 API。

InlineCommand

在 fuchsia.gpu.magma/magma.fidl 中定义

新增:15

序数字段类型说明
data vector<uint8>
semaphores vector<ObjectId>

PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
trigger_id PerformanceCounterTriggerId

必填。

buffer_id ObjectId

必填。

buffer_offset uint32

必填。

timestamp zx/Time

必填。

flags ResultFlags

必填。

PowerElementProviderGetClockSpeedLevelRequest

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
hz uint64

必需。目标频次。

allow_max bool

如果为 true 且 hz 大于最大时钟频率,则系统会返回与支持的最大频率对应的级别。如果不是 true(或未指定),则当 hz 大于最大时钟频率时,此调用将返回 ZX_ERR_OUT_OF_RANGE。

PowerElementProviderSetClockLimitRequest

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
hz uint64

必需。目标频次

PowerElementProvider_GetClockSpeedLevel_Response 资源

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
token handle<event>

必需。必须租用的 fuchsia.power.broker.DependencyToken。

level uint8

必需。租赁 token 的级别。

actual_hz uint64

必需。该级别代表的目标频率。如果 allow_max==false' (or allow_max isn't set) then this must be >= hz; otherwise, it can be any value relative to hz`。

PowerElementProvider_SetClockLimit_Response 资源

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
handle handle<eventpair>

必需。表示此请求的句柄;只要句柄处于打开状态,系统就会遵循时钟限制。

actual_hz uint64

必需。时钟受限的实际频率。此值可能大于或小于 hz。

PowerGoal 资源

在 fuchsia.gpu.magma/magma.fidl 中定义

此表代表一个特定的功耗目标。客户端必须获取令牌的租约才能激活状态。

Added: HEAD

序数字段类型说明
type PowerGoalType

必填。

token handle<event>

必需。必须在级别 1 租用的 fuchsia.power.broker.DependencyToken,才能实现目标。

PrimaryImportObjectRequest 资源

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
object Object

必填。

object_type ObjectType

必填。

object_id ObjectId

必填。

flags ImportFlags

可选

PrimaryMapBufferRequest

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
hw_va uint64

必填。

range BufferRange

必填。

flags MapFlags

PrimaryUnmapBufferRequest

在 fuchsia.gpu.magma/magma.fidl 中定义

序数字段类型说明
hw_va uint64

必填。

buffer_id ObjectId

必填。

UNIONS

DebugUtils_SetPowerState_Result strict

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
response DebugUtils_SetPowerState_Response
err zx/Status

Device_Query_Response strict resource

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
simple_result uint64
buffer_result handle<vmo>

Device_Query_Result strict resource

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
response Device_Query_Response
err zx/Status

灵活对象资源

在 fuchsia.gpu.magma/magma.fidl 中定义

新增:13
序数变体类型说明
semaphore handle<event>
buffer handle<vmo>
vmo_semaphore handle<vmo>
已移除:HEAD
counter_semaphore handle<counter>
Added: HEAD

PowerElementProvider_GetClockSpeedLevel_Result strict resource

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
response PowerElementProvider_GetClockSpeedLevel_Response
err zx/Status
framework_err internal

PowerElementProvider_GetPowerGoals_Result strict resource

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
response PowerElementProvider_GetPowerGoals_Response
framework_err internal

PowerElementProvider_SetClockLimit_Result strict resource

在 fuchsia.gpu.magma/magma.fidl 中定义

序数变体类型说明
response PowerElementProvider_SetClockLimit_Response
err zx/Status
framework_err internal

BITS

CommandBufferFlags flexible

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
65536

供应商特定定义从这里开始

IcdFlags flexible

类型:uint32

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
1
2
4

ImportFlags flexible

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

新增:13

名称值说明
1

MapFlags flexible

类型:uint64

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
1
2
4
8

未提交的页面可能会在硬件故障时提交。如果未设置此标志,访问故障应该会导致错误。

65536

供应商特定定义从这里开始

ResultFlags flexible

类型:uint32

在 fuchsia.gpu.magma/magma.fidl 中定义

名称值说明
1

如果性能计数器错过了一些样本(例如,由于硬件在部分时间内处于受保护模式),则会在 result_flags 中设置此位。

常量

名称值类型说明
MAX_ICD_COUNT 8 uint64

Magma 系统驱动程序支持的 ICD 数量上限。

MAX_INLINE_COMMANDS_DATA_SIZE 2048 uint32

用于在单条消息中发送多个内嵌命令的批次大小。

新增:15

别名

名称值说明
ContextId uint32
ObjectId uint64
PerformanceCounterPoolId uint64

性能计数器池包含缓冲区的字节范围。每当触发性能计数器转储时,驱动程序都会从池中移除一个范围,将硬件中的性能计数器值写入其中,然后使用 OnPerformanceCounterReadCompleted 向客户端发出信号。池 ID 是由客户端分配的任意 uint64 值。

PerformanceCounterSet vector[64]

描述一组性能计数器。确切含义取决于具体驱动程序,但通常是一个位向量,表示每个性能计数器是处于启用状态还是停用状态。

PerformanceCounterTriggerId uint32

服务

DependencyInjectionService

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
设备 fuchsia.gpu.magma/DependencyInjection 渠道

PerformanceCounterService

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
access fuchsia.gpu.magma/PerformanceCounterAccess 渠道

PowerService

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
设备 fuchsia.gpu.magma/CombinedDevice 渠道
power_element_provider fuchsia.gpu.magma/PowerElementProvider 渠道
debug_utils fuchsia.gpu.magma/DebugUtils 渠道

服务

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
设备 fuchsia.gpu.magma/CombinedDevice 渠道

TestService

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
设备 fuchsia.gpu.magma/CombinedDevice 渠道
test_device fuchsia.gpu.magma/TestDevice2 渠道

TrustedService

在 fuchsia.gpu.magma/magma.fidl 中定义

名称类型传输
设备 fuchsia.gpu.magma/CombinedDevice 渠道