From patchwork Wed May 15 09:55:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 164270 Delivered-To: patches@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp541187ili; Wed, 15 May 2019 02:55:16 -0700 (PDT) X-Received: by 2002:adf:f6cb:: with SMTP id y11mr26635554wrp.67.1557914116012; Wed, 15 May 2019 02:55:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557914116; cv=none; d=google.com; s=arc-20160816; b=WbXStFeRrWtRB2qqFaLDGtIxIH+pChKZHe317ER1Uxrs/YHZQ/dLDSYKlka6dAzQ3F fzkCzaYLWKPK2bCKVGEHjk4hJ2VaEPaB81SPV8XO4VVzuExOjVDEDUovS7CBmQxB5KrF C58elKqkcq7ATzD7dt1UgwkG0qUiBbNNn+KYGsOde2KF6hY0k0uZRwBNZfrI4WyXdJwJ G5mrxSNusM8jbi2bwqkqC5KKF1iUUOnLmgFxc4sjKPrIMzlr8ZKNQL3z8arbRbi4Tm5y ViMumw95TDOs77WVfwsUJGXMc2PJg6aSpbgpw0VXOj0Muk+DTUOk5kUCwhCP26MY5zno kKRw== 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=ogEvMYBk+4jhKfzxmlvLmzrP0DPElzpnWd23NZmksZ7CpsApOKumeCs3BTU31hLNE1 k6/yqxn2fgDlVTxlYMyI7r0aRirE0DmbLiZx8Mq6V/KN77KeUwwbzwOnNGoAdyis+StE NJk6ZWWOOOyzGWPswVxnbvoZXOHR8Vr01uEioH+nb6utiNoQgfobYLb3nBom3sVKRGuj RVXBdp2OwLgi55hL3kTNBWJqkxNP2K9sqwafUDLJPR1Vrk6YCREp85AFUanOsEinNMkX TzHFBAOEes0SzVOPzjDUlr4QqtToRWjQW11ymECVsT2naXs4WQ1TrdMBEW0egKVly42J V6nQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="eTue/F1U"; spf=pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.65 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-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id i16sor1188411wrn.22.2019.05.15.02.55.15 for (Google Transport Security); Wed, 15 May 2019 02:55:16 -0700 (PDT) Received-SPF: pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="eTue/F1U"; spf=pass (google.com: domain of peter.griffin@linaro.org designates 209.85.220.65 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=eTue/F1Ur3Y60RaX4pHlZbISslNPUWRcuL+4BGya5TusNfxB/MjAilVKcWtiBVOraK p1UCAwqimvwWjHi6rNk/KevH4zjy6/sDnyR0MZLqzn2sawO+VLo9rarNlz3xsD9UJlxV lozFnfLV2QLUdrt2aHPghFE4MV/R4nDYBp8+SfIYC7gi4mU6w92AKSqLK4HOJfJ7bjTY VWu7Q7DKYDHEfu6Fk0bUm4PBcDvP34bE72lkGDAY3dL4g4/wz/l/a4jBbV9y3/P9OlmJ QhdOLrzFr4m6w5EJXxKtMiWnNoXc0HFJSCMPrhd+/xD+eaRn0nTsu4gP6FjWAvTkrbo0 5Q6Q== 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=cv4L5h4dYyVAnhgd3yZlZU+Su3Z9IwTLsmN75B+NiwEAL2DOoSf89rqsv3VEZXn6Dz Ap3or9i/B7v6tkIpzreeYf2hMMVvZ2BorN9Gs7enmXOazNIm49LwCaPQDh2SqBRsrVHv OcEuonXQq2PfTviMa7NijPPXViT4dh+n7a+L35JjZdjQINH/YM5Ko/TVBe26ft+SFH5T yCUhK7Q+b+l96SC1JP0need5aC4GE8YuuQqJuNDkiZ/KxgyleK4tOdJ4qgnx9VTnwr2S U2fE5CJK2+fe9hk/QYHXjKQ050hu3V9yivSqyPZqRaUyU0ALSeXYg7zEZrUbwmIhJZLF +aZw== X-Gm-Message-State: APjAAAU8OoD4oVYtBfU+1M5Fo0kckJFcFU84pu8JBdY6y/D0aKvyrgAS c8KEn/drsqleJ5WtoNU7l2+YSJKm X-Google-Smtp-Source: APXvYqxRyaiSB0DRHfMnra/0cbRl4/9T99hjkuEqQCrYeL8dfDGe6Ho8TVUNLVcPOz4/4CmASFqOlQ== X-Received: by 2002:a5d:6610:: with SMTP id n16mr16912624wru.250.1557914115636; Wed, 15 May 2019 02:55:15 -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 l127sm2606987wml.40.2019.05.15.02.55.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 15 May 2019 02:55:14 -0700 (PDT) From: Peter Griffin To: openembedded-core@lists.openembedded.org, nicolas.dechesne@linaro.org Cc: Peter Griffin Subject: [ v2] mesa: Add backport of freedreno dmabuf modifiers patch. Date: Wed, 15 May 2019 10:55:11 +0100 Message-Id: <1557914111-18756-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"