diff --git a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/commands.rs b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/commands.rs index 5d6da0153e..275f5f5750 100644 --- a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/commands.rs +++ b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/commands.rs @@ -9,16 +9,21 @@ pub const VIRTIO_GPU_F_RESOURCE_BLOB: u64 = 1 << 3; pub const VIRTIO_GPU_F_CONTEXT_INIT: u64 = 1 << 4; pub const VIRTIO_F_VERSION_1: u64 = 1 << 32; +// 2D commands — opcodes from Linux include/uapi/linux/virtio_gpu.h pub const VIRTIO_GPU_CMD_GET_DISPLAY_INFO: u32 = 0x0100; -pub const VIRTIO_GPU_CMD_SET_SCANOUT: u32 = 0x0101; -pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_2D: u32 = 0x0102; -pub const VIRTIO_GPU_CMD_RESOURCE_UNREF: u32 = 0x0103; +pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_2D: u32 = 0x0101; +pub const VIRTIO_GPU_CMD_RESOURCE_UNREF: u32 = 0x0102; +pub const VIRTIO_GPU_CMD_SET_SCANOUT: u32 = 0x0103; pub const VIRTIO_GPU_CMD_RESOURCE_FLUSH: u32 = 0x0104; pub const VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D: u32 = 0x0105; pub const VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING: u32 = 0x0106; -pub const VIRTIO_GPU_CMD_GET_EDID: u32 = 0x0107; +pub const VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING: u32 = 0x0107; pub const VIRTIO_GPU_CMD_GET_CAPSET_INFO: u32 = 0x0108; pub const VIRTIO_GPU_CMD_GET_CAPSET: u32 = 0x0109; +pub const VIRTIO_GPU_CMD_GET_EDID: u32 = 0x010a; +pub const VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID: u32 = 0x010b; +pub const VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB: u32 = 0x010c; +pub const VIRTIO_GPU_CMD_SET_SCANOUT_BLOB: u32 = 0x010d; pub const VIRTIO_GPU_CMD_CTX_CREATE: u32 = 0x0200; pub const VIRTIO_GPU_CMD_CTX_DESTROY: u32 = 0x0201; pub const VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE: u32 = 0x0202; @@ -30,12 +35,14 @@ pub const VIRTIO_GPU_CMD_SUBMIT_3D: u32 = 0x0207; pub const VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB: u32 = 0x0208; pub const VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB: u32 = 0x0209; +// Success responses — opcodes from Linux include/uapi/linux/virtio_gpu.h pub const VIRTIO_GPU_RESP_OK_NODATA: u32 = 0x1100; pub const VIRTIO_GPU_RESP_OK_DISPLAY_INFO: u32 = 0x1101; pub const VIRTIO_GPU_RESP_OK_CAPSET_INFO: u32 = 0x1102; pub const VIRTIO_GPU_RESP_OK_CAPSET: u32 = 0x1103; +pub const VIRTIO_GPU_RESP_OK_EDID: u32 = 0x1104; +pub const VIRTIO_GPU_RESP_OK_RESOURCE_UUID: u32 = 0x1105; pub const VIRTIO_GPU_RESP_OK_MAP_INFO: u32 = 0x1106; -pub const VIRTIO_GPU_RESP_OK_EDID: u32 = 0x1107; pub const VIRTIO_GPU_RESP_ERR_UNSPEC: u32 = 0x1200; pub const VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY: u32 = 0x1201; diff --git a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs index 81f167f9c8..286491ebe7 100644 --- a/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs +++ b/local/recipes/gpu/redox-drm/source/src/drivers/virtio/mod.rs @@ -104,7 +104,7 @@ impl VirtioDriver { let mut transport = VirtioModernPciTransport::new(&info, &mut pci)?; let negotiated = transport - .initialize_device(VIRTIO_F_VERSION_1 | VIRTIO_GPU_F_EDID)?; + .initialize_device(VIRTIO_F_VERSION_1 | VIRTIO_GPU_F_EDID | VIRTIO_GPU_F_VIRGL)?; let ctrlq_cfg = transport.prepare_queue(CTRL_QUEUE_INDEX, DEFAULT_QUEUE_SIZE)?; let ctrlq = Virtqueue::new(ctrlq_cfg.index, ctrlq_cfg.size, ctrlq_cfg.notify_off)?; transport.activate_queue(