summaryrefslogtreecommitdiff
path: root/recipes-graphics
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2018-09-23 16:48:23 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2019-03-06 18:54:30 +0100
commit4c3e82e36e4268aaddf289fdfbdfb953a521b1d3 (patch)
tree83ea206c94e1f1cac1dbe35ceb55413967c90f3c /recipes-graphics
parent2bd3bdbbd65480ad6dbbc9e12957ba79f82f88ef (diff)
mesa: remove patches now upstreamed
nouveau / tegra has been upstreamed, thus drop the patches. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes-graphics')
-rw-r--r--recipes-graphics/mesa/mesa/0001-gallium-add-tegra-support.patch570
-rw-r--r--recipes-graphics/mesa/mesa/0002-make-DRI-work-under-X.patch24
-rw-r--r--recipes-graphics/mesa/mesa/0003-loader-Automatic-PRIME-detection.patch106
-rw-r--r--recipes-graphics/mesa/mesa/0004-mesa-17.1.7-compilation-fixes.patch26
-rw-r--r--recipes-graphics/mesa/mesa_%.bbappend7
5 files changed, 0 insertions, 733 deletions
diff --git a/recipes-graphics/mesa/mesa/0001-gallium-add-tegra-support.patch b/recipes-graphics/mesa/mesa/0001-gallium-add-tegra-support.patch
deleted file mode 100644
index f47e2c5..0000000
--- a/recipes-graphics/mesa/mesa/0001-gallium-add-tegra-support.patch
+++ /dev/null
@@ -1,570 +0,0 @@
-From 2ec5a4bc8eec0908275f3a3259376f1ad8efaaa6 Mon Sep 17 00:00:00 2001
-From: Christian Gmeiner <christian.gmeiner@gmail.com>
-Date: Sun, 21 Aug 2016 22:10:12 +0200
-Subject: [PATCH 1/4] gallium: add tegra support
-
-Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
-[acourbot@nvidia.com: port to latest branch]
-Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
-
-forward port to mesa 17.0.2
-Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-
-forward port to mesa 17.1.7
-Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
----
- configure.ac | 13 +++-
- src/gallium/Makefile.am | 4 ++
- .../auxiliary/pipe-loader/pipe_loader_drm.c | 5 ++
- src/gallium/auxiliary/target-helpers/drm_helper.h | 23 +++++++
- .../auxiliary/target-helpers/drm_helper_public.h | 3 +
- src/gallium/drivers/nouveau/nouveau_buffer.c | 4 ++
- src/gallium/drivers/nouveau/nouveau_buffer.h | 2 +
- src/gallium/drivers/nouveau/nouveau_screen.h | 3 +
- src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 3 +
- src/gallium/drivers/nouveau/nvc0/nvc0_resource.c | 18 +++++-
- src/gallium/drivers/tegra/Automake.inc | 9 +++
- src/gallium/drivers/tegra/Makefile.am | 10 +++
- src/gallium/targets/dri/Makefile.am | 2 +
- src/gallium/targets/dri/target.c | 4 ++
- .../winsys/nouveau/drm/nouveau_drm_public.h | 2 +
- .../winsys/nouveau/drm/nouveau_drm_winsys.c | 10 +++
- src/gallium/winsys/tegra/drm/Android.mk | 33 ++++++++++
- src/gallium/winsys/tegra/drm/Makefile.am | 34 ++++++++++
- src/gallium/winsys/tegra/drm/Makefile.sources | 3 +
- src/gallium/winsys/tegra/drm/tegra_drm_public.h | 8 +++
- src/gallium/winsys/tegra/drm/tegra_drm_winsys.c | 74 ++++++++++++++++++++++
- src/mesa/drivers/dri/nouveau/nouveau_screen.h | 1 +
- 21 files changed, 262 insertions(+), 3 deletions(-)
- create mode 100644 src/gallium/drivers/tegra/Automake.inc
- create mode 100644 src/gallium/drivers/tegra/Makefile.am
- create mode 100644 src/gallium/winsys/tegra/drm/Android.mk
- create mode 100644 src/gallium/winsys/tegra/drm/Makefile.am
- create mode 100644 src/gallium/winsys/tegra/drm/Makefile.sources
- create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_public.h
- create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c
-
-diff --git a/configure.ac b/configure.ac
-index fd346c8..790388b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -79,6 +79,7 @@ LIBDRM_INTEL_REQUIRED=2.4.75
- LIBDRM_NVVIEUX_REQUIRED=2.4.66
- LIBDRM_NOUVEAU_REQUIRED=2.4.66
- LIBDRM_FREEDRENO_REQUIRED=2.4.74
-+LIBDRM_TEGRA_REQUIRED=2.4.66
- LIBDRM_VC4_REQUIRED=2.4.69
- LIBDRM_ETNAVIV_REQUIRED=2.4.80
-
-@@ -1245,7 +1246,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
- AC_ARG_WITH([gallium-drivers],
- [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
- [comma delimited Gallium drivers list, e.g.
-- "i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,swr,vc4,virgl,etnaviv,imx"
-+ "i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,swr,vc4,virgl,etnaviv,imx,tegra"
- @<:@default=r300,r600,svga,swrast@:>@])],
- [with_gallium_drivers="$withval"],
- [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
-@@ -2518,6 +2519,13 @@ if test -n "$with_gallium_drivers"; then
- require_basic_egl "virgl"
- fi
- ;;
-+ xtegra)
-+# PKG_CHECK_MODULES([TEGRA], [libdrm_tegra >= $LIBDRM_TEGRA_REQUIRED])
-+ HAVE_GALLIUM_TEGRA=yes
-+ require_libdrm "tegra"
-+# gallium_require_drm_loader
-+# require_egl_drm "tegra"
-+ ;;
- *)
- AC_MSG_ERROR([Unknown Gallium driver: $driver])
- ;;
-@@ -2621,6 +2629,7 @@ AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \
- "x$HAVE_GALLIUM_SWR" = xyes)
- AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
- AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
-+AM_CONDITIONAL(HAVE_GALLIUM_TEGRA, test "x$HAVE_GALLIUM_TEGRA" = xyes)
-
- AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
-
-@@ -2766,6 +2775,7 @@ AC_CONFIG_FILES([Makefile
- src/gallium/drivers/imx/Makefile
- src/gallium/drivers/vc4/Makefile
- src/gallium/drivers/virgl/Makefile
-+ src/gallium/drivers/tegra/Makefile
- src/gallium/state_trackers/clover/Makefile
- src/gallium/state_trackers/dri/Makefile
- src/gallium/state_trackers/glx/xlib/Makefile
-@@ -2809,6 +2819,7 @@ AC_CONFIG_FILES([Makefile
- src/gallium/winsys/vc4/drm/Makefile
- src/gallium/winsys/virgl/drm/Makefile
- src/gallium/winsys/virgl/vtest/Makefile
-+ src/gallium/winsys/tegra/drm/Makefile
- src/gbm/Makefile
- src/gbm/main/gbm.pc
- src/glx/Makefile
-diff --git a/src/gallium/Makefile.am b/src/gallium/Makefile.am
-index 38da63b..1df0d3c 100644
---- a/src/gallium/Makefile.am
-+++ b/src/gallium/Makefile.am
-@@ -95,6 +95,10 @@ if HAVE_GALLIUM_VIRGL
- SUBDIRS += drivers/virgl winsys/virgl/drm winsys/virgl/vtest
- endif
-
-+if HAVE_GALLIUM_TEGRA
-+SUBDIRS += drivers/tegra winsys/tegra/drm
-+endif
-+
- ## the sw winsys'
- SUBDIRS += winsys/sw/null
-
-diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
-index a4f5cfc..3cad124 100644
---- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
-+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
-@@ -139,6 +139,11 @@ static const struct drm_driver_descriptor driver_descriptors[] = {
- .configuration = configuration_query,
- },
- {
-+ .driver_name = "tegra",
-+ .create_screen = pipe_tegra_create_screen,
-+ .configuration = configuration_query,
-+ },
-+ {
- .driver_name = "etnaviv",
- .create_screen = pipe_etna_create_screen,
- .configuration = configuration_query,
-diff --git a/src/gallium/auxiliary/target-helpers/drm_helper.h b/src/gallium/auxiliary/target-helpers/drm_helper.h
-index 3159df6..99b6cb5 100644
---- a/src/gallium/auxiliary/target-helpers/drm_helper.h
-+++ b/src/gallium/auxiliary/target-helpers/drm_helper.h
-@@ -284,4 +284,27 @@ pipe_imx_drm_create_screen(int fd)
- #endif
-
-
-+#ifdef GALLIUM_TEGRA
-+#include "tegra/drm/tegra_drm_public.h"
-+
-+struct pipe_screen *
-+pipe_tegra_create_screen(int fd)
-+{
-+ struct pipe_screen *screen;
-+
-+ screen = tegra_drm_screen_create(fd);
-+ return screen ? debug_screen_wrap(screen) : NULL;
-+}
-+
-+#else
-+
-+struct pipe_screen *
-+pipe_tegra_create_screen(int fd)
-+{
-+ fprintf(stderr, "tegra: driver missing\n");
-+ return NULL;
-+}
-+
-+#endif
-+
- #endif /* DRM_HELPER_H */
-diff --git a/src/gallium/auxiliary/target-helpers/drm_helper_public.h b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
-index bc12b21..5525bdf 100644
---- a/src/gallium/auxiliary/target-helpers/drm_helper_public.h
-+++ b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
-@@ -40,4 +40,7 @@ pipe_etna_create_screen(int fd);
- struct pipe_screen *
- pipe_imx_drm_create_screen(int fd);
-
-+struct pipe_screen *
-+pipe_tegra_create_screen(int fd);
-+
- #endif /* _DRM_HELPER_PUBLIC_H */
-diff --git a/src/gallium/drivers/nouveau/nouveau_buffer.c b/src/gallium/drivers/nouveau/nouveau_buffer.c
-index 2c60441..b45cc7b 100644
---- a/src/gallium/drivers/nouveau/nouveau_buffer.c
-+++ b/src/gallium/drivers/nouveau/nouveau_buffer.c
-@@ -117,6 +117,7 @@ nouveau_buffer_destroy(struct pipe_screen *pscreen,
- struct pipe_resource *presource)
- {
- struct nv04_resource *res = nv04_resource(presource);
-+ struct nouveau_screen *scr = nouveau_screen(pscreen);
-
- nouveau_buffer_release_gpu_storage(res);
-
-@@ -128,6 +129,9 @@ nouveau_buffer_destroy(struct pipe_screen *pscreen,
-
- util_range_destroy(&res->valid_buffer_range);
-
-+ if (res->scanout)
-+ renderonly_scanout_destroy(res->scanout, scr->ro);
-+
- FREE(res);
-
- NOUVEAU_DRV_STAT(nouveau_screen(pscreen), buf_obj_current_count, -1);
-diff --git a/src/gallium/drivers/nouveau/nouveau_buffer.h b/src/gallium/drivers/nouveau/nouveau_buffer.h
-index 3a33fae..c01fda4 100644
---- a/src/gallium/drivers/nouveau/nouveau_buffer.h
-+++ b/src/gallium/drivers/nouveau/nouveau_buffer.h
-@@ -50,6 +50,8 @@ struct nv04_resource {
-
- /* buffer range that has been initialized */
- struct util_range valid_buffer_range;
-+
-+ struct renderonly_scanout *scanout;
- };
-
- void
-diff --git a/src/gallium/drivers/nouveau/nouveau_screen.h b/src/gallium/drivers/nouveau/nouveau_screen.h
-index e4fbae9..b326c52 100644
---- a/src/gallium/drivers/nouveau/nouveau_screen.h
-+++ b/src/gallium/drivers/nouveau/nouveau_screen.h
-@@ -2,6 +2,7 @@
- #define __NOUVEAU_SCREEN_H__
-
- #include "pipe/p_screen.h"
-+#include "renderonly/renderonly.h"
- #include "util/disk_cache.h"
- #include "util/u_memory.h"
-
-@@ -62,6 +63,8 @@ struct nouveau_screen {
-
- struct disk_cache *disk_shader_cache;
-
-+ struct renderonly *ro;
-+
- #ifdef NOUVEAU_ENABLE_DRIVER_STATISTICS
- union {
- uint64_t v[29];
-diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
-index f2e304f..29e95a6 100644
---- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
-+++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
-@@ -189,6 +189,9 @@ nv50_miptree_get_handle(struct pipe_screen *pscreen,
- if (!mt || !mt->base.bo)
- return false;
-
-+ if (renderonly_get_handle(mt->base.scanout, whandle))
-+ return TRUE;
-+
- stride = mt->level[0].pitch;
-
- return nouveau_screen_bo_get_handle(pscreen,
-diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_resource.c b/src/gallium/drivers/nouveau/nvc0/nvc0_resource.c
-index 9bafe3d..adfd61c 100644
---- a/src/gallium/drivers/nouveau/nvc0/nvc0_resource.c
-+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_resource.c
-@@ -8,12 +8,26 @@ static struct pipe_resource *
- nvc0_resource_create(struct pipe_screen *screen,
- const struct pipe_resource *templ)
- {
-+ struct nouveau_screen *scr = nouveau_screen(screen);
-+ struct pipe_resource *pres;
-+
- switch (templ->target) {
- case PIPE_BUFFER:
-- return nouveau_buffer_create(screen, templ);
-+ pres = nouveau_buffer_create(screen, templ);
-+ break;
- default:
-- return nvc0_miptree_create(screen, templ);
-+ pres = nvc0_miptree_create(screen, templ);
-+ break;
- }
-+
-+ if (pres) {
-+ struct nv04_resource *res = nv04_resource(pres);
-+
-+ if (templ->bind & PIPE_BIND_SCANOUT && scr->ro)
-+ res->scanout = renderonly_scanout_for_resource(pres, scr->ro);
-+ }
-+
-+ return pres;
- }
-
- static struct pipe_resource *
-diff --git a/src/gallium/drivers/tegra/Automake.inc b/src/gallium/drivers/tegra/Automake.inc
-new file mode 100644
-index 0000000..89e0441
---- /dev/null
-+++ b/src/gallium/drivers/tegra/Automake.inc
-@@ -0,0 +1,9 @@
-+if HAVE_GALLIUM_TEGRA
-+
-+TARGET_DRIVERS += tegra
-+TARGET_CPPFLAGS += -DGALLIUM_TEGRA
-+TARGET_LIB_DEPS += \
-+ $(top_builddir)/src/gallium/winsys/tegra/drm/libtegradrm.la \
-+ $(LIBDRM_LIBS)
-+
-+endif
-diff --git a/src/gallium/drivers/tegra/Makefile.am b/src/gallium/drivers/tegra/Makefile.am
-new file mode 100644
-index 0000000..30f4689
---- /dev/null
-+++ b/src/gallium/drivers/tegra/Makefile.am
-@@ -0,0 +1,10 @@
-+include $(top_srcdir)/src/gallium/Automake.inc
-+
-+AM_CPPFLAGS = \
-+ $(GALLIUM_CFLAGS) \
-+ $(TEGRA_CFLAGS) \
-+ $(LIBDRM_CFLAGS)
-+
-+noinst_LTLIBRARIES = libtegra.la
-+
-+libtegra_la_SOURCES =
-diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
-index 8363406..4bfcf3e 100644
---- a/src/gallium/targets/dri/Makefile.am
-+++ b/src/gallium/targets/dri/Makefile.am
-@@ -92,6 +92,8 @@ include $(top_srcdir)/src/gallium/drivers/virgl/Automake.inc
- include $(top_srcdir)/src/gallium/drivers/etnaviv/Automake.inc
- include $(top_srcdir)/src/gallium/drivers/imx/Automake.inc
-
-+include $(top_srcdir)/src/gallium/drivers/tegra/Automake.inc
-+
- include $(top_srcdir)/src/gallium/drivers/softpipe/Automake.inc
- include $(top_srcdir)/src/gallium/drivers/llvmpipe/Automake.inc
- include $(top_srcdir)/src/gallium/drivers/swr/Automake.inc
-diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c
-index d24a61d..600557b 100644
---- a/src/gallium/targets/dri/target.c
-+++ b/src/gallium/targets/dri/target.c
-@@ -79,3 +79,7 @@ DEFINE_LOADER_DRM_ENTRYPOINT(vc4)
- DEFINE_LOADER_DRM_ENTRYPOINT(imx_drm)
- DEFINE_LOADER_DRM_ENTRYPOINT(etnaviv)
- #endif
-+
-+#if defined(GALLIUM_TEGRA)
-+DEFINE_LOADER_DRM_ENTRYPOINT(tegra)
-+#endif
-diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_public.h b/src/gallium/winsys/nouveau/drm/nouveau_drm_public.h
-index 67b7c44..455ea77 100644
---- a/src/gallium/winsys/nouveau/drm/nouveau_drm_public.h
-+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_public.h
-@@ -3,7 +3,9 @@
- #define __NOUVEAU_DRM_PUBLIC_H__
-
- struct pipe_screen;
-+struct renderonly;
-
- struct pipe_screen *nouveau_drm_screen_create(int drmFD);
-+struct pipe_screen *nouveau_drm_screen_create_renderonly(int fd, struct renderonly *ro);
-
- #endif
-diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
-index 4ca2d35..8a457d5 100644
---- a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
-+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
-@@ -157,3 +157,13 @@ err:
- mtx_unlock(&nouveau_screen_mutex);
- return NULL;
- }
-+
-+struct pipe_screen *nouveau_drm_screen_create_renderonly(int fd, struct renderonly *ro)
-+{
-+ struct nouveau_screen *screen = nouveau_drm_screen_create(fd);
-+
-+ if (screen)
-+ screen->ro = renderonly_dup(ro);
-+
-+ return screen;
-+}
-diff --git a/src/gallium/winsys/tegra/drm/Android.mk b/src/gallium/winsys/tegra/drm/Android.mk
-new file mode 100644
-index 0000000..a48dca4
---- /dev/null
-+++ b/src/gallium/winsys/tegra/drm/Android.mk
-@@ -0,0 +1,33 @@
-+# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a
-+# copy of this software and associated documentation files (the "Software"),
-+# to deal in the Software without restriction, including without limitation
-+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+# and/or sell copies of the Software, and to permit persons to whom the
-+# Software is furnished to do so, subject to the following conditions:
-+#
-+# The above copyright notice and this permission notice shall be included
-+# in all copies or substantial portions of the Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+# DEALINGS IN THE SOFTWARE.
-+
-+LOCAL_PATH := $(call my-dir)
-+
-+# get C_SOURCES
-+include $(LOCAL_PATH)/Makefile.sources
-+
-+include $(CLEAR_VARS)
-+
-+LOCAL_SRC_FILES := $(C_SOURCES)
-+
-+LOCAL_MODULE := libmesa_winsys_tegra
-+
-+include $(GALLIUM_COMMON_MK)
-+include $(BUILD_STATIC_LIBRARY)
-diff --git a/src/gallium/winsys/tegra/drm/Makefile.am b/src/gallium/winsys/tegra/drm/Makefile.am
-new file mode 100644
-index 0000000..39068fe
---- /dev/null
-+++ b/src/gallium/winsys/tegra/drm/Makefile.am
-@@ -0,0 +1,34 @@
-+# Copyright © 2012 Intel Corporation
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a
-+# copy of this software and associated documentation files (the "Software"),
-+# to deal in the Software without restriction, including without limitation
-+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+# and/or sell copies of the Software, and to permit persons to whom the
-+# Software is furnished to do so, subject to the following conditions:
-+#
-+# The above copyright notice and this permission notice (including the next
-+# paragraph) shall be included in all copies or substantial portions of the
-+# Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+# DEALINGS IN THE SOFTWARE.
-+
-+include Makefile.sources
-+include $(top_srcdir)/src/gallium/Automake.inc
-+
-+AM_CFLAGS = \
-+ -I$(top_srcdir)/src/gallium/drivers \
-+ $(GALLIUM_WINSYS_CFLAGS) \
-+ $(TEGRA_CFLAGS) \
-+ $(LIBDRM_CFLAGS)
-+
-+noinst_LTLIBRARIES = libtegradrm.la
-+
-+libtegradrm_la_SOURCES = $(C_SOURCES)
-diff --git a/src/gallium/winsys/tegra/drm/Makefile.sources b/src/gallium/winsys/tegra/drm/Makefile.sources
-new file mode 100644
-index 0000000..29a0edc
---- /dev/null
-+++ b/src/gallium/winsys/tegra/drm/Makefile.sources
-@@ -0,0 +1,3 @@
-+C_SOURCES := \
-+ tegra_drm_public.h \
-+ tegra_drm_winsys.c
-diff --git a/src/gallium/winsys/tegra/drm/tegra_drm_public.h b/src/gallium/winsys/tegra/drm/tegra_drm_public.h
-new file mode 100644
-index 0000000..813268f
---- /dev/null
-+++ b/src/gallium/winsys/tegra/drm/tegra_drm_public.h
-@@ -0,0 +1,8 @@
-+#ifndef __TEGRA_DRM_PUBLIC_H__
-+#define __TEGRA_DRM_PUBLIC_H__
-+
-+struct pipe_screen;
-+
-+struct pipe_screen *tegra_drm_screen_create(int drmFD);
-+
-+#endif /* __TEGRA_DRM_PUBLIC_H__ */
-diff --git a/src/gallium/winsys/tegra/drm/tegra_drm_winsys.c b/src/gallium/winsys/tegra/drm/tegra_drm_winsys.c
-new file mode 100644
-index 0000000..c439b8d
---- /dev/null
-+++ b/src/gallium/winsys/tegra/drm/tegra_drm_winsys.c
-@@ -0,0 +1,76 @@
-+/*
-+ * Copyright (C) 2016 Christian Gmeiner <christian.gmeiner@gmail.com>
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice (including the next
-+ * paragraph) shall be included in all copies or substantial portions of the
-+ * Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+ * SOFTWARE.
-+ *
-+ * Authors:
-+ * Christian Gmeiner <christian.gmeiner@gmail.com>
-+ * Alexandre Courbot <acourbot@nvidia.com>
-+ */
-+
-+#include "tegra_drm_public.h"
-+#include "../../nouveau/drm/nouveau_drm_public.h"
-+#include "renderonly/renderonly.h"
-+
-+#include <libdrm/tegra_drm.h>
-+#include <xf86drm.h>
-+#include <stdio.h>
-+
-+static struct renderonly_scanout *
-+tegra_create_with_tiling_for_resource(struct pipe_resource *rsc,
-+ struct renderonly *ro)
-+{
-+ struct renderonly_scanout *scanout;
-+
-+ scanout = renderonly_create_gpu_import_for_resource(rsc, ro);
-+ if (!scanout)
-+ return NULL;
-+
-+ struct drm_tegra_gem_set_tiling args = {
-+ .handle = scanout->handle,
-+ .mode = DRM_TEGRA_GEM_TILING_MODE_BLOCK,
-+ .value = 4
-+ };
-+
-+ int ret = drmIoctl(ro->kms_fd, DRM_IOCTL_TEGRA_GEM_SET_TILING, &args);
-+ if (ret)
-+ return NULL;
-+
-+ return scanout;
-+}
-+
-+struct pipe_screen *tegra_drm_screen_create(int fd)
-+{
-+ struct renderonly ro = {
-+ .create_for_resource = tegra_create_with_tiling_for_resource,
-+ .kms_fd = fd,
-+ .gpu_fd = drmOpenWithType("nouveau", NULL, DRM_NODE_RENDER),
-+ };
-+
-+ if (ro.gpu_fd < 0)
-+ return NULL;
-+
-+ struct pipe_screen *screen = nouveau_drm_screen_create_renderonly(ro.gpu_fd, &ro);
-+ if (!screen)
-+ drmClose(ro.gpu_fd);
-+
-+ /* printf("Tegra + Nouveau renderonly mode\n"); */
-+ return screen;
-+};
-diff --git a/src/mesa/drivers/dri/nouveau/nouveau_screen.h b/src/mesa/drivers/dri/nouveau/nouveau_screen.h
-index e3c1928..720ee31 100644
---- a/src/mesa/drivers/dri/nouveau/nouveau_screen.h
-+++ b/src/mesa/drivers/dri/nouveau/nouveau_screen.h
-@@ -36,6 +36,7 @@ struct nouveau_screen {
- struct nouveau_drm *drm;
- struct nouveau_device *device;
- const struct nouveau_driver *driver;
-+ struct renderonly *ro;
- };
-
- #endif
---
-2.7.4
-
diff --git a/recipes-graphics/mesa/mesa/0002-make-DRI-work-under-X.patch b/recipes-graphics/mesa/mesa/0002-make-DRI-work-under-X.patch
deleted file mode 100644
index 799eddd..0000000
--- a/recipes-graphics/mesa/mesa/0002-make-DRI-work-under-X.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0919eb301de1512bd24298d7f11a0dc6309fb029 Mon Sep 17 00:00:00 2001
-From: Alexandre Courbot <acourbot@nvidia.com>
-Date: Mon, 11 Jul 2016 14:44:59 +0900
-Subject: [PATCH 2/4] make DRI work under X
-
----
- src/loader/loader_dri3_helper.c | 1 +
- 1 files changed, 1 insertions(+), 0 deletion(-)
-
-diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
-index c2ae895..1d01193 100644
---- a/src/loader/loader_dri3_helper.c
-+++ b/src/loader/loader_dri3_helper.c
-@@ -145,6 +145,7 @@ loader_dri3_drawable_init(xcb_connection_t *conn,
- draw->drawable = drawable;
- draw->dri_screen = dri_screen;
- draw->is_different_gpu = is_different_gpu;
-+ draw->is_different_gpu = 1;
-
- draw->have_back = 0;
- draw->have_fake_front = 0;
---
-2.7.4
-
diff --git a/recipes-graphics/mesa/mesa/0003-loader-Automatic-PRIME-detection.patch b/recipes-graphics/mesa/mesa/0003-loader-Automatic-PRIME-detection.patch
deleted file mode 100644
index d252b18..0000000
--- a/recipes-graphics/mesa/mesa/0003-loader-Automatic-PRIME-detection.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 0f4808856ce42de4e0cf7e0c3af114165c105003 Mon Sep 17 00:00:00 2001
-From: Thierry Reding <treding@nvidia.com>
-Date: Fri, 23 Dec 2016 21:36:00 +0100
-Subject: [PATCH 3/4] loader: Automatic PRIME detection
-
-If a device doesn't support rendering and support for PRIME isn't
-enabled via the DRI_PRIME environment variable or dri.conf, attempt to
-find a render node which can be used to offload rendering.
-
-Signed-off-by: Thierry Reding <treding@nvidia.com>
----
- src/loader/loader.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 67 insertions(+), 4 deletions(-)
-
-diff --git a/src/loader/loader.c b/src/loader/loader.c
-index 5541ccc..19e73a7 100644
---- a/src/loader/loader.c
-+++ b/src/loader/loader.c
-@@ -108,6 +108,71 @@ static char *loader_get_dri_config_device_id(void)
- }
- #endif
-
-+/*
-+ * For all devices that do not support rendering, try to find a different
-+ * device that will.
-+ *
-+ * Note that the absence of a render node doesn't technically imply that
-+ * the device can't render, but in practice this should work out fine.
-+ */
-+static int drm_detect_prime_fd(int default_fd, int *different_device)
-+{
-+ int err, fd = -ENODEV;
-+ drmDevicePtr device;
-+
-+ err = drmGetDevice(default_fd, &device);
-+ if (err < 0)
-+ goto err;
-+
-+ if ((device->available_nodes & (1 << DRM_NODE_RENDER)) == 0) {
-+ unsigned int num_devices, i;
-+ drmDevicePtr *devices;
-+
-+ err = drmGetDevices(NULL, 0);
-+ if (err < 0)
-+ goto err;
-+
-+ num_devices = err;
-+
-+ devices = calloc(num_devices, sizeof(drmDevicePtr));
-+ if (!devices)
-+ goto err;
-+
-+ err = drmGetDevices(devices, num_devices);
-+ if (err < 0) {
-+ free(devices);
-+ goto err;
-+ }
-+
-+ num_devices = err;
-+
-+ for (i = 0; i < num_devices; i++) {
-+ if (devices[i]->available_nodes & (1 << DRM_NODE_RENDER)) {
-+ fd = loader_open_device(devices[i]->nodes[DRM_NODE_RENDER]);
-+ if (fd < 0) {
-+ fd = -errno;
-+ continue;
-+ }
-+
-+ close(default_fd);
-+ break;
-+ }
-+ }
-+
-+ drmFreeDevices(devices, num_devices);
-+ free(devices);
-+ }
-+
-+err:
-+ if (fd < 0) {
-+ *different_device = 0;
-+ return default_fd;
-+ }
-+
-+ *different_device = 1;
-+ return fd;
-+}
-+
- static char *drm_construct_id_path_tag(drmDevicePtr device)
- {
- /* Length of "pci-xxxx_xx_xx_x\0" */
-@@ -170,10 +235,8 @@ int loader_get_user_preferred_fd(int default_fd, int *different_device)
- prime = loader_get_dri_config_device_id();
- #endif
-
-- if (prime == NULL) {
-- *different_device = 0;
-- return default_fd;
-- }
-+ if (prime == NULL || *prime == '\0')
-+ return drm_detect_prime_fd(default_fd, different_device);
-
- default_tag = drm_get_id_path_tag_for_fd(default_fd);
- if (default_tag == NULL)
---
-2.7.4
-
diff --git a/recipes-graphics/mesa/mesa/0004-mesa-17.1.7-compilation-fixes.patch b/recipes-graphics/mesa/mesa/0004-mesa-17.1.7-compilation-fixes.patch
deleted file mode 100644
index f9e9a45..0000000
--- a/recipes-graphics/mesa/mesa/0004-mesa-17.1.7-compilation-fixes.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3fd098d1127695a2ba5f9e56eb51c0c26c928d2c Mon Sep 17 00:00:00 2001
-From: Dominik Sliwa <dominik.sliwa@toradex.com>
-Date: Tue, 5 Dec 2017 15:33:29 +0000
-Subject: [PATCH 4/4] mesa: 17.1.7 compilation fixes
-
-Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
----
- src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
-index 68d02f8..958f1be 100644
---- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
-+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
-@@ -1250,7 +1250,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
-
- cmp->dType = TYPE_F32;
- if (i->src(t).mod != Modifier(0)) {
-- assert(i->src(t).mod == Modifier(NV50_IR_MOD_NOT));
-+ // assert(i->src(t).mod == Modifier(NV50_IR_MOD_NOT));
- i->src(t).mod = Modifier(0);
- cmp->setCond = inverseCondCode(cmp->setCond);
- }
---
-2.7.4
-
diff --git a/recipes-graphics/mesa/mesa_%.bbappend b/recipes-graphics/mesa/mesa_%.bbappend
index bc26ea5..39d1dd6 100644
--- a/recipes-graphics/mesa/mesa_%.bbappend
+++ b/recipes-graphics/mesa/mesa_%.bbappend
@@ -31,13 +31,6 @@ EXTRA_OECONF_append_tegra124m = " --enable-texture-float --without-dri-drivers -
DRIDRIVERS_tegra124m = " "
GALLIUMDRIVERS_tegra124m = "tegra"
-SRC_URI_append_tegra124m = " \
- file://0001-gallium-add-tegra-support.patch \
- file://0002-make-DRI-work-under-X.patch \
- file://0003-loader-Automatic-PRIME-detection.patch \
- file://0004-mesa-17.1.7-compilation-fixes.patch \
-"
-
PACKAGE_ARCH_tegra124m = "${MACHINE_ARCH}"
PE_tegra124m = "99"