From patchwork Wed May 15 09:17:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 164269 Delivered-To: patches@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp512270ili; Wed, 15 May 2019 02:20:11 -0700 (PDT) X-Received: by 2002:a1c:f102:: with SMTP id p2mr17382203wmh.126.1557912011480; Wed, 15 May 2019 02:20:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557912011; cv=none; d=google.com; s=arc-20160816; b=AAqqCoBsnnf60nlLEZCckg+n2xj2r+zG4BBk0fMEKW2NEpJpPvmrGtGzI2+JCvT9Ft +YAdgdivotKfx9R4l5q1Xvw5kiu1qyJbti9K4kmR+TEjcR332wkW8HfP8Xb4uZOajY3G L7+cyVYVsm4XI9yrNvnkQtshqAxH29QYpXdWe2tZ9tpERWW3t2XKpUS9kJ9ZPPAb9kzS YPVypH7B1/rPqn9L7v+orOBQmj9LLKbpaX5d+tQH+LfM6f5gzeMoNlE3Lbh+WRm4ZNrt wJftWPdCJIbLbXUyQe8NrpjoFDdXczygSRqKiSONOSvzp/TUUmJ/uPp19tcBDietgGj8 wkAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature; bh=tos4AR0RiQ8n2A8e6DtL9Ywt9V07o9bz/i5qlmAShqI=; b=kuY3yQklGWQxJODS7xS8o1mKKcwHeLn7nPBda5Aj4riiz9PqR0DtnqJO2QYgS9KbFn C8+wOm2vUn6IqwhJTuXkLmwHQXK5FJ+T98BqHIyZ55qS7HZRm6MROn7iKYnOWy3M9Ec/ cqpk975KIuhjE4Hh4ZP4/8/fuVP+sfuQm2QZ9GgQtIIFoX/W3ZhgtOgoMwOj93sRLdT/ od7IIF72yFA7kMmrUrM2l/5v1wbzAoUG0yCyrBNJTtRk41U5sBU9Sz0JxAVbEokzPT5+ co6sYlgvBycaM74N7gw8YBuh3t6XAL4icmoyDn6St64FIR0M28Gh9ACzxYulNG7CJ5OX oBww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="BkYc8/Ri"; spf=pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.41 as permitted sender) smtp.mailfrom=peter.griffin@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id f132sor934272wmg.1.2019.05.15.02.20.11 for (Google Transport Security); Wed, 15 May 2019 02:20:11 -0700 (PDT) Received-SPF: pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="BkYc8/Ri"; spf=pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.41 as permitted sender) smtp.mailfrom=peter.griffin@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=tos4AR0RiQ8n2A8e6DtL9Ywt9V07o9bz/i5qlmAShqI=; b=BkYc8/Ri2KPxb7ZGFR/Q68EKVWLeySKX8pPVwbKPPUMLY0m2miWWpG6U4EKb999ITh LefNsO8qNIZFKjNYqLJ7ON8DFs3n+emVzicq9Y8eSCz1DBzE3LL+ESSzAWmxqU9aXMFo hZn9Lf2yEJNsRojp8rw+NyuwJ84qFCxwPxhk/bnrw12wQWX8Ag2lc/wmIIgu64qU5LjI mWZxZ7jbBlEpVr+nCEArJd4ZSOqcy4r25+F5F+IdvabKtx3XxymXuXAJnwB/9xgWGMra A86JS8GomIx68MM06c7tDYBhFgDq+sxmQ/TcSn0P+TMFrwsERBRD793IU6X5xJJUswYe fTNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=tos4AR0RiQ8n2A8e6DtL9Ywt9V07o9bz/i5qlmAShqI=; b=o3j+McvWah8nYA8qvomj2Yg9BFfUKDHqDPubs/qxLNjpi19XykgTiRLUwaoFId1RCr wvAleC5go1pMJ6sZjLEqhQGb5KglZGUA+czI71LBff1KdoB7MLoF/bkCiF+87WimM8Sa dKl0hBc/DMCsBS4y5U6hDAZQHF7RIpSm5/lThzspHAHOlAk3nuvyJIK0nNcsWTG0QcUK CPHhun1uxSf+hgX8NBxKeCl9ZN4byvEGLDyhgBF4rGVp1NcI5WVP2/p1jEFuibIPf/PY xSGok9McsPbfTo3mksV/z5PLDMmRQOXcGJYHCaTUnXrNnvh7ObCF5XRLuzwEb0Z756iV wnnw== X-Gm-Message-State: APjAAAXvxksAEQcvSVXOWe2Fwh6A3zijXHLmAgbgxpbC1qoE0Oab9WlD X9nTKswdGb6bIAQ9Ou3Zxr2vkubI X-Google-Smtp-Source: APXvYqyUroonjqajmO9qZYE4OUim5x7YPwOc3ZABrzb86skk36HjfJzF5lB+X32pnigE8Wk3xMEsug== X-Received: by 2002:a7b:ce06:: with SMTP id m6mr12055750wmc.80.1557912011046; Wed, 15 May 2019 02:20:11 -0700 (PDT) Return-Path: Received: from localhost.localdomain (cpc89244-aztw30-2-0-cust4998.18-1.cable.virginm.net. [86.31.179.135]) by smtp.gmail.com with ESMTPSA id k30sm2247340wrd.0.2019.05.15.02.20.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 15 May 2019 02:20:10 -0700 (PDT) From: Peter Griffin To: openembedded-core@lists.openembedded.org, nicolas.dechesne@linaro.org Cc: Peter Griffin Subject: [PATCH v2] mesa: Add backport of freedreno dmabuf modifiers patch. Date: Wed, 15 May 2019 10:17:22 +0100 Message-Id: <1557911842-12574-1-git-send-email-peter.griffin@linaro.org> X-Mailer: git-send-email 2.7.4 This is required to get weston-simple-dmabuf-drm to work and also now required by Chromium v73 ozone-wayland backend. It is present in mesa 19.0, backporting to Thud which is on 18.1.9. Signed-off-by: Peter Griffin --- ...-freedreno-add-query-for-dmabuf-modifiers.patch | 101 +++++++++++++++++++++ meta/recipes-graphics/mesa/mesa_18.1.9.bb | 1 + 2 files changed, 102 insertions(+) create mode 100644 meta/recipes-graphics/mesa/files/0001-freedreno-add-query-for-dmabuf-modifiers.patch -- 2.7.4 diff --git a/meta/recipes-graphics/mesa/files/0001-freedreno-add-query-for-dmabuf-modifiers.patch b/meta/recipes-graphics/mesa/files/0001-freedreno-add-query-for-dmabuf-modifiers.patch new file mode 100644 index 0000000..57ebd8f --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-freedreno-add-query-for-dmabuf-modifiers.patch @@ -0,0 +1,101 @@ +From c4bee1a1b3fb224002fe8c263bedbce1b705ed49 Mon Sep 17 00:00:00 2001 +From: Peter Griffin +Date: Mon, 13 May 2019 19:18:56 +0100 +Subject: [PATCH] freedreno: add query for dmabuf modifiers + +Backport of mesa 7c4b9510d by Fritz Koenig. Tested with Weston +and weston-simple-dmabuf-drm client. + +Upstream-Status: Backport from 19.0 + +Signed-off-by: Peter Griffin +--- + src/gallium/drivers/freedreno/freedreno_screen.c | 43 ++++++++++++++++++++++++ + src/gallium/drivers/freedreno/freedreno_screen.h | 3 ++ + 2 files changed, 46 insertions(+) + +diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c +index f338d75..cbb5b8a 100644 +--- a/src/gallium/drivers/freedreno/freedreno_screen.c ++++ b/src/gallium/drivers/freedreno/freedreno_screen.c +@@ -40,6 +40,7 @@ + + #include "util/os_time.h" + ++#include + #include + #include + #include +@@ -732,6 +733,37 @@ fd_screen_bo_get_handle(struct pipe_screen *pscreen, + } + } + ++static void ++fd_screen_query_dmabuf_modifiers(struct pipe_screen *pscreen, ++ enum pipe_format format, ++ int max, uint64_t *modifiers, ++ unsigned int *external_only, ++ int *count) ++{ ++ struct fd_screen *screen = fd_screen(pscreen); ++ int i, num = 0; ++ ++ max = MIN2(max, screen->num_supported_modifiers); ++ ++ if (!max) { ++ max = screen->num_supported_modifiers; ++ external_only = NULL; ++ modifiers = NULL; ++ } ++ ++ for (i = 0; i < max; i++) { ++ if (modifiers) ++ modifiers[num] = screen->supported_modifiers[i]; ++ ++ if (external_only) ++ external_only[num] = 0; ++ ++ num++; ++ } ++ ++ *count = num; ++} ++ + struct fd_bo * + fd_screen_bo_from_handle(struct pipe_screen *pscreen, + struct winsys_handle *whandle) +@@ -921,6 +953,17 @@ fd_screen_create(struct fd_device *dev) + pscreen->fence_finish = fd_fence_finish; + pscreen->fence_get_fd = fd_fence_get_fd; + ++ pscreen->query_dmabuf_modifiers = fd_screen_query_dmabuf_modifiers; ++ ++ if (!screen->supported_modifiers) { ++ static const uint64_t supported_modifiers[] = { ++ DRM_FORMAT_MOD_LINEAR, ++ }; ++ ++ screen->supported_modifiers = supported_modifiers; ++ screen->num_supported_modifiers = ARRAY_SIZE(supported_modifiers); ++ } ++ + slab_create_parent(&screen->transfer_pool, sizeof(struct fd_transfer), 16); + + return pscreen; +diff --git a/src/gallium/drivers/freedreno/freedreno_screen.h b/src/gallium/drivers/freedreno/freedreno_screen.h +index 6be739a..5558066 100644 +--- a/src/gallium/drivers/freedreno/freedreno_screen.h ++++ b/src/gallium/drivers/freedreno/freedreno_screen.h +@@ -89,6 +89,9 @@ struct fd_screen { + struct fd_batch_cache batch_cache; + + bool reorder; ++ ++ unsigned num_supported_modifiers; ++ const uint64_t *supported_modifiers; + }; + + static inline struct fd_screen * +-- +2.7.4 + diff --git a/meta/recipes-graphics/mesa/mesa_18.1.9.bb b/meta/recipes-graphics/mesa/mesa_18.1.9.bb index 86d6a6b..0558690 100644 --- a/meta/recipes-graphics/mesa/mesa_18.1.9.bb +++ b/meta/recipes-graphics/mesa/mesa_18.1.9.bb @@ -7,6 +7,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0004-Use-Python-3-to-execute-the-scripts.patch \ file://0005-dri-i965-Add-missing-time.h-include.patch \ file://0006-use-PKG_CHECK_VAR-for-defining-WAYLAND_PROTOCOLS_DAT.patch \ + file://0001-freedreno-add-query-for-dmabuf-modifiers.patch \ " SRC_URI[md5sum] = "2f8d2098ab478bc3907e42130577b54a"