mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -04:00
Merge branch 'dmabuf' into 'master'
Allow scanning out fullscreen surfaces on secondary GPUs See merge request wlroots/wlroots!4055
This commit is contained in:
commit
772265a81a
18 changed files with 782 additions and 76 deletions
|
|
@ -107,6 +107,7 @@ struct wlr_drm_backend {
|
|||
|
||||
/* Only initialized on multi-GPU setups */
|
||||
struct wlr_drm_renderer mgpu_renderer;
|
||||
struct wlr_multi_gpu *multi_gpu;
|
||||
|
||||
struct wlr_session *session;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ bool init_drm_surface(struct wlr_drm_surface *surf,
|
|||
void finish_drm_surface(struct wlr_drm_surface *surf);
|
||||
|
||||
struct wlr_buffer *drm_surface_blit(struct wlr_drm_surface *surf,
|
||||
struct wlr_buffer *buffer);
|
||||
struct wlr_drm_renderer *parent_renderer, struct wlr_buffer *buffer);
|
||||
|
||||
bool drm_plane_pick_render_format(struct wlr_drm_plane *plane,
|
||||
struct wlr_drm_format *fmt, struct wlr_drm_renderer *renderer);
|
||||
|
|
|
|||
|
|
@ -4,10 +4,31 @@
|
|||
#include <wayland-util.h>
|
||||
#include <wlr/backend/interface.h>
|
||||
#include <wlr/backend/multi.h>
|
||||
#include <wlr/render/allocator.h>
|
||||
#include <wlr/render/wlr_renderer.h>
|
||||
|
||||
struct wlr_multi_gpu_device {
|
||||
struct wlr_renderer *renderer;
|
||||
struct wlr_allocator *allocator;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
/*
|
||||
* Helper struct for tracking multiple renderers. This solves the
|
||||
* problem of us having many renderers (primary, plus individual
|
||||
* secondary GPU drm renderers) but not tracking them in one location.
|
||||
* We can use this struct to access renderers for each GPU in
|
||||
* the system all from one place. Will be populated by the renderer
|
||||
* the compositor makes, plus every time a drm mgpu renderer is made.
|
||||
*/
|
||||
struct wlr_multi_gpu {
|
||||
struct wl_list devices;
|
||||
};
|
||||
|
||||
struct wlr_multi_backend {
|
||||
struct wlr_backend backend;
|
||||
|
||||
struct wlr_multi_gpu *multi_gpu;
|
||||
struct wl_list backends;
|
||||
|
||||
struct wl_listener event_loop_destroy;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue