Skip to content

Commit

Permalink
use zink for NVK
Browse files Browse the repository at this point in the history
  • Loading branch information
BoukeHaarsma23 committed May 20, 2024
1 parent 8be5ea7 commit 502ee70
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 2 deletions.
46 changes: 46 additions & 0 deletions common/0002-Nouveau-load-zink-as-the-GL-driver.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
From 4c766a2990306d549464a7e7e4bc89109066ecda Mon Sep 17 00:00:00 2001
From: Dave Airlie <[email protected]>
Date: Thu, 16 May 2024 09:59:57 +1000
Subject: [PATCH] loader/nouveau: load zink as the GL driver for turing and
above.

If the kernel supports modifiers and the GPU is a Turing+ then
force using zink instead of nvc0.

I expect there might be some speed bumps to work out here,
but I think we should be close.
---
src/loader/loader.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/loader/loader.c b/src/loader/loader.c
index f76a18d9e3cc1..732de42354602 100644
--- a/src/loader/loader.c
+++ b/src/loader/loader.c
@@ -147,12 +147,17 @@ nouveau_zink_predicate(int fd, const char *driver)

bool prefer_zink = false;

- /* enable this once zink is up to speed.
- * struct drm_nouveau_getparam r = { .param = NOUVEAU_GETPARAM_CHIPSET_ID };
- * int ret = drmCommandWriteRead(fd, DRM_NOUVEAU_GETPARAM, &r, sizeof(r));
- * if (ret == 0 && (r.value & ~0xf) >= 0x160)
- * prefer_zink = true;
- */
+ /* enable this once zink is up to speed. */
+ struct drm_nouveau_getparam r = { .param = NOUVEAU_GETPARAM_HAS_VMA_TILEMODE };
+ int ret = drmCommandWriteRead(fd, DRM_NOUVEAU_GETPARAM, &r, sizeof(r));
+ if (ret == 0 && r.value == 1) {
+ r.param = NOUVEAU_GETPARAM_CHIPSET_ID;
+ r.value = 0;
+ ret = drmCommandWriteRead(fd, DRM_NOUVEAU_GETPARAM, &r, sizeof(r));
+ if (ret == 0 && (r.value & ~0xf) >= 0x160) {
+ prefer_zink = true;
+ }
+ }

prefer_zink = debug_get_bool_option("NOUVEAU_USE_ZINK", prefer_zink);

--
GitLab

1 change: 1 addition & 0 deletions lib32-mesa/0002-Nouveau-load-zink-as-the-GL-driver.patch
5 changes: 4 additions & 1 deletion lib32-mesa/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pkgname=(
'lib32-mesa'
)
_mesaver=24.1.0-rc4
pkgver=${_mesaver//-/.}.chos1
pkgver=${_mesaver//-/.}.chos2
pkgrel=1
epoch=1
pkgdesc="Open-source OpenGL drivers - 32-bit"
Expand Down Expand Up @@ -79,6 +79,7 @@ source=(
https://mesa.freedesktop.org/archive/mesa-${_mesaver}.tar.xz{,.sig}
LICENSE
0001-STEAMOS-Dynamic-swapchain-override-for-gamescope-lim.patch
0002-Nouveau-load-zink-as-the-GL-driver.patch
)
validpgpkeys=(
'8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <[email protected]>
Expand Down Expand Up @@ -106,6 +107,7 @@ sha256sums=('57b29989fa446f788b716d5175f6e168a28241f79ccc8b14835d4e491c017294'
'SKIP'
'7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537'
'f1343e521907006dc482e619dff5b43db616977febd9ba80af8ef7511da5b6b5'
'1727a770f7d9c1838718a186545ae84fad05e29be18043f8eec46e475842a790'
'39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b'
'3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'
'5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae'
Expand All @@ -115,6 +117,7 @@ b2sums=('66c09358acc3fa27ff74ae71a999777b93d28b0cc0f34f43c36710994b73fdc6f922977
'SKIP'
'1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb'
'be2f4cc356e67861b7c47b15132ad3178bfbb206137223cf77691fc5e4d75cb035a3a74cdbfa3766cc2924dfd503417f4758084732215264c715f050f231bcc8'
'bfb6a0ef05abedecc5fc550a8de9c57f2909e0307cec963c913c387a9f037aa88acc588ac3279e5869033ffac7949c5867c96f30763d521659d62047cd58d6d8'
'fff0dec06b21e391783cc136790238acb783780eaedcf14875a350e7ceb46fdc100c8b9e3f09fb7f4c2196c25d4c6b61e574c0dad762d94533b628faab68cf5c'
'4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac'
'77c4b166f1200e1ee2ab94a5014acd334c1fe4b7d72851d73768d491c56c6779a0882a304c1f30c88732a6168351f0f786b10516ae537cff993892a749175848'
Expand Down
1 change: 1 addition & 0 deletions mesa/0002-Nouveau-load-zink-as-the-GL-driver.patch
5 changes: 4 additions & 1 deletion mesa/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pkgname=(
'mesa'
)
_mesaver=24.1.0-rc4
pkgver=${_mesaver//-/.}.chos1
pkgver=${_mesaver//-/.}.chos2
pkgrel=1
epoch=1
pkgdesc="Open-source OpenGL drivers"
Expand Down Expand Up @@ -83,6 +83,7 @@ source=(
https://mesa.freedesktop.org/archive/mesa-${_mesaver}.tar.xz{,.sig}
LICENSE
0001-STEAMOS-Dynamic-swapchain-override-for-gamescope-lim.patch
0002-Nouveau-load-zink-as-the-GL-driver.patch
)
validpgpkeys=(
'8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <[email protected]>
Expand Down Expand Up @@ -110,6 +111,7 @@ sha256sums=('57b29989fa446f788b716d5175f6e168a28241f79ccc8b14835d4e491c017294'
'SKIP'
'7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537'
'f1343e521907006dc482e619dff5b43db616977febd9ba80af8ef7511da5b6b5'
'1727a770f7d9c1838718a186545ae84fad05e29be18043f8eec46e475842a790'
'39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b'
'3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'
'5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae'
Expand All @@ -119,6 +121,7 @@ b2sums=('66c09358acc3fa27ff74ae71a999777b93d28b0cc0f34f43c36710994b73fdc6f922977
'SKIP'
'1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb'
'be2f4cc356e67861b7c47b15132ad3178bfbb206137223cf77691fc5e4d75cb035a3a74cdbfa3766cc2924dfd503417f4758084732215264c715f050f231bcc8'
'bfb6a0ef05abedecc5fc550a8de9c57f2909e0307cec963c913c387a9f037aa88acc588ac3279e5869033ffac7949c5867c96f30763d521659d62047cd58d6d8'
'fff0dec06b21e391783cc136790238acb783780eaedcf14875a350e7ceb46fdc100c8b9e3f09fb7f4c2196c25d4c6b61e574c0dad762d94533b628faab68cf5c'
'4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac'
'77c4b166f1200e1ee2ab94a5014acd334c1fe4b7d72851d73768d491c56c6779a0882a304c1f30c88732a6168351f0f786b10516ae537cff993892a749175848'
Expand Down

0 comments on commit 502ee70

Please sign in to comment.