summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO10
-rw-r--r--0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch139
-rw-r--r--PKGBUILD19
3 files changed, 158 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d16335abea8a..9c5e536a9542 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = lib32-mesa-git
pkgdesc = an open-source implementation of the OpenGL specification, git version for multilib applications
- pkgver = 12.1.0_devel.83426.d2b4b16
+ pkgver = 12.1.0_devel.83858.5c1ccd8
pkgrel = 1
url = http://mesa3d.sourceforge.net
arch = x86_64
@@ -37,9 +37,11 @@ pkgbase = lib32-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 = lib32-mesa-vdpau-git
pkgdesc = Mesa VDPAU drivers (32-bit)
diff --git a/0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch b/0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch
new file mode 100644
index 000000000000..b0ded6f3c582
--- /dev/null
+++ b/0001-st-mesa-candidate-fix-for-sRGB-blit-errors.patch
@@ -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
+
diff --git a/PKGBUILD b/PKGBUILD
index 6333bbaf8a98..350a74636be4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,7 +13,7 @@
pkgbase=lib32-mesa-git
pkgname=('lib32-mesa-vdpau-git' 'lib32-mesa-vulkan-intel-git' 'lib32-mesa-libgl-git' 'lib32-libva-mesa-driver-git' 'lib32-mesa-git')
pkgdesc="an open-source implementation of the OpenGL specification, git version for multilib applications"
-pkgver=12.1.0_devel.83426.d2b4b16
+pkgver=12.1.0_devel.83858.5c1ccd8
pkgrel=1
arch=('x86_64')
makedepends=('python2' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'glproto' 'lib32-libdrm>=2.4.66' 'dri2proto' 'dri3proto' 'presentproto'
@@ -25,14 +25,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
+
+ # 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() {