diff options
author | kyechou | 2022-11-15 21:09:02 -0600 |
---|---|---|
committer | kyechou | 2022-11-15 21:09:02 -0600 |
commit | df11728849ccfdec64a5404be0e75cd98db5d287 (patch) | |
tree | 063bce33ac8abfa50b9634cc4e5117eb0c2491cd | |
download | aur-df11728849ccfdec64a5404be0e75cd98db5d287.tar.gz |
First commit
-rw-r--r-- | .SRCINFO | 41 | ||||
-rw-r--r-- | PKGBUILD | 49 | ||||
-rw-r--r-- | nvidia.patch | 37 |
3 files changed, 127 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..982806c01a5a --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,41 @@ +pkgbase = wlroots-nvidia-git + pkgdesc = Modular Wayland compositor library (git version with nvidia patches) + pkgver = 0.16.0.r58.g77d9fc08 + pkgrel = 1 + url = https://gitlab.freedesktop.org/wlroots/wlroots + arch = x86_64 + license = MIT + makedepends = git + makedepends = glslang + makedepends = meson + makedepends = ninja + makedepends = systemd + makedepends = vulkan-headers + makedepends = wayland-protocols + makedepends = xorg-xwayland + depends = libglvnd + depends = libinput + depends = libudev.so + depends = libxcb + depends = libxkbcommon + depends = opengl-driver + depends = pixman + depends = wayland + depends = xcb-util-errors + depends = xcb-util-renderutil + depends = xcb-util-wm + depends = seatd + depends = vulkan-icd-loader + depends = vulkan-validation-layers + depends = xorg-xwayland + optdepends = xorg-xwayland: Xwayland support + provides = wlroots + provides = wlroots-git + conflicts = wlroots + conflicts = wlroots-git + source = wlroots-nvidia-git::git+https://gitlab.freedesktop.org/wlroots/wlroots.git + source = nvidia.patch + sha256sums = SKIP + sha256sums = ab3aabd4be34c9a4d7fef86be37aa6c971b1106fb2bf7d7651c809338aff298c + +pkgname = wlroots-nvidia-git diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..3789af9c238f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Kuan-Yen Chou <kychou2@illinois.edu> + +pkgname=wlroots-nvidia-git +pkgver=0.16.0.r58.g77d9fc08 +pkgrel=1 +pkgdesc='Modular Wayland compositor library (git version with nvidia patches)' +depends=(libglvnd libinput libudev.so libxcb libxkbcommon opengl-driver pixman + wayland xcb-util-errors xcb-util-renderutil xcb-util-wm seatd + vulkan-icd-loader vulkan-validation-layers xorg-xwayland) +makedepends=(git glslang meson ninja systemd vulkan-headers wayland-protocols + xorg-xwayland) +optdepends=('xorg-xwayland: Xwayland support') +arch=(x86_64) +url="https://gitlab.freedesktop.org/wlroots/wlroots" +license=(MIT) +provides=(wlroots wlroots-git) +conflicts=(wlroots wlroots-git) +source=("$pkgname::git+https://gitlab.freedesktop.org/wlroots/wlroots.git" + "nvidia.patch") +sha256sums=('SKIP' + 'ab3aabd4be34c9a4d7fef86be37aa6c971b1106fb2bf7d7651c809338aff298c') + +pkgver() { + cd "$srcdir/$pkgname" + if git describe --long --tags >/dev/null 2>&1; then + git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' + else + printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git describe --always)" + fi +} + +prepare() { + cd "$srcdir/$pkgname" + patch -Np0 -i "$srcdir/nvidia.patch" +} + +build() { + cd "$srcdir/$pkgname" + arch-meson --buildtype=release -Dwerror=false -Dexamples=false . build + ninja -C build +} + +package() { + cd "$srcdir/$pkgname" + DESTDIR="$pkgdir" ninja -C build install + install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/wlroots" +} + +# vim: set sw=4 ts=4 et: diff --git a/nvidia.patch b/nvidia.patch new file mode 100644 index 000000000000..306324bd7c2f --- /dev/null +++ b/nvidia.patch @@ -0,0 +1,37 @@ +--- render/gles2/renderer.c ++++ render/gles2/renderer.c +@@ -165,7 +165,7 @@ + assert(wlr_egl_is_current(renderer->egl)); + + push_gles2_debug(renderer); +- glFlush(); ++ glFinish(); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + pop_gles2_debug(renderer); + +--- types/output/render.c ++++ types/output/render.c +@@ -327,22 +327,7 @@ struct wlr_drm_format *output_pick_format(struct wlr_output *output, + } + + uint32_t wlr_output_preferred_read_format(struct wlr_output *output) { +- struct wlr_renderer *renderer = output->renderer; +- assert(renderer != NULL); +- +- if (!renderer->impl->preferred_read_format || !renderer->impl->read_pixels) { +- return DRM_FORMAT_INVALID; +- } +- +- if (!output_attach_back_buffer(output, &output->pending, NULL)) { +- return false; +- } +- +- uint32_t fmt = renderer->impl->preferred_read_format(renderer); +- +- output_clear_back_buffer(output); +- +- return fmt; ++ return DRM_FORMAT_XRGB8888; + } + + bool output_is_direct_scanout(struct wlr_output *output, |