pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
MesaLib-dfbsd-meson: Fix DragonFly radeonsi with option to revert SDMA uploader patch
Module Name: pkgsrc-wip
Committed By: David Shao <davshao%gmail.com@localhost>
Pushed By: dshao
Date: Sun Mar 3 13:51:27 2019 -0800
Changeset: 981a648002717d8f769021bd140d7469edc946ae
Modified Files:
MesaLib-dfbsd-meson/Makefile
MesaLib-dfbsd-meson/distinfo
MesaLib-dfbsd-meson/options.mk
MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
Added Files:
MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
Log Message:
MesaLib-dfbsd-meson: Fix DragonFly radeonsi with option to revert SDMA uploader patch
Update meson build through March 2, 2019.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=981a648002717d8f769021bd140d7469edc946ae
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
MesaLib-dfbsd-meson/Makefile | 11 ++--
MesaLib-dfbsd-meson/distinfo | 13 +++--
MesaLib-dfbsd-meson/options.mk | 7 ++-
...patch-src_gallium_drivers_radeonsi_si__buffer.c | 65 ++++++++++++++++++++++
...atch-src_gallium_drivers_radeonsi_si__dma__cs.c | 22 ++++++++
...atch-src_gallium_drivers_radeonsi_si__gfx__cs.c | 38 +++++++++++++
.../patch-src_gallium_drivers_radeonsi_si__pipe.c | 32 +++++++++--
7 files changed, 172 insertions(+), 16 deletions(-)
diffs:
diff --git a/MesaLib-dfbsd-meson/Makefile b/MesaLib-dfbsd-meson/Makefile
index 32c6348d3e..0cf2290dc8 100644
--- a/MesaLib-dfbsd-meson/Makefile
+++ b/MesaLib-dfbsd-meson/Makefile
@@ -1,10 +1,13 @@
# $NetBSD: Makefile,v 1.18 2019/02/22 15:40:35 tnn Exp $
-# 2019-02-26 panfrost/midgard: Allow flt to run on most units
-COMMIT_ID= b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f
+# 2019-03-02 st/mesa: add support for lowering fp64/int64 for nir drivers
+COMMIT_ID= cb4e3e3ef6e47811303ad3413a4ab2048696a6f6
+
+# 2019-02-28 scons: Workaround failures with MSVC when using SCons 3.0.[2-4].
+# COMMIT_ID= 838c0485e01f3d3403b430aa6df5b4a1f5262dc3
-# 2019-02-21 gallium/auxiliary/vl: Fix transparent issue on compute shader with rgba
-## COMMIT_ID= eac822eac1d0d682aa199cb039e9df4c53ec5e1e
+# 2019-02-26 panfrost/midgard: Allow flt to run on most units
+# COMMIT_ID= b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f
PORTNAME= mesa
diff --git a/MesaLib-dfbsd-meson/distinfo b/MesaLib-dfbsd-meson/distinfo
index 10468c4227..f8d1c7fde1 100644
--- a/MesaLib-dfbsd-meson/distinfo
+++ b/MesaLib-dfbsd-meson/distinfo
@@ -1,9 +1,9 @@
$NetBSD: distinfo,v 1.16 2019/02/22 15:40:35 tnn Exp $
-SHA1 (mesa-b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f.tar.xz) = 1f4abc5e81b0324a29e18e4a6462b7594426a0e5
-RMD160 (mesa-b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f.tar.xz) = 9de8f29f7c4ed493fd2fcc13bf1acc219f757b49
-SHA512 (mesa-b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f.tar.xz) = 77dff3852e6e9a396f1147a58e127188decf42496e89428ad3950d7bc00745fe538a7f9739740e64631bd0e3d3c65fb9411c7b6badfcea751da7cf735cca59de
-Size (mesa-b7a5b81d1488d4ec11ca49664b4f83ffd9dade2f.tar.xz) = 10566208 bytes
+SHA1 (mesa-cb4e3e3ef6e47811303ad3413a4ab2048696a6f6.tar.xz) = 3dd8d94a5b01dcfa9472f66a096341d5d588a3ca
+RMD160 (mesa-cb4e3e3ef6e47811303ad3413a4ab2048696a6f6.tar.xz) = 60b3f3e02165ce3a6ba72879a729fc45f2625bc7
+SHA512 (mesa-cb4e3e3ef6e47811303ad3413a4ab2048696a6f6.tar.xz) = 9d723565a7a7e70f4237ac390f29a5d64e014dd41b738184b5b77ac70cc6ea5339099a6f66d2acc9dd52213dcef83162f95847e949266ad28e35dc4980ea4410
+Size (mesa-cb4e3e3ef6e47811303ad3413a4ab2048696a6f6.tar.xz) = 10570888 bytes
SHA1 (patch-configure.ac) = cddca44dbf1e2f447dd30a03440104920d6c24ab
SHA1 (patch-include_GL_internal_dri__interface.h) = 76803a4ab6ff7e596900a0099dd9712093f8bc21
SHA1 (patch-src_amd_common_ac__debug.c) = 8233367c3b5bc344442ea8d19488fdd1e3791ae9
@@ -21,8 +21,11 @@ SHA1 (patch-src_gallium_drivers_freedreno_freedreno__screen.c) = d76bf52c25609d6
SHA1 (patch-src_gallium_drivers_iris_meson.build) = 9b94ae7047763cc4b1be5b39a3d9cac898e10f65
SHA1 (patch-src_gallium_drivers_nouveau_nouveau__vp3__video.c) = 04f95784c3270c9bb7e95377982e217962481525
SHA1 (patch-src_gallium_drivers_nouveau_nv50_nv84__video.c) = 1b4239fe053523835ecac006894bdb0cde0ee626
+SHA1 (patch-src_gallium_drivers_radeonsi_si__buffer.c) = dc2dcb0f87a01ae0162a8c5746911c53e669cd2e
SHA1 (patch-src_gallium_drivers_radeonsi_si__compute__blit.c) = 65235a932809c434546db0416e69241d62cdaf06
-SHA1 (patch-src_gallium_drivers_radeonsi_si__pipe.c) = c8b6d6418956469f283f3e6bab848c33f54b75e1
+SHA1 (patch-src_gallium_drivers_radeonsi_si__dma__cs.c) = 3c6a2a49e40dd8f99f5f393ad6e03345111cdeb1
+SHA1 (patch-src_gallium_drivers_radeonsi_si__gfx__cs.c) = 98ca07e2cc518125e5ec8924cbadc19f4c13de56
+SHA1 (patch-src_gallium_drivers_radeonsi_si__pipe.c) = 3c6c0e7f1ed9c2cc2b04770206880a0536a09fd2
SHA1 (patch-src_gallium_drivers_radeonsi_si__state__shaders.c) = ed51a57765f2349bc91fd509dc03e709241bd899
SHA1 (patch-src_gallium_drivers_vc4_vc4__bufmgr.c) = 1d591d346486fdf58893f69ab92a272e6a31a987
SHA1 (patch-src_gallium_include_pipe_p__config.h) = f4e38eac66167b619c30076bb0144dd716310967
diff --git a/MesaLib-dfbsd-meson/options.mk b/MesaLib-dfbsd-meson/options.mk
index 3cbbf3a25a..03eec4d38a 100644
--- a/MesaLib-dfbsd-meson/options.mk
+++ b/MesaLib-dfbsd-meson/options.mk
@@ -18,6 +18,7 @@ PKG_SUPPORTED_OPTIONS+= no_cs_queue
PKG_SUPPORTED_OPTIONS+= revert_threaded_context
PKG_SUPPORTED_OPTIONS+= revert_copy_clear
PKG_SUPPORTED_OPTIONS+= revert_i965_softpin
+PKG_SUPPORTED_OPTIONS+= revert_sdma_uploader
# PKG_SUGGESTED_OPTIONS+= xvmc
PKG_SUGGESTED_OPTIONS+= vdpau vaapi
@@ -66,6 +67,7 @@ PKG_SUGGESTED_OPTIONS+= revert_copy_clear
.if ${OPSYS} == "DragonFly"
PKG_SUGGESTED_OPTIONS+= revert_i965_softpin
+PKG_SUGGESTED_OPTIONS+= revert_sdma_uploader
.endif
.include "../../mk/bsd.options.mk"
@@ -189,7 +191,6 @@ DRI_DRIVERS+= i965
.if !empty(PKG_OPTIONS:Miris)
GALLIUM_DRIVERS+= iris
PLIST.iris= yes
-# MESON_ARGS+= -Dtools=nir
.endif
# Vulkan support
@@ -398,3 +399,7 @@ CPPFLAGS+= -DREVERT_COPY_CLEAR
.if !empty(PKG_OPTIONS:Mrevert_i965_softpin)
CPPFLAGS+= -DREVERT_I965_SOFTPIN
.endif
+
+.if !empty(PKG_OPTIONS:Mrevert_sdma_uploader)
+CPPFLAGS+= -DREVERT_SDMA_UPLOADER
+.endif
diff --git a/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
new file mode 100644
index 0000000000..fdbe253ae1
--- /dev/null
+++ b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
@@ -0,0 +1,65 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_buffer.c.orig 2019-02-21 02:04:29.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_buffer.c
+@@ -440,6 +440,9 @@ static void *si_buffer_transfer_map(stru
+ }
+ }
+
++#if defined(REVERT_SDMA_UPLOADER)
++ if ((usage & PIPE_TRANSFER_DISCARD_RANGE) &&
++#else
+ if (usage & PIPE_TRANSFER_FLUSH_EXPLICIT &&
+ buf->b.b.flags & SI_RESOURCE_FLAG_UPLOAD_FLUSH_EXPLICIT_VIA_SDMA) {
+ usage &= ~(PIPE_TRANSFER_UNSYNCHRONIZED |
+@@ -449,6 +452,7 @@ static void *si_buffer_transfer_map(stru
+ }
+
+ if (usage & PIPE_TRANSFER_DISCARD_RANGE &&
++#endif
+ ((!(usage & (PIPE_TRANSFER_UNSYNCHRONIZED |
+ PIPE_TRANSFER_PERSISTENT))) ||
+ (buf->flags & RADEON_FLAG_SPARSE))) {
+@@ -461,6 +465,12 @@ static void *si_buffer_transfer_map(stru
+ si_rings_is_buffer_referenced(sctx, buf->buf, RADEON_USAGE_READWRITE) ||
+ !sctx->ws->buffer_wait(buf->buf, 0, RADEON_USAGE_READWRITE)) {
+ /* Do a wait-free write-only transfer using a temporary buffer. */
++#if defined(REVERT_SDMA_UPLOADER)
++ unsigned offset;
++ struct si_resource *staging = NULL;
++
++ u_upload_alloc(ctx->stream_uploader, 0,
++#else
+ struct u_upload_mgr *uploader;
+ struct si_resource *staging = NULL;
+ unsigned offset;
+@@ -475,6 +485,7 @@ static void *si_buffer_transfer_map(stru
+ uploader = sctx->b.stream_uploader;
+
+ u_upload_alloc(uploader, 0,
++#endif
+ box->width + (box->x % SI_MAP_BUFFER_ALIGNMENT),
+ sctx->screen->info.tcc_cache_line_size,
+ &offset, (struct pipe_resource**)&staging,
+@@ -548,6 +559,7 @@ static void si_buffer_do_flush_region(st
+ transfer->box.x % SI_MAP_BUFFER_ALIGNMENT +
+ (box->x - transfer->box.x);
+
++#if !defined(REVERT_SDMA_UPLOADER)
+ if (buf->b.b.flags & SI_RESOURCE_FLAG_UPLOAD_FLUSH_EXPLICIT_VIA_SDMA) {
+ /* This should be true for all uploaders. */
+ assert(transfer->box.x == 0);
+@@ -587,6 +599,7 @@ static void si_buffer_do_flush_region(st
+ up->size = box->width;
+ return;
+ }
++#endif
+
+ /* Copy the staging buffer into the original one. */
+ si_copy_buffer(sctx, transfer->resource, &stransfer->staging->b.b,
diff --git a/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
new file mode 100644
index 0000000000..d28481f13d
--- /dev/null
+++ b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
@@ -0,0 +1,22 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_dma_cs.c.orig 2019-02-21 02:04:29.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_dma_cs.c
+@@ -182,7 +182,11 @@ void si_need_dma_space(struct si_context
+ RADEON_USAGE_WRITE)))
+ si_dma_emit_wait_idle(ctx);
+
++#if defined(REVERT_SDMA_UPLOADER)
++ unsigned sync = 0;
++#else
+ unsigned sync = ctx->sdma_uploads_in_progress ? 0 : RADEON_USAGE_SYNCHRONIZED;
++#endif
+ if (dst) {
+ ws->cs_add_buffer(ctx->dma_cs, dst->buf, RADEON_USAGE_WRITE | sync,
+ dst->domains, 0);
diff --git a/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
new file mode 100644
index 0000000000..0a475fe31b
--- /dev/null
+++ b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
@@ -0,0 +1,38 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_gfx_cs.c.orig 2019-02-28 21:26:15.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_gfx_cs.c
+@@ -108,6 +108,19 @@ void si_flush_gfx_cs(struct si_context *
+ if (ctx->screen->debug_flags & DBG(CHECK_VM))
+ flags &= ~PIPE_FLUSH_ASYNC;
+
++#if defined(REVERT_SDMA_UPLOADER)
++ /* If the state tracker is flushing the GFX IB, si_flush_from_st is
++ * responsible for flushing the DMA IB and merging the fences from both.
++ * This code is only needed when the driver flushes the GFX IB
++ * internally, and it never asks for a fence handle.
++ */
++ if (radeon_emitted(ctx->dma_cs, 0)) {
++ assert(fence == NULL); /* internal flushes only */
++ si_flush_dma_cs(ctx, flags, NULL);
++ }
++
++ ctx->gfx_flush_in_progress = true;
++#else
+ ctx->gfx_flush_in_progress = true;
+
+ /* If the state tracker is flushing the GFX IB, si_flush_from_st is
+@@ -139,6 +152,7 @@ void si_flush_gfx_cs(struct si_context *
+ /* Flush SDMA (preamble IB). */
+ if (radeon_emitted(ctx->dma_cs, 0))
+ si_flush_dma_cs(ctx, flags, NULL);
++#endif
+
+ if (ctx->has_graphics) {
+ if (!LIST_IS_EMPTY(&ctx->active_queries))
diff --git a/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
index 725c924fc0..5ce046baaa 100644
--- a/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
+++ b/MesaLib-dfbsd-meson/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
@@ -12,7 +12,13 @@ Commit: 9b331e462e5021d994859756d46cd2519d9c9c6e
https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2519d9c9c6e
---- src/gallium/drivers/radeonsi/si_pipe.c.orig 2019-02-27 03:56:56.000000000 +0000
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_pipe.c.orig 2019-02-28 21:26:15.000000000 +0000
+++ src/gallium/drivers/radeonsi/si_pipe.c
@@ -197,10 +197,12 @@ static void si_destroy_context(struct pi
sctx->b.delete_vs_state(&sctx->b, sctx->vs_blit_color_layered);
@@ -27,7 +33,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
if (sctx->cs_copy_image)
sctx->b.delete_compute_state(&sctx->b, sctx->cs_copy_image);
if (sctx->cs_copy_image_1d_array)
-@@ -378,7 +380,11 @@ static void si_set_context_param(struct
+@@ -378,7 +380,11 @@ static void si_set_context_param(struct
}
static struct pipe_context *si_create_context(struct pipe_screen *screen,
@@ -51,7 +57,21 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
sctx->b.destroy = si_destroy_context;
sctx->screen = sscreen; /* Easy accessing of screen/winsys. */
sctx->is_debug = (flags & PIPE_CONTEXT_DEBUG) != 0;
-@@ -647,6 +657,7 @@ fail:
+@@ -454,8 +464,13 @@ static struct pipe_context *si_create_co
+ sctx, stop_exec_on_failure);
+ }
+
++#if defined(REVERT_SDMA_UPLOADER)
++ bool use_sdma_upload = false;
++ sctx->b.const_uploader = u_upload_create(&sctx->b, 128 * 1024,
++#else
+ bool use_sdma_upload = sscreen->info.has_dedicated_vram && sctx->dma_cs;
+ sctx->b.const_uploader = u_upload_create(&sctx->b, 256 * 1024,
++#endif
+ 0, PIPE_USAGE_DEFAULT,
+ SI_RESOURCE_FLAG_32BIT |
+ (use_sdma_upload ?
+@@ -647,6 +662,7 @@ fail:
return NULL;
}
@@ -59,7 +79,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
static struct pipe_context *si_pipe_create_context(struct pipe_screen *screen,
void *priv, unsigned flags)
{
-@@ -677,6 +688,7 @@ static struct pipe_context *si_pipe_crea
+@@ -677,6 +693,7 @@ static struct pipe_context *si_pipe_crea
sscreen->info.drm_major >= 3 ? si_create_fence : NULL,
&((struct si_context*)ctx)->tc);
}
@@ -67,7 +87,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
/*
* pipe_screen
-@@ -874,7 +886,11 @@ struct pipe_screen *radeonsi_screen_crea
+@@ -874,7 +891,11 @@ struct pipe_screen *radeonsi_screen_crea
debug_options, 0);
/* Set functions first. */
@@ -79,7 +99,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
sscreen->b.destroy = si_destroy_screen;
si_init_screen_get_functions(sscreen);
-@@ -1144,7 +1160,11 @@ struct pipe_screen *radeonsi_screen_crea
+@@ -1144,7 +1165,11 @@ struct pipe_screen *radeonsi_screen_crea
si_init_compiler(sscreen, &sscreen->compiler_lowp[i]);
/* Create the auxiliary context. This must be done last. */
Home |
Main Index |
Thread Index |
Old Index