This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch devs/devilhorns/apos
in repository efl.

View the commit online.

commit ff66086377c512788179b4dd56c83ca83630a19c
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Wed Aug 13 12:09:35 2025 -0500

    ecore_drm2: Start work on supporting writeback connectors
---
 src/lib/ecore_drm2/ecore_drm2_connectors.c | 30 ++++++++++++++++++++++++++++++
 src/lib/ecore_drm2/ecore_drm2_private.h    |  2 ++
 2 files changed, 32 insertions(+)

diff --git a/src/lib/ecore_drm2/ecore_drm2_connectors.c b/src/lib/ecore_drm2/ecore_drm2_connectors.c
index 1eae05ee1b..2239fcf14a 100644
--- a/src/lib/ecore_drm2/ecore_drm2_connectors.c
+++ b/src/lib/ecore_drm2/ecore_drm2_connectors.c
@@ -123,6 +123,36 @@ _ecore_drm2_connector_state_fill(Ecore_Drm2_Connector *conn)
              cstate->scaling.flags = prop->flags;
              cstate->scaling.value = oprops->prop_values[i];
           }
+        else if (!strcmp(prop->name, "WRITEBACK_PIXEL_FORMATS"))
+          {
+             drmModePropertyBlobPtr bp;
+             uint32_t *formats;
+
+             cstate->wb_formats.id = oprops->prop_values[i];
+             if (!cstate->wb_formats.id) goto cont;
+
+             bp = sym_drmModeGetPropertyBlob(conn->fd, cstate->wb_formats.id);
+             if (!bp) goto cont;
+
+             formats = bp->data;
+
+             conn->num_wb_formats = (bp->length / sizeof(uint32_t));
+             conn->wb_formats = calloc(conn->num_wb_formats, sizeof(uint32_t));
+
+             /* FIXME: Check for duplicate writeback formats */
+             for (i = 0; i < conn->num_wb_formats; i++)
+               conn->wb_formats[i] = formats[i];
+
+             sym_drmModeFreePropertyBlob(bp);
+          }
+        else if (!strcmp(prop->name, "WRITEBACK_FB_ID"))
+          {
+             /* TODO */
+          }
+        else if (!strcmp(prop->name, "WRITEBACK_OUT_FENCE_PTR"))
+          {
+             /* TODO */
+          }
 
 cont:
         sym_drmModeFreeProperty(prop);
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 481d990a5c..d1710ffc93 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -133,6 +133,7 @@ typedef struct _Ecore_Drm2_Connector_State
    Ecore_Drm2_Atomic_Property aspect;
    Ecore_Drm2_Atomic_Property scaling;
    Ecore_Drm2_Atomic_Blob edid;
+   Ecore_Drm2_Atomic_Blob wb_formats;
 
    /* TODO ?? */
    /* Ecore_Drm2_Atomic_Property link-status; */
@@ -319,6 +320,7 @@ struct _Ecore_Drm2_Connector
 {
    uint32_t id;
    uint32_t type;
+   uint32_t num_wb_formats, *wb_formats;
    int fd;
 
    drmModeConnector *drmConn;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to