wayland/dma-buf: Take MetaWaylandBuffer in try_acquire_scanout

And do some minor variable order cleanup while on it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3559>
This commit is contained in:
Robert Mader 2023-12-19 22:48:39 +01:00
parent 03c3b642bd
commit 03a98343d2
3 changed files with 22 additions and 19 deletions

View File

@ -928,13 +928,7 @@ meta_wayland_buffer_try_acquire_scanout (MetaWaylandBuffer *buffer,
break; break;
case META_WAYLAND_BUFFER_TYPE_DMA_BUF: case META_WAYLAND_BUFFER_TYPE_DMA_BUF:
{ {
MetaWaylandDmaBufBuffer *dma_buf; scanout = meta_wayland_dma_buf_try_acquire_scanout (buffer, onscreen);
dma_buf = meta_wayland_dma_buf_from_buffer (buffer);
if (!dma_buf)
return NULL;
scanout = meta_wayland_dma_buf_try_acquire_scanout (dma_buf, onscreen);
break; break;
} }
case META_WAYLAND_BUFFER_TYPE_UNKNOWN: case META_WAYLAND_BUFFER_TYPE_UNKNOWN:

View File

@ -605,23 +605,32 @@ import_scanout_gbm_bo (MetaWaylandDmaBufBuffer *dma_buf,
#endif #endif
CoglScanout * CoglScanout *
meta_wayland_dma_buf_try_acquire_scanout (MetaWaylandDmaBufBuffer *dma_buf, meta_wayland_dma_buf_try_acquire_scanout (MetaWaylandBuffer *buffer,
CoglOnscreen *onscreen) CoglOnscreen *onscreen)
{ {
#ifdef HAVE_NATIVE_BACKEND #ifdef HAVE_NATIVE_BACKEND
MetaContext *context = MetaWaylandDmaBufBuffer *dma_buf;
meta_wayland_compositor_get_context (dma_buf->manager->compositor); MetaContext *context;
MetaBackend *backend = meta_context_get_backend (context); MetaBackend *backend;
MetaRenderer *renderer = meta_backend_get_renderer (backend); MetaRenderer *renderer;
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (renderer); MetaRendererNative *renderer_native;
int n_planes;
MetaDeviceFile *device_file; MetaDeviceFile *device_file;
MetaGpuKms *gpu_kms; MetaGpuKms *gpu_kms;
struct gbm_bo *gbm_bo; struct gbm_bo *gbm_bo;
gboolean use_modifier; g_autoptr (MetaDrmBufferGbm) fb = NULL;
g_autoptr (GError) error = NULL; g_autoptr (GError) error = NULL;
MetaDrmBufferFlags flags; MetaDrmBufferFlags flags;
g_autoptr (MetaDrmBufferGbm) fb = NULL; gboolean use_modifier;
int n_planes;
dma_buf = meta_wayland_dma_buf_from_buffer (buffer);
if (!dma_buf)
return NULL;
context = meta_wayland_compositor_get_context (dma_buf->manager->compositor);
backend = meta_context_get_backend (context);
renderer = meta_backend_get_renderer (backend);
renderer_native = META_RENDERER_NATIVE (renderer);
for (n_planes = 0; n_planes < META_WAYLAND_DMA_BUF_MAX_FDS; n_planes++) for (n_planes = 0; n_planes < META_WAYLAND_DMA_BUF_MAX_FDS; n_planes++)
{ {

View File

@ -64,5 +64,5 @@ meta_wayland_dma_buf_create_source (MetaWaylandBuffer *buffer,
gpointer user_data); gpointer user_data);
CoglScanout * CoglScanout *
meta_wayland_dma_buf_try_acquire_scanout (MetaWaylandDmaBufBuffer *dma_buf, meta_wayland_dma_buf_try_acquire_scanout (MetaWaylandBuffer *buffer,
CoglOnscreen *onscreen); CoglOnscreen *onscreen);