patch added, see PKGBUILD

This commit is contained in:
LW-archlinux 2016-08-15 00:48:39 +02:00
parent 957ace37a0
commit e2ff333b57
3 changed files with 220 additions and 72 deletions

View File

@ -1,6 +1,6 @@
pkgbase = mesa-git
pkgdesc = an open-source implementation of the OpenGL specification, git version
pkgver = 12.1.0_devel.83426.d2b4b16
pkgver = 12.1.0_devel.83858.5c1ccd8
pkgrel = 1
url = http://mesa3d.sourceforge.net
arch = i686
@ -36,9 +36,11 @@ pkgbase = mesa-git
source = mesa::git://anongit.freedesktop.org/mesa/mesa#branch=master
source = LICENSE
source = disable-pthread-stubs-on-linux.patch
md5sums = SKIP
md5sums = 5c65a0fe315dd347e09b1f2826a1df5a
md5sums = a1435715781d62ce096295c5ce656d5c
source = 0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch
sha512sums = SKIP
sha512sums = 25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2
sha512sums = 1a8ffbc194a8264ae08cad7b886ec87cd331047f35272fdcb11901ddb0c6f64e2cd69af946e01254c9df8fe881ad1e42162202e1bc38db97aaf294313fb0f9ce
sha512sums = 4c10f379c4ce905f33282e9dcbbe235fc62064d6f89ef44acc839a8c909eed5278679d41be6441f179dc6b17336ca6c8fffe2dcc85de5fc89db3787f5bb76561
pkgname = opencl-mesa-git
pkgdesc = OpenCL support for AMD/ATI Radeon Mesa drivers
@ -47,7 +49,7 @@ pkgname = opencl-mesa-git
depends = libcl
depends = libclc
depends = nettle
depends = mesa-git=12.1.0_devel.83426.d2b4b16
depends = mesa-git=12.1.0_devel.83858.5c1ccd8
optdepends = opencl-headers: headers necessary for OpenCL development
provides = opencl-mesa=12.1.0-devel
conflicts = opencl-mesa
@ -59,7 +61,7 @@ pkgname = mesa-vulkan-intel-git
depends = libgcrypt
depends = wayland
depends = libxcb
depends = mesa-git=12.1.0_devel.83426.d2b4b16
depends = mesa-git=12.1.0_devel.83858.5c1ccd8
provides = vulkan-intel
conflicts = vulkan-intel
replaces = vulkan-intel
@ -67,21 +69,21 @@ pkgname = mesa-vulkan-intel-git
pkgname = libva-mesa-driver-git
pkgdesc = VA-API implementation for gallium
depends = nettle
depends = mesa-git=12.1.0_devel.83426.d2b4b16
depends = mesa-git=12.1.0_devel.83858.5c1ccd8
provides = libva-mesa-driver=12.1.0-devel
conflicts = libva-mesa-driver
pkgname = mesa-vdpau-git
pkgdesc = Mesa VDPAU drivers
depends = nettle
depends = mesa-git=12.1.0_devel.83426.d2b4b16
depends = mesa-git=12.1.0_devel.83858.5c1ccd8
provides = mesa-vdpau=12.1.0-devel
conflicts = mesa-vdpau
replaces = mesa-vdpau
pkgname = mesa-libgl-git
pkgdesc = Mesa 3-D graphics library
depends = mesa-git=12.1.0_devel.83426.d2b4b16
depends = mesa-git=12.1.0_devel.83858.5c1ccd8
provides = mesa-libgl=12.1.0-devel
provides = libgl=12.1.0-devel
conflicts = mesa-libgl

View File

@ -0,0 +1,139 @@
From 9fc607ddf2d2b656c69144ea13bf75b5c037dee8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicolai=20H=C3=A4hnle?= <nicolai.haehnle@amd.com>
Date: Thu, 11 Aug 2016 13:06:47 +0200
Subject: [PATCH] st/mesa: candidate fix for sRGB blit errors
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97285
---
src/mesa/state_tracker/st_cb_blit.c | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c
index cfcf3f7..8aa849b 100644
--- a/src/mesa/state_tracker/st_cb_blit.c
+++ b/src/mesa/state_tracker/st_cb_blit.c
@@ -38,29 +38,20 @@
#include "st_texture.h"
#include "st_cb_bitmap.h"
#include "st_cb_blit.h"
#include "st_cb_fbo.h"
#include "st_manager.h"
#include "st_scissor.h"
#include "util/u_format.h"
static void
-st_adjust_blit_for_srgb(struct pipe_blit_info *blit, bool framebuffer_srgb)
-{
- if (!framebuffer_srgb) {
- blit->dst.format = util_format_linear(blit->dst.format);
- blit->src.format = util_format_linear(blit->src.format);
- }
-}
-
-static void
st_BlitFramebuffer(struct gl_context *ctx,
struct gl_framebuffer *readFB,
struct gl_framebuffer *drawFB,
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter)
{
const GLbitfield depthStencil = (GL_DEPTH_BUFFER_BIT |
GL_STENCIL_BUFFER_BIT);
struct st_context *st = st_context(ctx);
@@ -192,73 +183,84 @@ st_BlitFramebuffer(struct gl_context *ctx,
if (!srcObj || !srcObj->pt) {
return;
}
for (i = 0; i < drawFB->_NumColorDrawBuffers; i++) {
struct st_renderbuffer *dstRb =
st_renderbuffer(drawFB->_ColorDrawBuffers[i]);
if (dstRb) {
- struct pipe_surface *dstSurf = dstRb->surface;
+ struct pipe_surface *dstSurf;
+
+ st_update_renderbuffer_surface(st, dstRb);
+
+ dstSurf = dstRb->surface;
if (dstSurf) {
blit.dst.resource = dstSurf->texture;
blit.dst.level = dstSurf->u.tex.level;
blit.dst.box.z = dstSurf->u.tex.first_layer;
blit.dst.format = dstSurf->format;
blit.src.resource = srcObj->pt;
blit.src.level = srcAtt->TextureLevel;
blit.src.box.z = srcAtt->Zoffset + srcAtt->CubeMapFace;
blit.src.format = srcObj->pt->format;
- st_adjust_blit_for_srgb(&blit, ctx->Color.sRGBEnabled);
+ if (!ctx->Color.sRGBEnabled)
+ blit.src.format = util_format_linear(blit.src.format);
st->pipe->blit(st->pipe, &blit);
dstRb->defined = true; /* front buffer tracking */
}
}
}
}
else {
struct st_renderbuffer *srcRb =
st_renderbuffer(readFB->_ColorReadBuffer);
struct pipe_surface *srcSurf;
GLuint i;
- if (!srcRb || !srcRb->surface) {
+ if (!srcRb)
+ return;
+
+ st_update_renderbuffer_surface(st, srcRb);
+
+ if (!srcRb->surface)
return;
- }
srcSurf = srcRb->surface;
for (i = 0; i < drawFB->_NumColorDrawBuffers; i++) {
struct st_renderbuffer *dstRb =
st_renderbuffer(drawFB->_ColorDrawBuffers[i]);
if (dstRb) {
- struct pipe_surface *dstSurf = dstRb->surface;
+ struct pipe_surface *dstSurf;
+
+ st_update_renderbuffer_surface(st, dstRb);
+
+ dstSurf = dstRb->surface;
if (dstSurf) {
blit.dst.resource = dstSurf->texture;
blit.dst.level = dstSurf->u.tex.level;
blit.dst.box.z = dstSurf->u.tex.first_layer;
blit.dst.format = dstSurf->format;
blit.src.resource = srcSurf->texture;
blit.src.level = srcSurf->u.tex.level;
blit.src.box.z = srcSurf->u.tex.first_layer;
blit.src.format = srcSurf->format;
- st_adjust_blit_for_srgb(&blit, ctx->Color.sRGBEnabled);
-
st->pipe->blit(st->pipe, &blit);
dstRb->defined = true; /* front buffer tracking */
}
}
}
}
}
if (mask & depthStencil) {
/* depth and/or stencil blit */
--
2.7.4

133
PKGBUILD
View File

@ -12,7 +12,7 @@
pkgbase=mesa-git
pkgname=('opencl-mesa-git' 'mesa-vulkan-intel-git' 'libva-mesa-driver-git' 'mesa-vdpau-git' 'mesa-libgl-git' 'mesa-git')
pkgdesc="an open-source implementation of the OpenGL specification, git version"
pkgver=12.1.0_devel.83426.d2b4b16
pkgver=12.1.0_devel.83858.5c1ccd8
pkgrel=1
arch=('i686' 'x86_64')
makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm>=2.4.66' 'dri2proto' 'dri3proto' 'presentproto'
@ -23,14 +23,21 @@ url="http://mesa3d.sourceforge.net"
license=('custom')
source=('mesa::git://anongit.freedesktop.org/mesa/mesa#branch=master'
'LICENSE'
'disable-pthread-stubs-on-linux.patch')
md5sums=('SKIP'
'5c65a0fe315dd347e09b1f2826a1df5a'
'a1435715781d62ce096295c5ce656d5c')
'disable-pthread-stubs-on-linux.patch'
'0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch')
sha512sums=('SKIP'
'25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2'
'1a8ffbc194a8264ae08cad7b886ec87cd331047f35272fdcb11901ddb0c6f64e2cd69af946e01254c9df8fe881ad1e42162202e1bc38db97aaf294313fb0f9ce'
'4c10f379c4ce905f33282e9dcbbe235fc62064d6f89ef44acc839a8c909eed5278679d41be6441f179dc6b17336ca6c8fffe2dcc85de5fc89db3787f5bb76561')
prepare() {
cd ${srcdir}/mesa
patch -Np1 -i ../disable-pthread-stubs-on-linux.patch
cd "${srcdir}"/mesa
# pthread-stubs is useless on linux
patch -Np1 -i "${srcdir}"/disable-pthread-stubs-on-linux.patch
# https://bugs.freedesktop.org/show_bug.cgi?id=97285
patch -Np1 -i "${srcdir}"/0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch
}
pkgver() {
@ -39,7 +46,7 @@ pkgver() {
}
_mesaver() {
path="${srcdir}/mesa/VERSION"
path="${srcdir}"/mesa/VERSION
[ -f $path ] && cat "$path"
}
@ -114,8 +121,8 @@ build () {
make
# fake installation
mkdir -p "${srcdir}/fakeinstall"
make DESTDIR="${srcdir}/fakeinstall" install
mkdir -p "${srcdir}"/fakeinstall
make DESTDIR="${srcdir}"/fakeinstall install
}
package_opencl-mesa-git () {
@ -126,15 +133,15 @@ package_opencl-mesa-git () {
replaces=('opencl-mesa')
conflicts=('opencl-mesa')
install -v -m755 -d "${pkgdir}/etc"
mv -v "${srcdir}/fakeinstall/etc/OpenCL" "${pkgdir}/etc/"
install -v -m755 -d "${pkgdir}"/etc
mv -v "${srcdir}"/fakeinstall/etc/OpenCL "${pkgdir}"/etc/
install -v -m755 -d "${pkgdir}/usr/lib/gallium-pipe"
mv -v "${srcdir}"/fakeinstall/usr/lib/lib*OpenCL* "${pkgdir}/usr/lib/"
mv -v "${srcdir}"/fakeinstall/usr/lib/gallium-pipe/pipe_{r600,radeonsi}.so "${pkgdir}/usr/lib/gallium-pipe/"
install -v -m755 -d "${pkgdir}"/usr/lib/gallium-pipe
mv -v "${srcdir}"/fakeinstall/usr/lib/lib*OpenCL* "${pkgdir}"/usr/lib/
mv -v "${srcdir}"/fakeinstall/usr/lib/gallium-pipe/pipe_{r600,radeonsi}.so "${pkgdir}"/usr/lib/gallium-pipe/
install -m755 -d "${pkgdir}/usr/share/licenses/opencl-mesa-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/opencl-mesa-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/opencl-mesa-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/opencl-mesa-git/
}
package_mesa-vulkan-intel-git() {
@ -148,14 +155,14 @@ package_mesa-vulkan-intel-git() {
# install -m755 -d ${pkgdir}/etc
# mv -v ${srcdir}/fakeinstall/etc/vulkan ${pkgdir}/etc/
install -m755 -d ${pkgdir}/usr/{include/vulkan,lib,share/{vulkan,licenses}}
install -m755 -d "${pkgdir}"/usr/{include/vulkan,lib,share/{vulkan,licenses}}
mv -v ${srcdir}/fakeinstall/usr/lib/libvulkan_intel.so ${pkgdir}/usr/lib
mv -v ${srcdir}/fakeinstall/usr/include/vulkan/vulkan_intel.h ${pkgdir}/usr/include/vulkan
mv -v ${srcdir}/fakeinstall/usr/share/vulkan/ ${pkgdir}/usr/share/
mv -v "${srcdir}"/fakeinstall/usr/lib/libvulkan_intel.so "${pkgdir}"/usr/lib
mv -v "${srcdir}"/fakeinstall/usr/include/vulkan/vulkan_intel.h "${pkgdir}"/usr/include/vulkan
mv -v "${srcdir}"/fakeinstall/usr/share/vulkan/ "${pkgdir}"/usr/share/
install -m755 -d "${pkgdir}/usr/share/licenses/mesa-vulkan-intel-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-vulkan-intel-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/mesa-vulkan-intel-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/mesa-vulkan-intel-git/
}
package_libva-mesa-driver-git() {
@ -164,11 +171,11 @@ package_libva-mesa-driver-git() {
provides=("libva-mesa-driver=$(_mesaver)")
conflicts=('libva-mesa-driver')
install -m755 -d "${pkgdir}/usr/lib"
mv -v "${srcdir}/fakeinstall/usr/lib/dri" "${pkgdir}/usr/lib/"
install -m755 -d "${pkgdir}"/usr/lib
mv -v "${srcdir}"/fakeinstall/usr/lib/dri "${pkgdir}"/usr/lib/
install -m755 -d "${pkgdir}/usr/share/licenses/libva-mesa-driver-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libva-mesa-driver-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/libva-mesa-driver-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/libva-mesa-driver-git/
}
@ -179,11 +186,11 @@ package_mesa-vdpau-git() {
replaces=('mesa-vdpau')
conflicts=('mesa-vdpau')
install -v -m755 -d "${pkgdir}/usr/lib"
mv -v "${srcdir}/fakeinstall/usr/lib/vdpau" "${pkgdir}/usr/lib/"
install -v -m755 -d "${pkgdir}"/usr/lib
mv -v "${srcdir}"/fakeinstall/usr/lib/vdpau "${pkgdir}"/usr/lib/
install -m755 -d "${pkgdir}/usr/share/licenses/mesa-vdpau-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-vdpau-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/mesa-vdpau-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/mesa-vdpau-git/
}
package_mesa-git () {
@ -197,31 +204,31 @@ package_mesa-git () {
replaces=('mesa' 'mesa-r300-r600-radeonsi-git' 'mesa-dri')
conflicts=('mesa' 'mesa-r300-r600-radeonsi-git' 'mesa-dri')
install -m755 -d "${pkgdir}/etc"
mv -v "${srcdir}/fakeinstall/etc/drirc" "${pkgdir}/etc/"
install -m755 -d "${pkgdir}"/etc
mv -v "${srcdir}"/fakeinstall/etc/drirc "${pkgdir}"/etc/
install -m755 -d "${pkgdir}/usr/lib/xorg/modules/dri"
install -m755 -d "${pkgdir}"/usr/lib/xorg/modules/dri
# ati-dri, nouveau-dri, intel-dri, svga-dri, swrast
mv -v "${srcdir}"/fakeinstall/usr/lib/xorg/modules/dri/* "${pkgdir}/usr/lib/xorg/modules/dri/"
mv -v "${srcdir}"/fakeinstall/usr/lib/xorg/modules/dri/* "${pkgdir}"/usr/lib/xorg/modules/dri/
mv -v "${srcdir}"/fakeinstall/usr/lib/bellagio "${pkgdir}/usr/lib/"
mv -v "${srcdir}"/fakeinstall/usr/lib/d3d "${pkgdir}/usr/lib/"
mv -v "${srcdir}"/fakeinstall/usr/lib/*.so* "${pkgdir}/usr/lib/"
mv -v "${srcdir}"/fakeinstall/usr/lib/bellagio "${pkgdir}"/usr/lib/
mv -v "${srcdir}"/fakeinstall/usr/lib/d3d "${pkgdir}"/usr/lib/
mv -v "${srcdir}"/fakeinstall/usr/lib/*.so* "${pkgdir}"/usr/lib/
mv -v "${srcdir}/fakeinstall/usr/include" "${pkgdir}/usr/"
mv -v "${srcdir}"/fakeinstall/usr/include "${pkgdir}"/usr/
# remove vulkan headers as they are provided by vulkan-headers package
rm -rf ${pkgdir}/usr/include/vulkan
rm -rf "${pkgdir}"/usr/include/vulkan
mv -v "${srcdir}/fakeinstall/usr/lib/pkgconfig" "${pkgdir}/usr/lib/"
mv -v "${srcdir}"/fakeinstall/usr/lib/pkgconfig "${pkgdir}"/usr/lib/
install -m755 -d "${pkgdir}/usr/lib/mesa"
install -m755 -d "${pkgdir}"/usr/lib/mesa
# move libgl/EGL/glesv*.so to not conflict with blobs - may break .pc files ?
mv -v "${pkgdir}"/usr/lib/libGL.so* "${pkgdir}/usr/lib/mesa/"
mv -v "${pkgdir}"/usr/lib/libEGL.so* "${pkgdir}/usr/lib/mesa/"
mv -v "${pkgdir}"/usr/lib/libGLES*.so* "${pkgdir}/usr/lib/mesa/"
mv -v "${pkgdir}"/usr/lib/libGL.so* "${pkgdir}"/usr/lib/mesa/
mv -v "${pkgdir}"/usr/lib/libEGL.so* "${pkgdir}"/usr/lib/mesa/
mv -v "${pkgdir}"/usr/lib/libGLES*.so* "${pkgdir}"/usr/lib/mesa/
install -m755 -d "${pkgdir}/usr/share/licenses/mesa-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/mesa-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/mesa-git/
}
package_mesa-libgl-git () {
@ -232,25 +239,25 @@ package_mesa-libgl-git () {
conflicts=('mesa-libgl')
# See FS#26284
install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
install -m755 -d "${pkgdir}"/usr/lib/xorg/modules/extensions
ln -s libglx.xorg "${pkgdir}"/usr/lib/xorg/modules/extensions/libglx.so
ln -s /usr/lib/mesa/libGL.so.1.2.0 "${pkgdir}/usr/lib/libGL.so.1.2.0"
ln -s libGL.so.1.2.0 "${pkgdir}/usr/lib/libGL.so.1"
ln -s libGL.so.1.2.0 "${pkgdir}/usr/lib/libGL.so"
ln -s /usr/lib/mesa/libGL.so.1.2.0 "${pkgdir}"/usr/lib/libGL.so.1.2.0
ln -s libGL.so.1.2.0 "${pkgdir}"/usr/lib/libGL.so.1
ln -s libGL.so.1.2.0 "${pkgdir}"/usr/lib/libGL.so
ln -s /usr/lib/mesa/libEGL.so.1.0.0 "${pkgdir}/usr/lib/libEGL.so.1.0.0"
ln -s libEGL.so.1.0.0 "${pkgdir}/usr/lib/libEGL.so.1"
ln -s libEGL.so.1.0.0 "${pkgdir}/usr/lib/libEGL.so"
ln -s /usr/lib/mesa/libEGL.so.1.0.0 "${pkgdir}"/usr/lib/libEGL.so.1.0.0
ln -s libEGL.so.1.0.0 "${pkgdir}"/usr/lib/libEGL.so.1
ln -s libEGL.so.1.0.0 "${pkgdir}"/usr/lib/libEGL.so
ln -s /usr/lib/mesa/libGLESv1_CM.so.1.1.0 "${pkgdir}/usr/lib/libGLESv1_CM.so.1.1.0"
ln -s libGLESv1_CM.so.1.1.0 "${pkgdir}/usr/lib/libGLESv1_CM.so.1"
ln -s libGLESv1_CM.so.1.1.0 "${pkgdir}/usr/lib/libGLESv1_CM.so"
ln -s /usr/lib/mesa/libGLESv1_CM.so.1.1.0 "${pkgdir}"/usr/lib/libGLESv1_CM.so.1.1.0
ln -s libGLESv1_CM.so.1.1.0 "${pkgdir}"/usr/lib/libGLESv1_CM.so.1
ln -s libGLESv1_CM.so.1.1.0 "${pkgdir}"/usr/lib/libGLESv1_CM.so
ln -s /usr/lib/mesa/libGLESv2.so.2.0.0 "${pkgdir}/usr/lib/libGLESv2.so.2.0.0"
ln -s libGLESv2.so.2.0.0 "${pkgdir}/usr/lib/libGLESv2.so.2"
ln -s libGLESv2.so.2.0.0 "${pkgdir}/usr/lib/libGLESv2.so"
ln -s /usr/lib/mesa/libGLESv2.so.2.0.0 "${pkgdir}"/usr/lib/libGLESv2.so.2.0.0
ln -s libGLESv2.so.2.0.0 "${pkgdir}"/usr/lib/libGLESv2.so.2
ln -s libGLESv2.so.2.0.0 "${pkgdir}"/usr/lib/libGLESv2.so
install -m755 -d "${pkgdir}/usr/share/licenses/mesa-libgl-git"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-libgl-git/"
install -m755 -d "${pkgdir}"/usr/share/licenses/mesa-libgl-git
install -m644 "${srcdir}"/LICENSE "${pkgdir}"/usr/share/licenses/mesa-libgl-git/
}