Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0cbff147e5 | ||
|
2aab46f3c9 | ||
|
570b7c6d25 | ||
|
0f9a254fdc | ||
|
8f827b4173 | ||
|
5b14ca7e18 | ||
|
96823333b1 | ||
|
341fd4a78c | ||
|
bfa3a88ca1 | ||
|
41c41c0e31 | ||
|
bc226ca838 | ||
|
6be7c45d15 | ||
|
6d3385fa54 |
44
.gitignore
vendored
44
.gitignore
vendored
@ -1,8 +1,38 @@
|
||||
*.jx
|
||||
*.src.rpm
|
||||
.build*
|
||||
/mesa-*.tar.bz2
|
||||
/mesa-*.tar.xz
|
||||
x86_64/
|
||||
results_mesa/
|
||||
mesa-*/
|
||||
mesa-20100208.tar.bz2
|
||||
gl-manpages-1.0.1.tar.bz2
|
||||
xdriinfo-1.0.3.tar.bz2
|
||||
mesa-demos-20100529.tar.bz2
|
||||
mesa-20100529.tar.bz2
|
||||
mesa-20100612.tar.bz2
|
||||
mesa-20100709.tar.bz2
|
||||
mesa-20100720.tar.bz2
|
||||
/mesa-20100824.tar.bz2
|
||||
/mesa-20101020.tar.bz2
|
||||
/mesa-20101108.tar.bz2
|
||||
/mesa-20101118.tar.bz2
|
||||
/mesa-20101129.tar.bz2
|
||||
/mesa-20101214.tar.xz
|
||||
/mesa-20101216.tar.xz
|
||||
/mesa-20110107.tar.xz
|
||||
/mesa-20110315.tar.xz
|
||||
/mesa-20110327.tar.xz
|
||||
/MesaLib-7.10.1.tar.bz2
|
||||
/mesa-20110327.tar.xz
|
||||
/mesa-20110330.tar.xz
|
||||
/mesa-20110401.tar.xz
|
||||
/mesa-20110412.tar.xz
|
||||
/mesa-20110620.tar.xz
|
||||
/mesa-20110730.tar.xz
|
||||
/MesaLib-7.11.tar.bz2
|
||||
/mesa-20111103.tar.xz
|
||||
/mesa-20111114.tar.xz
|
||||
/mesa-20111129.tar.xz
|
||||
/mesa-20111214.tar.xz
|
||||
/mesa-20120105.tar.xz
|
||||
/mesa-20120126.tar.xz
|
||||
/MesaLib-8.0.tar.bz2
|
||||
/MesaLib-8.0.1.tar.bz2
|
||||
/MesaLib-8.0.2.tar.bz2
|
||||
/MesaLib-8.0.3.tar.bz2
|
||||
/MesaLib-8.0.4.tar.bz2
|
||||
|
@ -1,37 +0,0 @@
|
||||
From c9987fca1fa611e48f85644493edd8d5a30cf403 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 13 Dec 2019 17:42:17 +0000
|
||||
Subject: [PATCH] Link with libclang-cpp
|
||||
|
||||
---
|
||||
src/gallium/targets/opencl/meson.build | 14 +-------------
|
||||
1 file changed, 1 insertion(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build
|
||||
index 907cc74337d..031d35b9716 100644
|
||||
--- a/src/gallium/targets/opencl/meson.build
|
||||
+++ b/src/gallium/targets/opencl/meson.build
|
||||
@@ -43,19 +43,7 @@ libopencl = shared_library(
|
||||
dependencies : [
|
||||
idep_mesautil,
|
||||
dep_clock, dep_dl, dep_unwind, dep_elf,
|
||||
- cpp.find_library('clangCodeGen', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangFrontendTool', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangFrontend', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangDriver', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangSerialization', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangParse', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangSema', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangAnalysis', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangAST', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangASTMatchers', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangEdit', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangLex', dirs : llvm_libdir),
|
||||
- cpp.find_library('clangBasic', dirs : llvm_libdir),
|
||||
+ cpp.find_library('clang-cpp', dirs : llvm_libdir),
|
||||
],
|
||||
version : '@0@.0.0'.format(opencl_version),
|
||||
install : true,
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 0ec3bdb2264b491fd3f5dc4e638b4c12611ef219 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||
Date: Sun, 20 Mar 2016 13:27:45 +0100
|
||||
Subject: [PATCH 3/4] evergreen big endian
|
||||
|
||||
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||
---
|
||||
src/gallium/drivers/r600/r600_state_common.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
|
||||
index cac240e..4b620a1 100644
|
||||
--- a/src/gallium/drivers/r600/r600_state_common.c
|
||||
+++ b/src/gallium/drivers/r600/r600_state_common.c
|
||||
@@ -2716,7 +2716,7 @@ uint32_t r600_translate_colorformat(enum chip_class chip, enum pipe_format forma
|
||||
|
||||
uint32_t r600_colorformat_endian_swap(uint32_t colorformat, bool do_endian_swap)
|
||||
{
|
||||
- if (R600_BIG_ENDIAN) {
|
||||
+ if (0 && R600_BIG_ENDIAN) {
|
||||
switch(colorformat) {
|
||||
/* 8-bit buffers. */
|
||||
case V_0280A0_COLOR_4_4:
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,117 +0,0 @@
|
||||
|
||||
Subject: RE: Question about Mesa MLAA license
|
||||
From: Jorge Jimenez <iryoku@gmail.com>
|
||||
Date: 01/08/2013 12:50 PM
|
||||
To: Tom Callaway <tcallawa@redhat.com>
|
||||
CC: "jorge@iryoku.com" <jorge@iryoku.com>
|
||||
|
||||
Yes to both questions.
|
||||
|
||||
Thanks,
|
||||
Jorge
|
||||
|
||||
From: Tom Callaway <tcallawa@redhat.com>
|
||||
Sent: January 8, 2013 6:49 PM
|
||||
To: Jorge Jimenez <iryoku@gmail.com>
|
||||
CC: jorge@iryoku.com
|
||||
Subject: Re: Question about Mesa MLAA license
|
||||
|
||||
On 01/08/2013 12:39 PM, Jorge Jimenez wrote:
|
||||
> Hi Tom,
|
||||
>
|
||||
> What we meant with that is that we made an exception for clause 2.
|
||||
> Instead of clause 2, in the case of the Mesa project, you have to name
|
||||
> the technique Jimenez's MLAA in the config options of Mesa. We did that
|
||||
> just to allow them to solve license issues. This exception should be for
|
||||
> the Mesa project, and any project using Mesa, like Fedora.
|
||||
>
|
||||
> We want to widespread usage of our MLAA, so we want to avoid any kind of
|
||||
> license complications. Hope current one is good for Fedora, if not
|
||||
> please tell, and we'll see what we can do!
|
||||
|
||||
Okay, a few more questions:
|
||||
|
||||
* If Fedora decides to simply reproduce the quoted statement:
|
||||
"Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
|
||||
Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
|
||||
|
||||
Specifically, if this is done as part of documentation included with
|
||||
Mesa, is that sufficient to meet clause 2 even if the Mesa config option
|
||||
is not set as described in your exception?
|
||||
|
||||
* Currently, the Mesa config option for MLAA says: "Morphological
|
||||
anti-aliasing based on Jimenez\' MLAA. 0 to disable, 8 for default
|
||||
quality". Is this in compliance with your exception?
|
||||
|
||||
Thanks again,
|
||||
|
||||
~tom
|
||||
|
||||
==
|
||||
Fedora Project
|
||||
|
||||
Subject: RE: Question about Mesa MLAA license
|
||||
From: Jorge Jimenez <iryoku@gmail.com>
|
||||
Date: 01/08/2013 12:39 PM
|
||||
To: "jorge@iryoku.com" <jorge@iryoku.com>, Tom Callaway <tcallawa@redhat.com>
|
||||
|
||||
Hi Tom,
|
||||
|
||||
What we meant with that is that we made an exception for clause 2.
|
||||
Instead of clause 2, in the case of the Mesa project, you have to name
|
||||
the technique Jimenez's MLAA in the config options of Mesa. We did that
|
||||
just to allow them to solve license issues. This exception should be for
|
||||
the Mesa project, and any project using Mesa, like Fedora.
|
||||
|
||||
We want to widespread usage of our MLAA, so we want to avoid any kind of
|
||||
license complications. Hope current one is good for Fedora, if not
|
||||
please tell, and we'll see what we can do!
|
||||
|
||||
Cheers,
|
||||
Jorge
|
||||
|
||||
From: Tom Callaway <tcallawa@redhat.com>
|
||||
Sent: January 8, 2013 6:30 PM
|
||||
To: jorge@iryoku.com
|
||||
Subject: Question about Mesa MLAA license
|
||||
|
||||
Jorge,
|
||||
|
||||
Thanks for all of your fantastic graphics work! I have been auditing
|
||||
Fedora (a popular distribution of Linux) for license compliance and I
|
||||
came across your MLAA code in Mesa.
|
||||
|
||||
The license says:
|
||||
|
||||
* 2. Redistributions in binary form must reproduce the following
|
||||
statement:
|
||||
*
|
||||
* "Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
|
||||
* Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
|
||||
*
|
||||
* Only for use in the Mesa project, this point 2 is filled by naming the
|
||||
* technique Jimenez's MLAA in the Mesa config options.
|
||||
|
||||
That wording is unclear. When you say "Only for use in the Mesa
|
||||
project...", it seems like you could either be saying:
|
||||
|
||||
- This code may only be used as part of Mesa.
|
||||
|
||||
OR
|
||||
|
||||
- In Mesa, you can comply with clause 2 by simply selecting "Jimenez's
|
||||
MLAA" in the Mesa config options.
|
||||
|
||||
*****
|
||||
|
||||
If the first item is true, then we may have to remove the MLAA code from
|
||||
Fedora's copy of Mesa. However, looking at the license on your SMAA
|
||||
code, I do not believe it to be the case. Please let me know either way!
|
||||
|
||||
Thanks in advance,
|
||||
|
||||
Tom Callaway
|
||||
Fedora Legal
|
||||
|
||||
==
|
||||
Fedora Project
|
22
make-git-snapshot.sh
Executable file
22
make-git-snapshot.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Usage: ./make-git-snapshot.sh [COMMIT]
|
||||
#
|
||||
# to make a snapshot of the given tag/branch. Defaults to HEAD.
|
||||
# Point env var REF to a local mesa repo to reduce clone time.
|
||||
|
||||
DIRNAME=mesa-$( date +%Y%m%d )
|
||||
|
||||
echo REF ${REF:+--reference $REF}
|
||||
echo DIRNAME $DIRNAME
|
||||
echo HEAD ${1:-HEAD}
|
||||
|
||||
rm -rf $DIRNAME
|
||||
|
||||
git clone ${REF:+--reference $REF} \
|
||||
git://git.freedesktop.org/git/mesa/mesa $DIRNAME
|
||||
|
||||
GIT_DIR=$DIRNAME/.git git archive --format=tar --prefix=$DIRNAME/ ${1:-HEAD} \
|
||||
| xz > $DIRNAME.tar.xz
|
||||
|
||||
# rm -rf $DIRNAME
|
12
mesa-7.10-llvmcore.patch
Normal file
12
mesa-7.10-llvmcore.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up mesa-20120105/configure.ac.jx mesa-20120105/configure.ac
|
||||
--- mesa-20120105/configure.ac.jx 2012-01-05 14:03:26.000000000 -0500
|
||||
+++ mesa-20120105/configure.ac 2012-01-05 14:35:14.559990582 -0500
|
||||
@@ -1775,7 +1775,7 @@ if test "x$enable_gallium_llvm" = xyes;
|
||||
if test "x$LLVM_CONFIG" != xno; then
|
||||
LLVM_VERSION=`$LLVM_CONFIG --version`
|
||||
LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
|
||||
- LLVM_LIBS="`$LLVM_CONFIG --libs`"
|
||||
+ LLVM_LIBS="-lLLVM-`llvm-config --version` -lstdc++"
|
||||
|
||||
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
|
||||
DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
|
23
mesa-7.10-swrastg.patch
Normal file
23
mesa-7.10-swrastg.patch
Normal file
@ -0,0 +1,23 @@
|
||||
diff -up mesa-20101020/src/gallium/drivers/llvmpipe/Makefile.jx mesa-20101020/src/gallium/drivers/llvmpipe/Makefile
|
||||
diff -up mesa-20101020/src/gallium/targets/dri-swrast/Makefile.jx mesa-20101020/src/gallium/targets/dri-swrast/Makefile
|
||||
--- mesa-20101020/src/gallium/targets/dri-swrast/Makefile.jx 2010-10-20 15:54:57.000000000 -0400
|
||||
+++ mesa-20101020/src/gallium/targets/dri-swrast/Makefile 2010-11-08 14:39:47.000000000 -0500
|
||||
@@ -26,6 +26,8 @@ C_SOURCES = \
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
+LDFLAGS += -Wl,--version-script,../version-script
|
||||
+
|
||||
include ../Makefile.dri
|
||||
|
||||
INCLUDES += \
|
||||
diff -up mesa-20101020/src/gallium/targets/version-script.jx mesa-20101020/src/gallium/targets/version-script
|
||||
--- mesa-20101020/src/gallium/targets/version-script.jx 2010-11-08 14:39:56.000000000 -0500
|
||||
+++ mesa-20101020/src/gallium/targets/version-script 2010-11-08 14:40:36.000000000 -0500
|
||||
@@ -0,0 +1,6 @@
|
||||
+GALLIUM {
|
||||
+ global:
|
||||
+ __dri*;
|
||||
+ local:
|
||||
+ *;
|
||||
+};
|
156
mesa-8.0-llvmpipe-shmget.patch
Normal file
156
mesa-8.0-llvmpipe-shmget.patch
Normal file
@ -0,0 +1,156 @@
|
||||
diff -up mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c
|
||||
--- mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx 2012-04-24 07:37:03.000000000 -0400
|
||||
+++ mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c 2012-05-16 13:30:36.596312047 -0400
|
||||
@@ -252,8 +252,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
||||
struct pipe_transfer *transfer;
|
||||
char *map;
|
||||
int x, y, w, h;
|
||||
- int ximage_stride, line;
|
||||
- int cpp = util_format_get_blocksize(res->format);
|
||||
|
||||
get_drawable_info(dPriv, &x, &y, &w, &h);
|
||||
|
||||
@@ -266,14 +264,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
||||
/* Copy the Drawable content to the mapped texture buffer */
|
||||
get_image(dPriv, x, y, w, h, map);
|
||||
|
||||
- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */
|
||||
- ximage_stride = w * cpp;
|
||||
- for (line = h-1; line; --line) {
|
||||
- memmove(&map[line * transfer->stride],
|
||||
- &map[line * ximage_stride],
|
||||
- ximage_stride);
|
||||
- }
|
||||
-
|
||||
pipe_transfer_unmap(pipe, transfer);
|
||||
pipe_transfer_destroy(pipe, transfer);
|
||||
}
|
||||
diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c
|
||||
--- mesa-20120424/src/glx/drisw_glx.c.jx 2012-04-24 07:37:03.000000000 -0400
|
||||
+++ mesa-20120424/src/glx/drisw_glx.c 2012-05-16 13:29:25.087965268 -0400
|
||||
@@ -24,6 +24,9 @@
|
||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
+#include <sys/ipc.h>
|
||||
+#include <sys/shm.h>
|
||||
+#include <X11/extensions/XShm.h>
|
||||
#include "glxclient.h"
|
||||
#include <dlfcn.h>
|
||||
#include "dri_common.h"
|
||||
@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int
|
||||
ximage->data = NULL;
|
||||
}
|
||||
|
||||
+static int shm_error;
|
||||
+
|
||||
+static int
|
||||
+shm_handler(Display *d, XErrorEvent *e)
|
||||
+{
|
||||
+ shm_error = 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+align(int value, int alignment)
|
||||
+{
|
||||
+ return (value + alignment - 1) & ~(alignment - 1);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Slight fast path. Short of changing how texture memory is allocated, we
|
||||
+ * have two options for getting the pixels out. GetImage is clamped by the
|
||||
+ * server's write buffer size, so you end up doing lots of relatively small
|
||||
+ * requests (128k each or so), with two memcpys: down into the kernel, and
|
||||
+ * then back up. ShmGetImage is one big blit into the shm segment (which
|
||||
+ * could be GPU DMA, in principle) and then another one here.
|
||||
+ */
|
||||
+static Bool
|
||||
+swrastShmGetImage(__DRIdrawable *read, char *data, struct drisw_drawable *prp)
|
||||
+{
|
||||
+ __GLXDRIdrawable *pread = &(prp->base);
|
||||
+ Display *dpy = pread->psc->dpy;
|
||||
+ XImage *ximage = prp->ximage;
|
||||
+ unsigned long image_size = ximage->height * ximage->bytes_per_line;
|
||||
+ Bool ret = 0;
|
||||
+ XShmSegmentInfo seg = { 0, -1, (void *)-1, 0 };
|
||||
+ int (*old_handler)(Display *, XErrorEvent *);
|
||||
+
|
||||
+ if (!XShmQueryExtension(dpy))
|
||||
+ goto out;
|
||||
+
|
||||
+ /* image setup */
|
||||
+ seg.shmid = shmget(IPC_PRIVATE, image_size, IPC_CREAT | 0777);
|
||||
+ if (seg.shmid < 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ seg.shmaddr = shmat(seg.shmid, NULL, 0);
|
||||
+ if (seg.shmaddr == (void *)-1)
|
||||
+ goto out;
|
||||
+
|
||||
+ XSync(dpy, 0);
|
||||
+ old_handler = XSetErrorHandler(shm_handler);
|
||||
+ XShmAttach(dpy, &seg);
|
||||
+ XSync(dpy, 0);
|
||||
+ XSetErrorHandler(old_handler);
|
||||
+ if (shm_error)
|
||||
+ goto out;
|
||||
+
|
||||
+ ximage->data = seg.shmaddr;
|
||||
+ ximage->obdata = &seg;
|
||||
+ if (!XShmGetImage(dpy, pread->xDrawable, ximage, 0, 0, -1))
|
||||
+ goto out;
|
||||
+
|
||||
+ /*
|
||||
+ * ShmGetImage doesn't actually pay attention to ->bytes_per_line.
|
||||
+ * We have to compensate for this somewhere since llvmpipe's natural
|
||||
+ * tile width is 64. Do it here so we don't have to undo it with a
|
||||
+ * bunch of memmove in the driver.
|
||||
+ */
|
||||
+ do {
|
||||
+ int i;
|
||||
+ char *src = ximage->data;
|
||||
+ int dst_width = align(ximage->width * ximage->bits_per_pixel / 8, 256);
|
||||
+
|
||||
+ for (i = 0; i < ximage->height; i++) {
|
||||
+ memcpy(data, src, ximage->bytes_per_line);
|
||||
+ data += dst_width;
|
||||
+ src += ximage->bytes_per_line;
|
||||
+ }
|
||||
+ } while (0);
|
||||
+ ret = 1;
|
||||
+
|
||||
+out:
|
||||
+ ximage->obdata = NULL;
|
||||
+ ximage->data = NULL;
|
||||
+ shm_error = 0;
|
||||
+ XShmDetach(dpy, &seg);
|
||||
+ if (seg.shmaddr != (void *)-1)
|
||||
+ shmdt(seg.shmaddr);
|
||||
+ if (seg.shmid > -1)
|
||||
+ shmctl(seg.shmid, IPC_RMID, NULL);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
swrastGetImage(__DRIdrawable * read,
|
||||
int x, int y, int w, int h,
|
||||
@@ -220,11 +313,17 @@ swrastGetImage(__DRIdrawable * read,
|
||||
readable = pread->xDrawable;
|
||||
|
||||
ximage = prp->ximage;
|
||||
- ximage->data = data;
|
||||
ximage->width = w;
|
||||
ximage->height = h;
|
||||
ximage->bytes_per_line = bytes_per_line(w * ximage->bits_per_pixel, 32);
|
||||
|
||||
+ /* XXX check dimensions, if any caller ever sub-images */
|
||||
+ if (swrastShmGetImage(read, data, prp))
|
||||
+ return;
|
||||
+
|
||||
+ /* shm failed, fall back to protocol */
|
||||
+ ximage->data = data;
|
||||
+
|
||||
XGetSubImage(dpy, readable, x, y, w, h, ~0L, ZPixmap, ximage, 0, 0);
|
||||
|
||||
ximage->data = NULL;
|
75
mesa-8.0-nouveau-vieux-finish.patch
Normal file
75
mesa-8.0-nouveau-vieux-finish.patch
Normal file
@ -0,0 +1,75 @@
|
||||
From 4b4f636fadd997b82be7b0f4fe9acd1090d3ad20 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Fri, 11 May 2012 03:02:13 +1000
|
||||
Subject: [PATCH] nouveau/vieux: finish != flush, how about we do that..
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
src/mesa/drivers/dri/nouveau/nouveau_context.c | 7 +++++++
|
||||
src/mesa/drivers/dri/nouveau/nouveau_context.h | 2 ++
|
||||
src/mesa/drivers/dri/nouveau/nouveau_driver.c | 10 ++++++++++
|
||||
3 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
index 9051e18..db5d9ea 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
@@ -91,6 +91,12 @@ nouveau_context_create(gl_api api,
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
+ if (nouveau_bo_new(context_dev(ctx), NOUVEAU_BO_VRAM, 0, 4096, &nctx->fence)) {
|
||||
+ nouveau_context_destroy(dri_ctx);
|
||||
+ *error = __DRI_CTX_ERROR_NO_MEMORY;
|
||||
+ return GL_FALSE;
|
||||
+ }
|
||||
+
|
||||
*error = __DRI_CTX_ERROR_SUCCESS;
|
||||
return GL_TRUE;
|
||||
}
|
||||
@@ -189,6 +195,7 @@ nouveau_context_destroy(__DRIcontext *dri_ctx)
|
||||
struct nouveau_context *nctx = dri_ctx->driverPrivate;
|
||||
struct gl_context *ctx = &nctx->base;
|
||||
|
||||
+ nouveau_bo_ref(NULL, &nctx->fence);
|
||||
context_drv(ctx)->context_destroy(ctx);
|
||||
}
|
||||
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.h b/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
index 7777246..9d06da9 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
@@ -65,6 +65,8 @@ struct nouveau_context {
|
||||
BITSET_DECLARE(dirty, MAX_NOUVEAU_STATE);
|
||||
enum nouveau_fallback fallback;
|
||||
|
||||
+ struct nouveau_bo *fence;
|
||||
+
|
||||
struct nouveau_hw_state hw;
|
||||
struct nouveau_bo_state bo;
|
||||
struct nouveau_render_state render;
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.c b/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
index 8532032..6031314 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
@@ -74,7 +74,17 @@ nouveau_flush(struct gl_context *ctx)
|
||||
static void
|
||||
nouveau_finish(struct gl_context *ctx)
|
||||
{
|
||||
+ struct nouveau_context *nctx = to_nouveau_context(ctx);
|
||||
+ struct nouveau_channel *chan = context_chan(ctx);
|
||||
+
|
||||
nouveau_flush(ctx);
|
||||
+
|
||||
+ MARK_RING(chan, 1, 1);
|
||||
+ OUT_RELOC(chan, nctx->fence, 0, NOUVEAU_BO_WR | NOUVEAU_BO_DUMMY, 0, 0);
|
||||
+ FIRE_RING(chan);
|
||||
+
|
||||
+ nouveau_bo_map(nctx->fence, NOUVEAU_BO_RDWR);
|
||||
+ nouveau_bo_unmap(nctx->fence);
|
||||
}
|
||||
|
||||
void
|
||||
--
|
||||
1.7.10
|
||||
|
296
mesa-8.0-nouveau-vieux-nvfx-lowmem.patch
Normal file
296
mesa-8.0-nouveau-vieux-nvfx-lowmem.patch
Normal file
@ -0,0 +1,296 @@
|
||||
From 1313008370f2e179dea102ba1520cf72d9012765 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Fri, 11 May 2012 01:31:36 +1000
|
||||
Subject: [PATCH] vieux/nvfx lowmem hacks
|
||||
|
||||
---
|
||||
src/gallium/drivers/nvfx/nvfx_fragprog.c | 23 ++++++++++----------
|
||||
src/gallium/drivers/nvfx/nvfx_screen.c | 4 ++++
|
||||
src/gallium/drivers/nvfx/nvfx_screen.h | 2 ++
|
||||
src/gallium/drivers/nvfx/nvfx_surface.c | 9 +++++++-
|
||||
src/gallium/drivers/nvfx/nvfx_vbo.c | 5 +++++
|
||||
src/gallium/drivers/nvfx/nvfx_vertprog.c | 4 +++-
|
||||
src/mesa/drivers/dri/nouveau/nouveau_context.c | 5 +++++
|
||||
src/mesa/drivers/dri/nouveau/nouveau_context.h | 4 ++++
|
||||
src/mesa/drivers/dri/nouveau/nouveau_driver.c | 3 +++
|
||||
src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c | 3 +++
|
||||
src/mesa/drivers/dri/nouveau/nv04_surface.c | 27 +++++++++++++++++++++---
|
||||
11 Dateien geändert, 72 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_fragprog.c b/src/gallium/drivers/nvfx/nvfx_fragprog.c
|
||||
index 0babcbb..f5b7a0e 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_fragprog.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_fragprog.c
|
||||
@@ -224,7 +224,6 @@ nvfx_fp_emit(struct nvfx_fpc *fpc, struct nvfx_insn insn)
|
||||
if(insn.unit >= 0)
|
||||
{
|
||||
hw[0] |= (insn.unit << NVFX_FP_OP_TEX_UNIT_SHIFT);
|
||||
- fp->samplers |= (1 << insn.unit);
|
||||
}
|
||||
|
||||
emit_dst(fpc, insn.dst);
|
||||
@@ -1355,17 +1354,17 @@ update_slots:
|
||||
|
||||
fp->slot_to_fp_input[fp->num_slots] = sprite_real_input;
|
||||
|
||||
- if(nvfx->is_nv4x)
|
||||
- {
|
||||
- fp->or = 0;
|
||||
- for(i = 0; i <= fp->num_slots; ++i) {
|
||||
- unsigned fp_input = fp->slot_to_fp_input[i];
|
||||
- if(fp_input == NVFX_FP_OP_INPUT_SRC_TC(8))
|
||||
- fp->or |= (1 << 12);
|
||||
- else if(fp_input == NVFX_FP_OP_INPUT_SRC_TC(9))
|
||||
- fp->or |= (1 << 13);
|
||||
- else if(fp_input >= NVFX_FP_OP_INPUT_SRC_TC(0) && fp_input <= NVFX_FP_OP_INPUT_SRC_TC(7))
|
||||
- fp->or |= (1 << (fp_input - NVFX_FP_OP_INPUT_SRC_TC0 + 14));
|
||||
+ fp->or = 0;
|
||||
+ fp->samplers = 0;
|
||||
+ for(i = 0; i <= fp->num_slots; ++i) {
|
||||
+ unsigned fp_input = fp->slot_to_fp_input[i];
|
||||
+ if(fp_input == NVFX_FP_OP_INPUT_SRC_TC(8))
|
||||
+ fp->or |= (1 << 12);
|
||||
+ else if(fp_input == NVFX_FP_OP_INPUT_SRC_TC(9))
|
||||
+ fp->or |= (1 << 13);
|
||||
+ else if(fp_input >= NVFX_FP_OP_INPUT_SRC_TC(0) && fp_input <= NVFX_FP_OP_INPUT_SRC_TC(7)) {
|
||||
+ fp->or |= (1 << (fp_input - NVFX_FP_OP_INPUT_SRC_TC0 + 14));
|
||||
+ fp->samplers |= 1 << (fp_input - NVFX_FP_OP_INPUT_SRC_TC(0));
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_screen.c b/src/gallium/drivers/nvfx/nvfx_screen.c
|
||||
index b4a1b3a..e6dc596 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_screen.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_screen.c
|
||||
@@ -533,6 +533,10 @@ nvfx_screen_create(struct nouveau_device *dev)
|
||||
screen->advertise_blend_equation_separate = !!screen->is_nv4x;
|
||||
screen->use_nv4x = screen->is_nv4x;
|
||||
|
||||
+ screen->hack = TRUE;
|
||||
+ if (debug_get_bool_option("NVFX_UNHACK", FALSE))
|
||||
+ screen->hack = FALSE;
|
||||
+
|
||||
if(screen->is_nv4x) {
|
||||
if(debug_get_bool_option("NVFX_SIMULATE_NV30", FALSE))
|
||||
screen->use_nv4x = 0;
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_screen.h b/src/gallium/drivers/nvfx/nvfx_screen.h
|
||||
index 35c9d91..55ed439 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_screen.h
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_screen.h
|
||||
@@ -14,6 +14,8 @@ struct nvfx_screen {
|
||||
|
||||
struct nvfx_context *cur_ctx;
|
||||
|
||||
+ boolean hack;
|
||||
+
|
||||
unsigned is_nv4x; /* either 0 or ~0 */
|
||||
unsigned use_nv4x; /* either 0 or ~0 */
|
||||
boolean force_swtnl;
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_surface.c b/src/gallium/drivers/nvfx/nvfx_surface.c
|
||||
index cac3fca..3937869 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_surface.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_surface.c
|
||||
@@ -273,8 +273,12 @@ nvfx_resource_copy_region(struct pipe_context *pipe,
|
||||
small = (w * h <= copy_threshold);
|
||||
if((!dst_to_gpu || !src_on_gpu) && small)
|
||||
ret = -1; /* use the CPU */
|
||||
- else
|
||||
+ else {
|
||||
ret = nv04_region_copy_2d(ctx, &dst, &src, w, h, dst_to_gpu, src_on_gpu);
|
||||
+ if (nvfx_screen(pipe->screen)->hack)
|
||||
+ FIRE_RING(nvfx_screen(pipe->screen)->base.channel);
|
||||
+ }
|
||||
+
|
||||
if(!ret)
|
||||
{}
|
||||
else if(ret > 0
|
||||
@@ -335,6 +339,9 @@ nvfx_surface_fill(struct pipe_context* pipe, struct pipe_surface *dsts,
|
||||
h = util_format_get_nblocksy(dsts->format, h);
|
||||
|
||||
ret = nv04_region_fill_2d(ctx, &dst, w, h, value);
|
||||
+ if (nvfx_screen(pipe->screen)->hack)
|
||||
+ FIRE_RING(nvfx_screen(pipe->screen)->base.channel);
|
||||
+
|
||||
if(ret > 0 && dsts->texture->bind & PIPE_BIND_RENDER_TARGET)
|
||||
return 1;
|
||||
else if(ret)
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
index b72379d..5860b54 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
@@ -237,6 +237,11 @@ void nvfx_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (nvfx->screen->hack) {
|
||||
+ struct nouveau_channel *chan = nvfx->screen->base.channel;
|
||||
+ FIRE_RING(chan);
|
||||
+ }
|
||||
+
|
||||
if (nvfx->screen->force_swtnl || !nvfx_state_validate(nvfx))
|
||||
nvfx_draw_vbo_swtnl(pipe, info);
|
||||
else
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_vertprog.c b/src/gallium/drivers/nvfx/nvfx_vertprog.c
|
||||
index a11941f..e19a288 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_vertprog.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_vertprog.c
|
||||
@@ -288,6 +288,8 @@ nvfx_vp_emit(struct nvfx_vpc *vpc, struct nvfx_insn insn)
|
||||
|
||||
hw = vpc->vpi->data;
|
||||
|
||||
+ if (insn.cc_test != NVFX_COND_TR)
|
||||
+ hw[0] |= NVFX_VP(INST_COND_TEST_ENABLE);
|
||||
hw[0] |= (insn.cc_test << NVFX_VP(INST_COND_SHIFT));
|
||||
hw[0] |= ((insn.cc_swz[0] << NVFX_VP(INST_COND_SWZ_X_SHIFT)) |
|
||||
(insn.cc_swz[1] << NVFX_VP(INST_COND_SWZ_Y_SHIFT)) |
|
||||
@@ -649,7 +651,7 @@ nvfx_vertprog_parse_instruction(struct nvfx_context* nvfx, struct nvfx_vpc *vpc,
|
||||
nvfx_vp_emit(vpc, arith(sat, VEC, SNE, dst, mask, src[0], src[1], none));
|
||||
break;
|
||||
case TGSI_OPCODE_SSG:
|
||||
- nvfx_vp_emit(vpc, arith(sat, VEC, SSG, dst, mask, src[0], src[1], none));
|
||||
+ nvfx_vp_emit(vpc, arith(sat, VEC, SSG, dst, mask, src[0], none, none));
|
||||
break;
|
||||
case TGSI_OPCODE_STR:
|
||||
nvfx_vp_emit(vpc, arith(sat, VEC, STR, dst, mask, src[0], src[1], none));
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
index 5838b4e..db5d9ea 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
|
||||
@@ -112,6 +112,11 @@ nouveau_context_init(struct gl_context *ctx, struct nouveau_screen *screen,
|
||||
nctx->screen = screen;
|
||||
nctx->fallback = HWTNL;
|
||||
|
||||
+ if (getenv("NOUVEAU_UNHACK"))
|
||||
+ nctx->hack = GL_FALSE;
|
||||
+ else
|
||||
+ nctx->hack = GL_TRUE;
|
||||
+
|
||||
/* Initialize the function pointers. */
|
||||
_mesa_init_driver_functions(&functions);
|
||||
nouveau_driver_functions_init(&functions);
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.h b/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
index d44c02a..9d06da9 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.h
|
||||
@@ -76,6 +76,8 @@ struct nouveau_context {
|
||||
GLboolean clear_blocked;
|
||||
int clear_seq;
|
||||
} hierz;
|
||||
+
|
||||
+ GLboolean hack;
|
||||
};
|
||||
|
||||
#define to_nouveau_context(ctx) ((struct nouveau_context *)(ctx))
|
||||
@@ -90,6 +92,8 @@ struct nouveau_context {
|
||||
(to_nouveau_context(ctx)->hw.eng3d)
|
||||
#define context_drv(ctx) \
|
||||
(to_nouveau_context(ctx)->screen->driver)
|
||||
+#define context_hack(ctx) \
|
||||
+ (to_nouveau_context(ctx)->hack)
|
||||
#define context_dirty(ctx, s) \
|
||||
BITSET_SET(to_nouveau_context(ctx)->dirty, NOUVEAU_STATE_##s)
|
||||
#define context_dirty_i(ctx, s, i) \
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.c b/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
index dab6807..6031314 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.c
|
||||
@@ -138,6 +138,9 @@ nouveau_clear(struct gl_context *ctx, GLbitfield buffers)
|
||||
|
||||
if (buffers)
|
||||
_mesa_meta_Clear(ctx, buffers);
|
||||
+
|
||||
+ if (context_hack(ctx))
|
||||
+ FIRE_RING(context_chan(ctx));
|
||||
}
|
||||
|
||||
void
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
|
||||
index de04d18..2337a73 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
|
||||
@@ -456,6 +456,9 @@ TAG(vbo_render_prims)(struct gl_context *ctx,
|
||||
max_index);
|
||||
|
||||
vbo_deinit_arrays(ctx, ib, arrays);
|
||||
+
|
||||
+ if (context_hack(ctx))
|
||||
+ FIRE_RING(context_chan(ctx));
|
||||
}
|
||||
|
||||
/* VBO rendering entry points. */
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nv04_surface.c b/src/mesa/drivers/dri/nouveau/nv04_surface.c
|
||||
index 4a3000c..2383711 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nv04_surface.c
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nv04_surface.c
|
||||
@@ -209,6 +209,13 @@ nv04_surface_copy_swizzle(struct gl_context *ctx,
|
||||
unsigned sub_h = h > max_h ? max_h : h;
|
||||
unsigned x, y;
|
||||
|
||||
+ if (context_hack(ctx)) {
|
||||
+ void *flush_notify = chan->flush_notify;
|
||||
+ chan->flush_notify = NULL;
|
||||
+ FIRE_RING(chan);
|
||||
+ chan->flush_notify = flush_notify;
|
||||
+ }
|
||||
+
|
||||
/* Swizzled surfaces must be POT */
|
||||
assert(_mesa_is_pow_two(dst->width) &&
|
||||
_mesa_is_pow_two(dst->height));
|
||||
@@ -263,7 +270,7 @@ nv04_surface_copy_swizzle(struct gl_context *ctx,
|
||||
|
||||
nouveau_bo_context_reset(bctx);
|
||||
|
||||
- if (context_chipset(ctx) < 0x10)
|
||||
+ if (context_hack(ctx) || context_chipset(ctx) < 0x10)
|
||||
FIRE_RING(chan);
|
||||
}
|
||||
|
||||
@@ -282,6 +289,13 @@ nv04_surface_copy_m2mf(struct gl_context *ctx,
|
||||
unsigned dst_offset = dst->offset + dy * dst->pitch + dx * dst->cpp;
|
||||
unsigned src_offset = src->offset + sy * src->pitch + sx * src->cpp;
|
||||
|
||||
+ if (context_hack(ctx)) {
|
||||
+ void *flush_notify = chan->flush_notify;
|
||||
+ chan->flush_notify = NULL;
|
||||
+ FIRE_RING(chan);
|
||||
+ chan->flush_notify = flush_notify;
|
||||
+ }
|
||||
+
|
||||
nouveau_bo_marko(bctx, m2mf, NV04_M2MF_DMA_BUFFER_IN,
|
||||
src->bo, bo_flags | NOUVEAU_BO_RD);
|
||||
nouveau_bo_marko(bctx, m2mf, NV04_M2MF_DMA_BUFFER_OUT,
|
||||
@@ -311,7 +325,7 @@ nv04_surface_copy_m2mf(struct gl_context *ctx,
|
||||
|
||||
nouveau_bo_context_reset(bctx);
|
||||
|
||||
- if (context_chipset(ctx) < 0x10)
|
||||
+ if (context_hack(ctx) || context_chipset(ctx) < 0x10)
|
||||
FIRE_RING(chan);
|
||||
}
|
||||
|
||||
@@ -429,6 +443,13 @@ nv04_surface_fill(struct gl_context *ctx,
|
||||
struct nouveau_grobj *rect = hw->rect;
|
||||
unsigned bo_flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_GART;
|
||||
|
||||
+ if (context_hack(ctx)) {
|
||||
+ void *flush_notify = chan->flush_notify;
|
||||
+ chan->flush_notify = NULL;
|
||||
+ FIRE_RING(chan);
|
||||
+ chan->flush_notify = flush_notify;
|
||||
+ }
|
||||
+
|
||||
MARK_RING (chan, 19, 4);
|
||||
|
||||
BEGIN_RING(chan, surf2d, NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE, 2);
|
||||
@@ -454,7 +475,7 @@ nv04_surface_fill(struct gl_context *ctx,
|
||||
OUT_RING (chan, (dx << 16) | dy);
|
||||
OUT_RING (chan, ( w << 16) | h);
|
||||
|
||||
- if (context_chipset(ctx) < 0x10)
|
||||
+ if (context_hack(ctx) || context_chipset(ctx) < 0x10)
|
||||
FIRE_RING(chan);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.10.1
|
||||
|
27
mesa-8.0.1-fix-16bpp.patch
Normal file
27
mesa-8.0.1-fix-16bpp.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff -up Mesa-8.0.1/src/glx/drisw_glx.c.jx Mesa-8.0.1/src/glx/drisw_glx.c
|
||||
--- Mesa-8.0.1/src/glx/drisw_glx.c.jx 2012-04-02 10:34:23.000000000 -0400
|
||||
+++ Mesa-8.0.1/src/glx/drisw_glx.c 2012-04-02 11:44:19.296407735 -0400
|
||||
@@ -274,7 +274,9 @@ swrastShmGetImage(__DRIdrawable *read, c
|
||||
do {
|
||||
int i;
|
||||
char *src = ximage->data;
|
||||
- int dst_width = align(ximage->width * ximage->bits_per_pixel / 8, 256);
|
||||
+ int bytes_per_pixel = ((ximage->bits_per_pixel + 7) / 8);
|
||||
+ int dst_width = align(ximage->width * bytes_per_pixel,
|
||||
+ 64 * bytes_per_pixel);
|
||||
|
||||
for (i = 0; i < ximage->height; i++) {
|
||||
memcpy(data, src, ximage->bytes_per_line);
|
||||
diff -up Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx Mesa-8.0.1/src/mesa/state_tracker/st_manager.c
|
||||
--- Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx 2012-02-14 18:44:00.000000000 -0500
|
||||
+++ Mesa-8.0.1/src/mesa/state_tracker/st_manager.c 2012-04-02 12:02:14.613964417 -0400
|
||||
@@ -528,6 +528,9 @@ st_context_teximage(struct st_context_if
|
||||
if (util_format_get_component_bits(internal_format,
|
||||
UTIL_FORMAT_COLORSPACE_RGB, 3) > 0)
|
||||
internalFormat = GL_RGBA;
|
||||
+ else if (util_format_get_component_bits(internal_format,
|
||||
+ UTIL_FORMAT_COLORSPACE_RGB, 0) == 5)
|
||||
+ internalFormat = GL_RGB5;
|
||||
else
|
||||
internalFormat = GL_RGB;
|
||||
|
1447
mesa-8.0.4-git.patch
Normal file
1447
mesa-8.0.4-git.patch
Normal file
File diff suppressed because it is too large
Load Diff
3
sources
3
sources
@ -1 +1,2 @@
|
||||
SHA512 (mesa-20.0.2.tar.xz) = d6ffc29bbc5b908cb0f08fa1b5a83e029b76c7b697c488a73e6bb60990a55beeb3ecdba1745868f6885ee2f660975f5debf7d2c9418e0a96e2f7049e83fd89ab
|
||||
6ae05158e678f4594343f32c2ca50515 gl-manpages-1.0.1.tar.bz2
|
||||
d546f988adfdf986cff45b1efa2d8a46 MesaLib-8.0.4.tar.bz2
|
||||
|
Loading…
Reference in New Issue
Block a user