Merge branch 'vk-upload-thread' into 'master'

Draft: render/vulkan: add upload thread

See merge request wlroots/wlroots!4454
This commit is contained in:
Simon Ser 2024-01-25 11:00:38 +00:00
commit 9e53f89c1b
21 changed files with 378 additions and 88 deletions

View file

@ -221,7 +221,8 @@ static bool has_render_node(struct wlr_backend *backend) {
return has_render_node;
}
static struct wlr_renderer *renderer_autocreate(struct wlr_backend *backend, int drm_fd) {
static struct wlr_renderer *renderer_autocreate(struct wlr_backend *backend, int drm_fd,
struct wl_event_loop *loop) {
const char *renderer_options[] = {
"auto",
"gles2",
@ -258,7 +259,7 @@ static struct wlr_renderer *renderer_autocreate(struct wlr_backend *backend, int
log_creation_failure(is_auto, "Cannot create Vulkan renderer: no DRM FD available");
} else {
#if WLR_HAS_VULKAN_RENDERER
renderer = wlr_vk_renderer_create_with_drm_fd(drm_fd);
renderer = wlr_vk_renderer_create_with_drm_fd(loop, drm_fd);
#else
wlr_log(WLR_ERROR, "Cannot create Vulkan renderer: disabled at compile-time");
#endif
@ -289,14 +290,13 @@ out:
return renderer;
}
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd) {
struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd, struct wl_event_loop *loop) {
assert(drm_fd >= 0);
return renderer_autocreate(NULL, drm_fd);
return renderer_autocreate(NULL, drm_fd, loop);
}
struct wlr_renderer *wlr_renderer_autocreate(struct wlr_backend *backend) {
return renderer_autocreate(backend, -1);
return renderer_autocreate(backend, -1, backend->event_loop);
}
int wlr_renderer_get_drm_fd(struct wlr_renderer *r) {