Skip to content

Commit 5e8af90

Browse files
committed
Refactor virtio-gpu and virgl code
1 parent ab288dc commit 5e8af90

12 files changed

+1283
-1313
lines changed

Makefile

+5-1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ ifeq ($(ENABLE_VIRGL),1)
7575
CFLAGS += $(shell pkg-config virglrenderer gl egl epoxy --cflags)
7676
LDFLAGS += $(shell pkg-config virglrenderer gl egl epoxy --libs)
7777
OBJS_EXTRA += virgl.o
78+
OBJS_EXTRA += window-gl.o
79+
else
80+
OBJS_EXTRA += virtio-gpu-sw.o
81+
OBJS_EXTRA += window-sw.o
7882
endif
7983

8084
$(call set-feature, VIRGL)
@@ -94,7 +98,7 @@ else
9498
endif
9599

96100
ifeq ($(ENABLE_VIRTIOGPU),1)
97-
OBJS_EXTRA += window.o
101+
OBJS_EXTRA += window-events.o
98102
OBJS_EXTRA += virtio-gpu.o
99103
endif
100104

main.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
#define PRIV(x) ((emu_state_t *) x->priv)
1818

19+
extern const struct window_backend g_window;
20+
1921
/* Define fetch separately since it is simpler (fixed width, already checked
2022
* alignment, only main RAM is executable).
2123
*/
@@ -735,7 +737,7 @@ static int semu_start(int argc, char **argv)
735737
virtio_gpu_init(&(emu.vgpu));
736738
virtio_gpu_add_scanout(&(emu.vgpu), 1024, 768);
737739

738-
window_init();
740+
g_window.window_init();
739741
#endif
740742
#if SEMU_HAS(VIRGL)
741743
semu_virgl_init(&(emu.vgpu));

virgl.c

+84-97
Large diffs are not rendered by default.

virgl.h

-77
Original file line numberDiff line numberDiff line change
@@ -6,82 +6,5 @@ typedef struct {
66
struct list_head fence_queue;
77
} virgl_data_t;
88

9-
void virgl_cmd_resource_create_2d_handler(virtio_gpu_state_t *vgpu,
10-
struct virtq_desc *vq_desc,
11-
uint32_t *plen);
12-
13-
void virgl_cmd_resource_unref_handler(virtio_gpu_state_t *vgpu,
14-
struct virtq_desc *vq_desc,
15-
uint32_t *plen);
16-
17-
void virgl_cmd_set_scanout_handler(virtio_gpu_state_t *vgpu,
18-
struct virtq_desc *vq_desc,
19-
uint32_t *plen);
20-
21-
void virgl_cmd_resource_flush_handler(virtio_gpu_state_t *vgpu,
22-
struct virtq_desc *vq_desc,
23-
uint32_t *plen);
24-
25-
void virgl_cmd_transfer_to_host_2d_handler(virtio_gpu_state_t *vgpu,
26-
struct virtq_desc *vq_desc,
27-
uint32_t *plen);
28-
29-
void virgl_cmd_resource_attach_backing_handler(virtio_gpu_state_t *vgpu,
30-
struct virtq_desc *vq_desc,
31-
uint32_t *plen);
32-
33-
void virgl_cmd_resource_detach_backing_handler(virtio_gpu_state_t *vgpu,
34-
struct virtq_desc *vq_desc,
35-
uint32_t *plen);
36-
37-
void virgl_cmd_get_capset_info_handler(virtio_gpu_state_t *vgpu,
38-
struct virtq_desc *vq_desc,
39-
uint32_t *plen);
40-
41-
void virgl_get_capset_handler(virtio_gpu_state_t *vgpu,
42-
struct virtq_desc *vq_desc,
43-
uint32_t *plen);
44-
45-
void virgl_cmd_ctx_create_handler(virtio_gpu_state_t *vgpu,
46-
struct virtq_desc *vq_desc,
47-
uint32_t *plen);
48-
49-
void virgl_cmd_ctx_destroy_handler(virtio_gpu_state_t *vgpu,
50-
struct virtq_desc *vq_desc,
51-
uint32_t *plen);
52-
53-
void virgl_cmd_attach_resource_handler(virtio_gpu_state_t *vgpu,
54-
struct virtq_desc *vq_desc,
55-
uint32_t *plen);
56-
57-
void virgl_cmd_detach_resource_handler(virtio_gpu_state_t *vgpu,
58-
struct virtq_desc *vq_desc,
59-
uint32_t *plen);
60-
61-
void virgl_cmd_resource_create_3d_handler(virtio_gpu_state_t *vgpu,
62-
struct virtq_desc *vq_desc,
63-
uint32_t *plen);
64-
65-
void virgl_cmd_transfer_to_host_3d_handler(virtio_gpu_state_t *vgpu,
66-
struct virtq_desc *vq_desc,
67-
uint32_t *plen);
68-
69-
void virgl_cmd_transfer_from_host_3d_handler(virtio_gpu_state_t *vgpu,
70-
struct virtq_desc *vq_desc,
71-
uint32_t *plen);
72-
73-
void virgl_cmd_submit_3d_handler(virtio_gpu_state_t *vgpu,
74-
struct virtq_desc *vq_desc,
75-
uint32_t *plen);
76-
77-
void virgl_cmd_update_cursor_handler(virtio_gpu_state_t *vgpu,
78-
struct virtq_desc *vq_desc,
79-
uint32_t *plen);
80-
81-
void virgl_cmd_move_cursor_handler(virtio_gpu_state_t *vgpu,
82-
struct virtq_desc *vq_desc,
83-
uint32_t *plen);
84-
859
void semu_virgl_init(virtio_gpu_state_t *vgpu);
86-
8710
void semu_virgl_fence_poll(void);

0 commit comments

Comments
 (0)