-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
87 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#pragma once | ||
#include <define.h> | ||
|
||
enum virtio_gpu_ctrl_type { | ||
VIRTIO_GPU_UNDEFINED = 0, | ||
|
||
//+ 2D 命令 | ||
VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100, | ||
VIRTIO_GPU_CMD_RESOURCE_CREATE_2D, | ||
VIRTIO_GPU_CMD_RESOURCE_UNREF, | ||
VIRTIO_GPU_CMD_SET_SCANOUT, | ||
VIRTIO_GPU_CMD_RESOURCE_FLUSH, | ||
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D, | ||
VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING, | ||
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING, | ||
VIRTIO_GPU_CMD_GET_CAPSET_INFO, | ||
VIRTIO_GPU_CMD_GET_CAPSET, | ||
VIRTIO_GPU_CMD_GET_EDID, | ||
VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID, | ||
VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB, | ||
VIRTIO_GPU_CMD_SET_SCANOUT_BLOB, | ||
|
||
//+ 3D 命令 | ||
VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, | ||
VIRTIO_GPU_CMD_CTX_DESTROY, | ||
VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE, | ||
VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE, | ||
VIRTIO_GPU_CMD_RESOURCE_CREATE_3D, | ||
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D, | ||
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D, | ||
VIRTIO_GPU_CMD_SUBMIT_3D, | ||
VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB, | ||
VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB, | ||
|
||
//+ 光标命令 | ||
VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, | ||
VIRTIO_GPU_CMD_MOVE_CURSOR, | ||
|
||
//+ 成功响应 | ||
VIRTIO_GPU_RESP_OK_NODATA = 0x1100, | ||
VIRTIO_GPU_RESP_OK_DISPLAY_INFO, | ||
VIRTIO_GPU_RESP_OK_CAPSET_INFO, | ||
VIRTIO_GPU_RESP_OK_CAPSET, | ||
VIRTIO_GPU_RESP_OK_EDID, | ||
VIRTIO_GPU_RESP_OK_RESOURCE_UUID, | ||
VIRTIO_GPU_RESP_OK_MAP_INFO, | ||
|
||
//+ 错误响应 | ||
VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, | ||
VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY, | ||
VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID, | ||
VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID, | ||
VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID, | ||
VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER, | ||
}; | ||
|
||
struct virtio_gpu_ctrl_hdr { | ||
uint32_t type; | ||
uint32_t flags; | ||
uint64_t fence_id; | ||
uint32_t ctx_id; | ||
uint32_t padding; | ||
}; | ||
|
||
struct virtio_gpu_cursor_pos { | ||
uint32_t scanout_id; | ||
uint32_t x; | ||
uint32_t y; | ||
uint32_t padding; | ||
}; | ||
|
||
struct virtio_gpu_resource_create_2d { | ||
struct virtio_gpu_ctrl_hdr hdr; // 命令头 | ||
uint32_t resource_id; // 资源 ID | ||
uint32_t format; // 图形格式 (例如 VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM) | ||
uint32_t width; // 图像宽度 | ||
uint32_t height; // 图像高度 | ||
}; |