Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0cbff147e5 | ||
|
2aab46f3c9 | ||
|
570b7c6d25 | ||
|
0f9a254fdc | ||
|
8f827b4173 | ||
|
5b14ca7e18 | ||
|
96823333b1 | ||
|
341fd4a78c | ||
|
bfa3a88ca1 | ||
|
41c41c0e31 | ||
|
bc226ca838 | ||
|
6be7c45d15 | ||
|
6d3385fa54 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -34,3 +34,5 @@ mesa-20100720.tar.bz2
|
|||||||
/MesaLib-8.0.tar.bz2
|
/MesaLib-8.0.tar.bz2
|
||||||
/MesaLib-8.0.1.tar.bz2
|
/MesaLib-8.0.1.tar.bz2
|
||||||
/MesaLib-8.0.2.tar.bz2
|
/MesaLib-8.0.2.tar.bz2
|
||||||
|
/MesaLib-8.0.3.tar.bz2
|
||||||
|
/MesaLib-8.0.4.tar.bz2
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
From 89e796aef5ca1b35ca4ff6fce9231b4125e07037 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dylan Noblesmith <nobled@dreamwidth.org>
|
|
||||||
Date: Fri, 16 Mar 2012 18:38:49 +0000
|
|
||||||
Subject: [PATCH] intel: fix null dereference processing HiZ buffer
|
|
||||||
|
|
||||||
Or technically, a near-null dereference.
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=46303
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=46739
|
|
||||||
|
|
||||||
NOTE: This is a candidate for the 8.0 branch.
|
|
||||||
|
|
||||||
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
|
|
||||||
(cherry picked from commit 8d9decb75f0df564abaf9888d9fc5c77de8059cd)
|
|
||||||
---
|
|
||||||
src/mesa/drivers/dri/intel/intel_context.c | 6 ++++++
|
|
||||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
|
|
||||||
index d3c0d70..9cdd804 100644
|
|
||||||
--- a/src/mesa/drivers/dri/intel/intel_context.c
|
|
||||||
+++ b/src/mesa/drivers/dri/intel/intel_context.c
|
|
||||||
@@ -1225,6 +1225,10 @@ intel_process_dri2_buffer_with_separate_stencil(struct intel_context *intel,
|
|
||||||
if (!rb)
|
|
||||||
return;
|
|
||||||
|
|
||||||
+ /* Check if we failed to allocate the depth miptree earlier. */
|
|
||||||
+ if (buffer->attachment == __DRI_BUFFER_HIZ && rb->mt == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
/* If the renderbuffer's and DRIbuffer's regions match, then continue. */
|
|
||||||
if ((buffer->attachment != __DRI_BUFFER_HIZ &&
|
|
||||||
rb->mt &&
|
|
||||||
@@ -1266,6 +1270,7 @@ intel_process_dri2_buffer_with_separate_stencil(struct intel_context *intel,
|
|
||||||
* due to failure to allocate new storage.
|
|
||||||
*/
|
|
||||||
if (buffer->attachment == __DRI_BUFFER_HIZ) {
|
|
||||||
+ assert(rb->mt);
|
|
||||||
intel_miptree_release(&rb->mt->hiz_mt);
|
|
||||||
} else {
|
|
||||||
intel_miptree_release(&rb->mt);
|
|
||||||
@@ -1291,6 +1296,7 @@ intel_process_dri2_buffer_with_separate_stencil(struct intel_context *intel,
|
|
||||||
|
|
||||||
/* Associate buffer with new storage. */
|
|
||||||
if (buffer->attachment == __DRI_BUFFER_HIZ) {
|
|
||||||
+ assert(rb->mt);
|
|
||||||
rb->mt->hiz_mt = mt;
|
|
||||||
} else {
|
|
||||||
rb->mt = mt;
|
|
||||||
--
|
|
||||||
1.7.7.6
|
|
||||||
|
|
@ -1,21 +1,21 @@
|
|||||||
diff -up Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c.shmget Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c
|
diff -up mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c
|
||||||
--- Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c.shmget 2012-02-14 18:44:00.000000000 -0500
|
--- mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c.jx 2012-04-24 07:37:03.000000000 -0400
|
||||||
+++ Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c 2012-03-15 06:35:44.989221196 -0400
|
+++ mesa-20120424/src/gallium/state_trackers/dri/sw/drisw.c 2012-05-16 13:30:36.596312047 -0400
|
||||||
@@ -252,7 +252,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
@@ -252,8 +252,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
||||||
struct pipe_transfer *transfer;
|
struct pipe_transfer *transfer;
|
||||||
char *map;
|
char *map;
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
- int ximage_stride, line;
|
- int ximage_stride, line;
|
||||||
|
- int cpp = util_format_get_blocksize(res->format);
|
||||||
|
|
||||||
get_drawable_info(dPriv, &x, &y, &w, &h);
|
get_drawable_info(dPriv, &x, &y, &w, &h);
|
||||||
|
|
||||||
@@ -265,15 +264,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
@@ -266,14 +264,6 @@ drisw_update_tex_buffer(struct dri_drawa
|
||||||
/* Copy the Drawable content to the mapped texture buffer */
|
/* Copy the Drawable content to the mapped texture buffer */
|
||||||
get_image(dPriv, x, y, w, h, map);
|
get_image(dPriv, x, y, w, h, map);
|
||||||
|
|
||||||
- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels.
|
- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */
|
||||||
- We assume 32 bit pixels. */
|
- ximage_stride = w * cpp;
|
||||||
- ximage_stride = w * 4;
|
|
||||||
- for (line = h-1; line; --line) {
|
- for (line = h-1; line; --line) {
|
||||||
- memmove(&map[line * transfer->stride],
|
- memmove(&map[line * transfer->stride],
|
||||||
- &map[line * ximage_stride],
|
- &map[line * ximage_stride],
|
||||||
@ -25,9 +25,9 @@ diff -up Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c.shmget Mesa-8.0.1/
|
|||||||
pipe_transfer_unmap(pipe, transfer);
|
pipe_transfer_unmap(pipe, transfer);
|
||||||
pipe_transfer_destroy(pipe, transfer);
|
pipe_transfer_destroy(pipe, transfer);
|
||||||
}
|
}
|
||||||
diff -up Mesa-8.0.1/src/glx/drisw_glx.c.shmget Mesa-8.0.1/src/glx/drisw_glx.c
|
diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c
|
||||||
--- Mesa-8.0.1/src/glx/drisw_glx.c.shmget 2012-02-14 18:44:00.000000000 -0500
|
--- mesa-20120424/src/glx/drisw_glx.c.jx 2012-04-24 07:37:03.000000000 -0400
|
||||||
+++ Mesa-8.0.1/src/glx/drisw_glx.c 2012-03-14 11:25:04.708341441 -0400
|
+++ mesa-20120424/src/glx/drisw_glx.c 2012-05-16 13:29:25.087965268 -0400
|
||||||
@@ -24,6 +24,9 @@
|
@@ -24,6 +24,9 @@
|
||||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ diff -up Mesa-8.0.1/src/glx/drisw_glx.c.shmget Mesa-8.0.1/src/glx/drisw_glx.c
|
|||||||
#include "glxclient.h"
|
#include "glxclient.h"
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#include "dri_common.h"
|
#include "dri_common.h"
|
||||||
@@ -203,6 +206,96 @@ swrastPutImage(__DRIdrawable * draw, int
|
@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int
|
||||||
ximage->data = NULL;
|
ximage->data = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ diff -up Mesa-8.0.1/src/glx/drisw_glx.c.shmget Mesa-8.0.1/src/glx/drisw_glx.c
|
|||||||
static void
|
static void
|
||||||
swrastGetImage(__DRIdrawable * read,
|
swrastGetImage(__DRIdrawable * read,
|
||||||
int x, int y, int w, int h,
|
int x, int y, int w, int h,
|
||||||
@@ -217,11 +310,17 @@ swrastGetImage(__DRIdrawable * read,
|
@@ -220,11 +313,17 @@ swrastGetImage(__DRIdrawable * read,
|
||||||
readable = pread->xDrawable;
|
readable = pread->xDrawable;
|
||||||
|
|
||||||
ximage = prp->ximage;
|
ximage = prp->ximage;
|
||||||
|
@ -1,201 +0,0 @@
|
|||||||
diff -up Mesa-8.0.1/src/gallium/include/state_tracker/drm_driver.h.jx Mesa-8.0.1/src/gallium/include/state_tracker/drm_driver.h
|
|
||||||
--- Mesa-8.0.1/src/gallium/include/state_tracker/drm_driver.h.jx 2012-02-14 18:44:00.000000000 -0500
|
|
||||||
+++ Mesa-8.0.1/src/gallium/include/state_tracker/drm_driver.h 2012-03-23 13:11:40.785842579 -0400
|
|
||||||
@@ -43,6 +43,7 @@ struct winsys_handle
|
|
||||||
enum drm_conf {
|
|
||||||
/* How many frames to allow before throttling. Or -1 to indicate any number */
|
|
||||||
DRM_CONF_THROTTLE, /* DRM_CONF_INT. */
|
|
||||||
+ DRM_CONF_NOTFP,
|
|
||||||
DRM_CONF_MAX
|
|
||||||
};
|
|
||||||
|
|
||||||
diff -up Mesa-8.0.1/src/gallium/state_trackers/dri/drm/dri2.c.jx Mesa-8.0.1/src/gallium/state_trackers/dri/drm/dri2.c
|
|
||||||
--- Mesa-8.0.1/src/gallium/state_trackers/dri/drm/dri2.c.jx 2012-02-14 18:44:00.000000000 -0500
|
|
||||||
+++ Mesa-8.0.1/src/gallium/state_trackers/dri/drm/dri2.c 2012-03-23 13:11:40.785842579 -0400
|
|
||||||
@@ -642,6 +642,13 @@ static struct __DRIimageExtensionRec dri
|
|
||||||
* Backend function init_screen.
|
|
||||||
*/
|
|
||||||
|
|
||||||
+static const __DRIextension *dri_screen_extensions_no_tfp[] = {
|
|
||||||
+ &dri2FlushExtension.base,
|
|
||||||
+ &dri2ImageExtension.base,
|
|
||||||
+ &dri2ConfigQueryExtension.base,
|
|
||||||
+ NULL
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static const __DRIextension *dri_screen_extensions[] = {
|
|
||||||
&driTexBufferExtension.base,
|
|
||||||
&dri2FlushExtension.base,
|
|
||||||
@@ -671,6 +678,7 @@ dri2_init_screen(__DRIscreen * sPriv)
|
|
||||||
struct dri_screen *screen;
|
|
||||||
struct pipe_screen *pscreen;
|
|
||||||
const struct drm_conf_ret *throttle_ret = NULL;
|
|
||||||
+ const struct drm_conf_ret *notfp_ret = NULL;
|
|
||||||
|
|
||||||
screen = CALLOC_STRUCT(dri_screen);
|
|
||||||
if (!screen)
|
|
||||||
@@ -682,12 +690,16 @@ dri2_init_screen(__DRIscreen * sPriv)
|
|
||||||
sPriv->driverPrivate = (void *)screen;
|
|
||||||
|
|
||||||
pscreen = driver_descriptor.create_screen(screen->fd);
|
|
||||||
- if (driver_descriptor.configuration)
|
|
||||||
+ if (driver_descriptor.configuration) {
|
|
||||||
throttle_ret = driver_descriptor.configuration(DRM_CONF_THROTTLE);
|
|
||||||
+ throttle_ret = driver_descriptor.configuration(DRM_CONF_NOTFP);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (throttle_ret && throttle_ret->val.val_int != -1) {
|
|
||||||
sPriv->extensions = dri_screen_extensions_throttle;
|
|
||||||
screen->default_throttle_frames = throttle_ret->val.val_int;
|
|
||||||
+ } else if (notfp_ret && notfp_ret->val.val_bool == 1) {
|
|
||||||
+ sPriv->extensions = dri_screen_extensions_no_tfp;
|
|
||||||
} else
|
|
||||||
sPriv->extensions = dri_screen_extensions;
|
|
||||||
|
|
||||||
diff -up Mesa-8.0.1/src/gallium/targets/dri-nouveau/target.c.jx Mesa-8.0.1/src/gallium/targets/dri-nouveau/target.c
|
|
||||||
--- Mesa-8.0.1/src/gallium/targets/dri-nouveau/target.c.jx 2012-02-14 18:44:00.000000000 -0500
|
|
||||||
+++ Mesa-8.0.1/src/gallium/targets/dri-nouveau/target.c 2012-03-23 13:14:37.824416888 -0400
|
|
||||||
@@ -3,6 +3,12 @@
|
|
||||||
#include "state_tracker/drm_driver.h"
|
|
||||||
#include "nouveau/drm/nouveau_drm_public.h"
|
|
||||||
|
|
||||||
+#include <xf86drm.h>
|
|
||||||
+#include <nouveau_drm.h>
|
|
||||||
+
|
|
||||||
+/* yes this is an ugly hack */
|
|
||||||
+static int nvfd = -1;
|
|
||||||
+
|
|
||||||
static struct pipe_screen *
|
|
||||||
create_screen(int fd)
|
|
||||||
{
|
|
||||||
@@ -12,9 +18,52 @@ create_screen(int fd)
|
|
||||||
if (!screen)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
+ nvfd = fd;
|
|
||||||
+
|
|
||||||
screen = debug_screen_wrap(screen);
|
|
||||||
|
|
||||||
return screen;
|
|
||||||
}
|
|
||||||
|
|
||||||
-DRM_DRIVER_DESCRIPTOR("nouveau", "nouveau", create_screen, NULL)
|
|
||||||
+static const struct drm_conf_ret notfp_ret = {
|
|
||||||
+ .type = DRM_CONF_BOOL,
|
|
||||||
+ .val.val_bool = 1,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
|
|
||||||
+{
|
|
||||||
+ switch (conf) {
|
|
||||||
+ case DRM_CONF_NOTFP:
|
|
||||||
+ {
|
|
||||||
+ /* have to open-code to reuse the fd */
|
|
||||||
+ struct drm_nouveau_getparam g;
|
|
||||||
+ int vram;
|
|
||||||
+
|
|
||||||
+ g.param = NOUVEAU_GETPARAM_CHIPSET_ID;
|
|
||||||
+ if (drmCommandWriteRead(nvfd, DRM_NOUVEAU_GETPARAM, &g, sizeof(g)))
|
|
||||||
+ return ¬fp_ret; /* error? paranoia */
|
|
||||||
+
|
|
||||||
+ if (g.value < 0x50)
|
|
||||||
+ return NULL; /* nv50+ okay */
|
|
||||||
+
|
|
||||||
+ if (g.value & 0xf0 == 0x30)
|
|
||||||
+ return ¬fp_ret; /* nv30 definitely horked */
|
|
||||||
+
|
|
||||||
+ g.param = NOUVEAU_GETPARAM_FB_SIZE;
|
|
||||||
+ if (drmCommandWriteRead(nvfd, DRM_NOUVEAU_GETPARAM, &g, sizeof(g)))
|
|
||||||
+ return ¬fp_ret; /* error? paranoia */
|
|
||||||
+
|
|
||||||
+ vram = g.value;
|
|
||||||
+ if ((vram >> 20) <= 64)
|
|
||||||
+ return ¬fp_ret; /* let's say <64M is too little */
|
|
||||||
+
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ default:
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ return NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+DRM_DRIVER_DESCRIPTOR("nouveau", "nouveau", create_screen, drm_configuration)
|
|
||||||
diff -up Mesa-8.0.1/src/mesa/drivers/dri/nouveau/nouveau_screen.c.jx Mesa-8.0.1/src/mesa/drivers/dri/nouveau/nouveau_screen.c
|
|
||||||
--- Mesa-8.0.1/src/mesa/drivers/dri/nouveau/nouveau_screen.c.jx 2012-02-14 18:44:00.000000000 -0500
|
|
||||||
+++ Mesa-8.0.1/src/mesa/drivers/dri/nouveau/nouveau_screen.c 2012-03-23 13:38:34.477024222 -0400
|
|
||||||
@@ -37,7 +37,11 @@
|
|
||||||
#include "main/renderbuffer.h"
|
|
||||||
#include "swrast/s_renderbuffer.h"
|
|
||||||
|
|
||||||
+#include <xf86drm.h>
|
|
||||||
+#include <nouveau_drm.h>
|
|
||||||
+
|
|
||||||
static const __DRIextension *nouveau_screen_extensions[];
|
|
||||||
+static const __DRIextension *nouveau_screen_extensions_notfp[];
|
|
||||||
|
|
||||||
static void
|
|
||||||
nouveau_destroy_screen(__DRIscreen *dri_screen);
|
|
||||||
@@ -86,6 +90,28 @@ nouveau_get_configs(void)
|
|
||||||
return (const __DRIconfig **)configs;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+shouldnt_tfp(int nvfd)
|
|
||||||
+{
|
|
||||||
+ /* have to open-code to reuse the fd */
|
|
||||||
+ struct drm_nouveau_getparam g;
|
|
||||||
+ int vram;
|
|
||||||
+
|
|
||||||
+ g.param = NOUVEAU_GETPARAM_CHIPSET_ID;
|
|
||||||
+ if (drmCommandWriteRead(nvfd, DRM_NOUVEAU_GETPARAM, &g, sizeof(g)))
|
|
||||||
+ return 1; /* error? paranoia */
|
|
||||||
+
|
|
||||||
+ g.param = NOUVEAU_GETPARAM_FB_SIZE;
|
|
||||||
+ if (drmCommandWriteRead(nvfd, DRM_NOUVEAU_GETPARAM, &g, sizeof(g)))
|
|
||||||
+ return 1; /* error? paranoia */
|
|
||||||
+
|
|
||||||
+ vram = g.value;
|
|
||||||
+ if ((vram >> 20) <= 64)
|
|
||||||
+ return 1; /* let's say 64M is too little */
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static const __DRIconfig **
|
|
||||||
nouveau_init_screen2(__DRIscreen *dri_screen)
|
|
||||||
{
|
|
||||||
@@ -99,7 +125,6 @@ nouveau_init_screen2(__DRIscreen *dri_sc
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
dri_screen->driverPrivate = screen;
|
|
||||||
- dri_screen->extensions = nouveau_screen_extensions;
|
|
||||||
screen->dri_screen = dri_screen;
|
|
||||||
|
|
||||||
/* Open the DRM device. */
|
|
||||||
@@ -110,6 +135,11 @@ nouveau_init_screen2(__DRIscreen *dri_sc
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (shouldnt_tfp(dri_screen->fd))
|
|
||||||
+ dri_screen->extensions = nouveau_screen_extensions_notfp;
|
|
||||||
+ else
|
|
||||||
+ dri_screen->extensions = nouveau_screen_extensions;
|
|
||||||
+
|
|
||||||
/* Choose the card specific function pointers. */
|
|
||||||
switch (screen->device->chipset & 0xf0) {
|
|
||||||
case 0x00:
|
|
||||||
@@ -240,6 +270,12 @@ static const __DRIextension *nouveau_scr
|
|
||||||
&dri2ConfigQueryExtension.base,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
+
|
|
||||||
+static const __DRIextension *nouveau_screen_extensions_notfp[] = {
|
|
||||||
+ &nouveau_flush_extension.base,
|
|
||||||
+ &dri2ConfigQueryExtension.base,
|
|
||||||
+ NULL
|
|
||||||
+};
|
|
||||||
|
|
||||||
const struct __DriverAPIRec driDriverAPI = {
|
|
||||||
.InitScreen = nouveau_init_screen2,
|
|
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
|
||||||
|
|
@ -1,265 +0,0 @@
|
|||||||
diff --git a/docs/relnotes-8.0.1.html b/docs/relnotes-8.0.1.html
|
|
||||||
index 8c8cd3f..29a314c 100644
|
|
||||||
--- a/docs/relnotes-8.0.1.html
|
|
||||||
+++ b/docs/relnotes-8.0.1.html
|
|
||||||
@@ -28,7 +28,9 @@ for DRI hardware acceleration.
|
|
||||||
|
|
||||||
<h2>MD5 checksums</h2>
|
|
||||||
<pre>
|
|
||||||
-tdb
|
|
||||||
+4855c2d93bd2ebd43f384bdcc92c9a27 MesaLib-8.0.1.tar.gz
|
|
||||||
+24eeebf66971809d8f40775a379b36c9 MesaLib-8.0.1.tar.bz2
|
|
||||||
+54e745d14dac5717f7f65b4e2d5c1df2 MesaLib-8.0.1.zip
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h2>New features</h2>
|
|
||||||
diff --git a/src/gallium/auxiliary/rtasm/rtasm_cpu.c b/src/gallium/auxiliary/rtasm/rtasm_cpu.c
|
|
||||||
index 0461c81..7afcf14 100644
|
|
||||||
--- a/src/gallium/auxiliary/rtasm/rtasm_cpu.c
|
|
||||||
+++ b/src/gallium/auxiliary/rtasm/rtasm_cpu.c
|
|
||||||
@@ -25,43 +25,43 @@
|
|
||||||
*
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
+#include "pipe/p_config.h"
|
|
||||||
+#include "rtasm_cpu.h"
|
|
||||||
+
|
|
||||||
+#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
|
||||||
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
-#include "rtasm_cpu.h"
|
|
||||||
+#include "util/u_cpu_detect.h"
|
|
||||||
|
|
||||||
+DEBUG_GET_ONCE_BOOL_OPTION(nosse, "GALLIUM_NOSSE", FALSE);
|
|
||||||
|
|
||||||
-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
|
||||||
-static boolean rtasm_sse_enabled(void)
|
|
||||||
+static struct util_cpu_caps *get_cpu_caps(void)
|
|
||||||
{
|
|
||||||
- static boolean firsttime = 1;
|
|
||||||
- static boolean enabled;
|
|
||||||
-
|
|
||||||
- /* This gets called quite often at the moment:
|
|
||||||
- */
|
|
||||||
- if (firsttime) {
|
|
||||||
- enabled = !debug_get_bool_option("GALLIUM_NOSSE", FALSE);
|
|
||||||
- firsttime = FALSE;
|
|
||||||
- }
|
|
||||||
- return enabled;
|
|
||||||
+ util_cpu_detect();
|
|
||||||
+ return &util_cpu_caps;
|
|
||||||
}
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
int rtasm_cpu_has_sse(void)
|
|
||||||
{
|
|
||||||
- /* FIXME: actually detect this at run-time */
|
|
||||||
-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
|
||||||
- return rtasm_sse_enabled();
|
|
||||||
-#else
|
|
||||||
- return 0;
|
|
||||||
-#endif
|
|
||||||
+ return !debug_get_option_nosse() && get_cpu_caps()->has_sse;
|
|
||||||
}
|
|
||||||
|
|
||||||
int rtasm_cpu_has_sse2(void)
|
|
||||||
{
|
|
||||||
- /* FIXME: actually detect this at run-time */
|
|
||||||
-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
|
||||||
- return rtasm_sse_enabled();
|
|
||||||
+ return !debug_get_option_nosse() && get_cpu_caps()->has_sse2;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
+
|
|
||||||
+int rtasm_cpu_has_sse(void)
|
|
||||||
+{
|
|
||||||
return 0;
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+int rtasm_cpu_has_sse2(void)
|
|
||||||
+{
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
diff --git a/src/gallium/drivers/r300/compiler/radeon_program_alu.c b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
|
|
||||||
index dd1dfb3..c48f936 100644
|
|
||||||
--- a/src/gallium/drivers/r300/compiler/radeon_program_alu.c
|
|
||||||
+++ b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
|
|
||||||
@@ -1165,35 +1165,79 @@ int radeonTransformDeriv(struct radeon_compiler* c,
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * IF Temp[0].x -> IF Temp[0].x
|
|
||||||
+ * ... -> ...
|
|
||||||
+ * KILP -> KIL -abs(Temp[0].x)
|
|
||||||
+ * ... -> ...
|
|
||||||
+ * ENDIF -> ENDIF
|
|
||||||
+ *
|
|
||||||
+ * === OR ===
|
|
||||||
+ *
|
|
||||||
* IF Temp[0].x -\
|
|
||||||
* KILP - > KIL -abs(Temp[0].x)
|
|
||||||
* ENDIF -/
|
|
||||||
*
|
|
||||||
- * This needs to be done in its own pass, because it modifies the instructions
|
|
||||||
- * before and after KILP.
|
|
||||||
+ * === OR ===
|
|
||||||
+ *
|
|
||||||
+ * IF Temp[0].x -> IF Temp[0].x
|
|
||||||
+ * ... -> ...
|
|
||||||
+ * ELSE -> ELSE
|
|
||||||
+ * ... -> ...
|
|
||||||
+ * KILP -> KIL -abs(Temp[0].x)
|
|
||||||
+ * ... -> ...
|
|
||||||
+ * ENDIF -> ENDIF
|
|
||||||
+ *
|
|
||||||
+ * === OR ===
|
|
||||||
+ *
|
|
||||||
+ * KILP -> KIL -none.1111
|
|
||||||
+ *
|
|
||||||
+ * This needs to be done in its own pass, because it might modify the
|
|
||||||
+ * instructions before and after KILP.
|
|
||||||
*/
|
|
||||||
void rc_transform_KILP(struct radeon_compiler * c, void *user)
|
|
||||||
{
|
|
||||||
struct rc_instruction * inst;
|
|
||||||
for (inst = c->Program.Instructions.Next;
|
|
||||||
inst != &c->Program.Instructions; inst = inst->Next) {
|
|
||||||
+ struct rc_instruction * if_inst;
|
|
||||||
+ unsigned in_if = 0;
|
|
||||||
|
|
||||||
if (inst->U.I.Opcode != RC_OPCODE_KILP)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
+ for (if_inst = inst->Prev; if_inst != &c->Program.Instructions;
|
|
||||||
+ if_inst = if_inst->Prev) {
|
|
||||||
+
|
|
||||||
+ if (if_inst->U.I.Opcode == RC_OPCODE_IF) {
|
|
||||||
+ in_if = 1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
inst->U.I.Opcode = RC_OPCODE_KIL;
|
|
||||||
|
|
||||||
- if (inst->Prev->U.I.Opcode != RC_OPCODE_IF
|
|
||||||
- || inst->Next->U.I.Opcode != RC_OPCODE_ENDIF) {
|
|
||||||
+ if (!in_if) {
|
|
||||||
inst->U.I.SrcReg[0] = negate(builtin_one);
|
|
||||||
} else {
|
|
||||||
-
|
|
||||||
+ /* This should work even if the KILP is inside the ELSE
|
|
||||||
+ * block, because -0.0 is considered negative. */
|
|
||||||
inst->U.I.SrcReg[0] =
|
|
||||||
- negate(absolute(inst->Prev->U.I.SrcReg[0]));
|
|
||||||
- /* Remove IF */
|
|
||||||
- rc_remove_instruction(inst->Prev);
|
|
||||||
- /* Remove ENDIF */
|
|
||||||
- rc_remove_instruction(inst->Next);
|
|
||||||
+ negate(absolute(if_inst->U.I.SrcReg[0]));
|
|
||||||
+
|
|
||||||
+ if (inst->Prev->U.I.Opcode != RC_OPCODE_IF
|
|
||||||
+ && inst->Next->U.I.Opcode != RC_OPCODE_ENDIF) {
|
|
||||||
+
|
|
||||||
+ /* Optimize the special case:
|
|
||||||
+ * IF Temp[0].x
|
|
||||||
+ * KILP
|
|
||||||
+ * ENDIF
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ /* Remove IF */
|
|
||||||
+ rc_remove_instruction(inst->Prev);
|
|
||||||
+ /* Remove ENDIF */
|
|
||||||
+ rc_remove_instruction(inst->Next);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c
|
|
||||||
index 82a3ff2..e22deb4 100644
|
|
||||||
--- a/src/gallium/drivers/svga/svga_screen.c
|
|
||||||
+++ b/src/gallium/drivers/svga/svga_screen.c
|
|
||||||
@@ -235,7 +235,7 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en
|
|
||||||
case PIPE_SHADER_CAP_MAX_TEMPS:
|
|
||||||
if (!sws->get_cap(sws, SVGA3D_DEVCAP_MAX_FRAGMENT_SHADER_TEMPS, &result))
|
|
||||||
return 32;
|
|
||||||
- return result.u;
|
|
||||||
+ return MIN2(result.u, SVGA3D_TEMPREG_MAX);
|
|
||||||
case PIPE_SHADER_CAP_MAX_ADDRS:
|
|
||||||
case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
|
|
||||||
/*
|
|
||||||
@@ -286,7 +286,7 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en
|
|
||||||
case PIPE_SHADER_CAP_MAX_TEMPS:
|
|
||||||
if (!sws->get_cap(sws, SVGA3D_DEVCAP_MAX_VERTEX_SHADER_TEMPS, &result))
|
|
||||||
return 32;
|
|
||||||
- return result.u;
|
|
||||||
+ return MIN2(result.u, SVGA3D_TEMPREG_MAX);
|
|
||||||
case PIPE_SHADER_CAP_MAX_ADDRS:
|
|
||||||
return 1;
|
|
||||||
case PIPE_SHADER_CAP_MAX_PREDS:
|
|
||||||
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c
|
|
||||||
index 3347157..b2581da 100644
|
|
||||||
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
|
|
||||||
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
|
|
||||||
@@ -2188,7 +2188,7 @@ void brw_fb_WRITE(struct brw_compile *p,
|
|
||||||
msg_type,
|
|
||||||
msg_length,
|
|
||||||
header_present,
|
|
||||||
- 1, /* last render target write */
|
|
||||||
+ eot, /* last render target write */
|
|
||||||
response_length,
|
|
||||||
eot,
|
|
||||||
0 /* send_commit_msg */);
|
|
||||||
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
|
|
||||||
index a2959a8..4b27e06 100644
|
|
||||||
--- a/src/mesa/main/bufferobj.c
|
|
||||||
+++ b/src/mesa/main/bufferobj.c
|
|
||||||
@@ -1159,17 +1159,17 @@ _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params)
|
|
||||||
*params = _mesa_bufferobj_mapped(bufObj);
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_ACCESS_FLAGS:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = bufObj->AccessFlags;
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_MAP_OFFSET:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = (GLint) bufObj->Offset;
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_MAP_LENGTH:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = (GLint) bufObj->Length;
|
|
||||||
return;
|
|
||||||
@@ -1210,7 +1210,7 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
|
|
||||||
*params = simplified_access_mode(bufObj->AccessFlags);
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_ACCESS_FLAGS:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = bufObj->AccessFlags;
|
|
||||||
return;
|
|
||||||
@@ -1218,12 +1218,12 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
|
|
||||||
*params = _mesa_bufferobj_mapped(bufObj);
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_MAP_OFFSET:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = bufObj->Offset;
|
|
||||||
return;
|
|
||||||
case GL_BUFFER_MAP_LENGTH:
|
|
||||||
- if (ctx->VersionMajor < 3)
|
|
||||||
+ if (!ctx->Extensions.ARB_map_buffer_range)
|
|
||||||
goto invalid_pname;
|
|
||||||
*params = bufObj->Length;
|
|
||||||
return;
|
|
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
62
mesa.spec
62
mesa.spec
@ -1,5 +1,5 @@
|
|||||||
%if 0%{?rhel}
|
%if 0%{?rhel}
|
||||||
%define rhel_no_hw_arches ppc ppc64
|
%define rhel_no_hw_arches ppc ppc64 ppc64p7
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# S390 doesn't have video cards, but we need swrast for xserver's GLX
|
# S390 doesn't have video cards, but we need swrast for xserver's GLX
|
||||||
@ -7,13 +7,19 @@
|
|||||||
%define with_hardware 0
|
%define with_hardware 0
|
||||||
%define dri_drivers --with-dri-drivers=swrast
|
%define dri_drivers --with-dri-drivers=swrast
|
||||||
%else
|
%else
|
||||||
|
# llvm is a joke on non-x86
|
||||||
|
%ifarch %{ix86} x86_64
|
||||||
|
%define with_llvm 1
|
||||||
|
%endif
|
||||||
%define with_hardware 1
|
%define with_hardware 1
|
||||||
%define base_drivers nouveau,radeon,r200
|
%define base_drivers nouveau,radeon,r200
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%define ix86_drivers ,i915,i965
|
%define ix86_drivers ,i915,i965
|
||||||
|
%define with_vmware 1
|
||||||
%endif
|
%endif
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%define amd64_drivers ,i915,i965
|
%define amd64_drivers ,i915,i965
|
||||||
|
%define with_vmware 1
|
||||||
%endif
|
%endif
|
||||||
%ifarch ia64
|
%ifarch ia64
|
||||||
%define ia64_drivers ,i915
|
%define ia64_drivers ,i915
|
||||||
@ -29,8 +35,8 @@
|
|||||||
|
|
||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Version: 8.0.2
|
Version: 8.0.4
|
||||||
Release: 3%{?dist}
|
Release: 1%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
URL: http://www.mesa3d.org
|
URL: http://www.mesa3d.org
|
||||||
@ -45,9 +51,10 @@ Source3: make-git-snapshot.sh
|
|||||||
#Patch7: mesa-7.1-link-shared.patch
|
#Patch7: mesa-7.1-link-shared.patch
|
||||||
Patch8: mesa-7.10-llvmcore.patch
|
Patch8: mesa-7.10-llvmcore.patch
|
||||||
Patch9: mesa-8.0-llvmpipe-shmget.patch
|
Patch9: mesa-8.0-llvmpipe-shmget.patch
|
||||||
Patch10: 0001-intel-fix-null-dereference-processing-HiZ-buffer.patch
|
|
||||||
Patch11: mesa-8.0-nouveau-tfp-blacklist.patch
|
|
||||||
Patch12: mesa-8.0.1-fix-16bpp.patch
|
Patch12: mesa-8.0.1-fix-16bpp.patch
|
||||||
|
Patch13: mesa-8.0-nouveau-vieux-nvfx-lowmem.patch
|
||||||
|
Patch14: mesa-8.0-nouveau-vieux-finish.patch
|
||||||
|
Patch15: mesa-8.0.4-git.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig autoconf automake libtool
|
BuildRequires: pkgconfig autoconf automake libtool
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
@ -68,8 +75,10 @@ BuildRequires: libXmu-devel
|
|||||||
BuildRequires: elfutils
|
BuildRequires: elfutils
|
||||||
BuildRequires: python
|
BuildRequires: python
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
|
%if 0%{?with_llvm}
|
||||||
BuildRequires: llvm-devel >= 3.0
|
BuildRequires: llvm-devel >= 3.0
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
BuildRequires: libxml2-python
|
BuildRequires: libxml2-python
|
||||||
BuildRequires: libudev-devel
|
BuildRequires: libudev-devel
|
||||||
BuildRequires: libtalloc-devel
|
BuildRequires: libtalloc-devel
|
||||||
@ -246,6 +255,7 @@ Provides: libwayland-egl-devel
|
|||||||
%description libwayland-egl-devel
|
%description libwayland-egl-devel
|
||||||
Mesa libwayland-egl development package
|
Mesa libwayland-egl development package
|
||||||
|
|
||||||
|
%if 0%{?with_vmware}
|
||||||
%package libxatracker
|
%package libxatracker
|
||||||
Summary: Mesa XA state tracker for vmware
|
Summary: Mesa XA state tracker for vmware
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -264,6 +274,7 @@ Provides: libxatracker-devel
|
|||||||
|
|
||||||
%description libxatracker-devel
|
%description libxatracker-devel
|
||||||
Mesa XA state tracker development package
|
Mesa XA state tracker development package
|
||||||
|
%endif
|
||||||
|
|
||||||
%package libglapi
|
%package libglapi
|
||||||
Summary: Mesa shared glapi
|
Summary: Mesa shared glapi
|
||||||
@ -280,9 +291,10 @@ Mesa shared glapi
|
|||||||
#patch7 -p1 -b .dricore
|
#patch7 -p1 -b .dricore
|
||||||
%patch8 -p1 -b .llvmcore
|
%patch8 -p1 -b .llvmcore
|
||||||
%patch9 -p1 -b .shmget
|
%patch9 -p1 -b .shmget
|
||||||
%patch10 -p1 -b .intel-hiz-fix
|
|
||||||
%patch11 -p1 -b .nouveau
|
|
||||||
%patch12 -p1 -b .16bpp
|
%patch12 -p1 -b .16bpp
|
||||||
|
%patch13 -p1 -b .nouveau-lowmem
|
||||||
|
%patch14 -p1 -b .nouveau-finish
|
||||||
|
%patch15 -p1 -b .git
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -313,9 +325,9 @@ export CXXFLAGS="$RPM_OPT_FLAGS"
|
|||||||
--enable-shared-glapi \
|
--enable-shared-glapi \
|
||||||
--enable-gbm \
|
--enable-gbm \
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
--with-gallium-drivers=svga,r300,r600,nouveau,swrast \
|
--with-gallium-drivers=%{?with_vmware:svga,}r300,r600,nouveau,swrast \
|
||||||
--enable-gallium-llvm \
|
%{?with_llvm:--enable-gallium-llvm} \
|
||||||
--enable-xa \
|
%{?with_vmware:--enable-xa} \
|
||||||
%else
|
%else
|
||||||
--disable-gallium-llvm \
|
--disable-gallium-llvm \
|
||||||
--with-gallium-drivers=swrast \
|
--with-gallium-drivers=swrast \
|
||||||
@ -434,8 +446,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
%{_libdir}/dri/nouveau_dri.so
|
%{_libdir}/dri/nouveau_dri.so
|
||||||
%{_libdir}/dri/nouveau_vieux_dri.so
|
%{_libdir}/dri/nouveau_vieux_dri.so
|
||||||
|
%if 0%{?with_vmware}
|
||||||
%{_libdir}/dri/vmwgfx_dri.so
|
%{_libdir}/dri/vmwgfx_dri.so
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
%{_libdir}/dri/swrast_dri.so
|
%{_libdir}/dri/swrast_dri.so
|
||||||
|
|
||||||
%files -n khrplatform-devel
|
%files -n khrplatform-devel
|
||||||
@ -535,6 +549,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/libwayland-egl.so
|
%{_libdir}/libwayland-egl.so
|
||||||
%{_libdir}/pkgconfig/wayland-egl.pc
|
%{_libdir}/pkgconfig/wayland-egl.pc
|
||||||
|
|
||||||
|
%if 0%{?with_vmware}
|
||||||
%files libxatracker
|
%files libxatracker
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc docs/COPYING
|
%doc docs/COPYING
|
||||||
@ -552,8 +567,35 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_includedir}/xa_context.h
|
%{_includedir}/xa_context.h
|
||||||
%{_libdir}/pkgconfig/xatracker.pc
|
%{_libdir}/pkgconfig/xatracker.pc
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 19 2012 Dave Airlie <airlied@redhat.com> 8.0.4-1
|
||||||
|
- rebase to 8.0.4 release + 8.0 branch fixes
|
||||||
|
|
||||||
|
* Mon Jun 25 2012 Adam Jackson <ajax@redhat.com> 8.0.3-3
|
||||||
|
- mesa-8.0.3-git.patch: Sync with 8.0 branch.
|
||||||
|
|
||||||
|
* Thu Jun 07 2012 Adam Jackson <ajax@redhat.com> 8.0.3-2
|
||||||
|
- Disable llvm on non-x86 (#829202)
|
||||||
|
|
||||||
|
* Wed May 23 2012 Adam Jackson <ajax@redhat.com> 8.0.3-1
|
||||||
|
- Mesa 8.0.3
|
||||||
|
- 0001-intel-fix-null-dereference-processing-HiZ-buffer.patch: Drop, merged.
|
||||||
|
|
||||||
|
* Fri May 15 2012 Ben Skeggs <bskeggs@redhat.com> 8.0.2-8
|
||||||
|
- nouveau: add back a missing hunk from a previous patch
|
||||||
|
|
||||||
|
* Fri May 11 2012 Ben Skeggs <bskeggs@redhat.com> 8.0.2-7
|
||||||
|
- nouveau: fix shell lag on <=nv2x chipsets, and hack around low-vram issues
|
||||||
|
|
||||||
|
* Wed May 09 2012 Karsten Hopp <karsten@redhat.com> 8.0.2-6
|
||||||
|
- revert disabling of hardware drivers, disable only llvm on PPC*
|
||||||
|
(#819060)
|
||||||
|
|
||||||
|
* Thu Apr 26 2012 Adam Jackson <ajax@redhat.com> 8.0.2-4
|
||||||
|
- Don't build vmware stuff on PPC (#815444)
|
||||||
|
|
||||||
* Tue Apr 10 2012 Adam Jackson <ajax@redhat.com> 8.0.2-3
|
* Tue Apr 10 2012 Adam Jackson <ajax@redhat.com> 8.0.2-3
|
||||||
- Require newer libX11 on F17+
|
- Require newer libX11 on F17+
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user