Compare commits

...

13 Commits
master ... f17

Author SHA1 Message Date
Dave Airlie 0cbff147e5 rebase to 8.0.4 release + 8.0 branch fixes 2012-09-19 13:00:52 +10:00
Adam Jackson 2aab46f3c9 mesa-8.0.3-git.patch: Sync with 8.0 branch. 2012-06-25 13:03:32 -04:00
Adam Jackson 570b7c6d25 Disable llvm on non-x86 (#829202) 2012-06-07 15:29:27 -04:00
Adam Jackson 0f9a254fdc Mesa 8.0.3
- 0001-intel-fix-null-dereference-processing-HiZ-buffer.patch: Drop, merged.
2012-05-23 11:22:35 -04:00
Ben Skeggs 8f827b4173 nouveau: fix lost hunk in nvfx lowmem hack 2012-05-15 12:39:24 +10:00
Ben Skeggs 5b14ca7e18 nouveau: fix various issues on old chipsets 2012-05-11 14:28:36 +10:00
Karsten Hopp 96823333b1 revert disabling of hardware drivers, disable only llvm on PPC* (#819060) 2012-05-09 15:49:21 +02:00
Karsten Hopp 341fd4a78c Revert "disable HW on PPC on Fedora similar to RHEL"
This reverts commit bfa3a88ca1.
2012-05-09 14:22:03 +02:00
Karsten Hopp bfa3a88ca1 disable HW on PPC on Fedora similar to RHEL 2012-05-03 16:24:37 +02:00
Adam Jackson 41c41c0e31 Don't build vmware stuff on PPC (#815444) 2012-04-26 10:20:49 -04:00
Adam Jackson bc226ca838 Merge branch 'master' into f17 2012-04-10 12:08:11 -04:00
Adam Jackson 6be7c45d15 mesa-8.0.1-fix-16bpp.patch: Fix 16bpp in llvmpipe 2012-04-02 12:28:44 -04:00
Dave Airlie 6d3385fa54 get latest 8.0.2 set of fixes 2012-03-31 09:48:39 +01:00
10 changed files with 1886 additions and 542 deletions

2
.gitignore vendored
View File

@ -34,3 +34,5 @@ mesa-20100720.tar.bz2
/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

View File

@ -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

View File

@ -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
--- Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c.shmget 2012-02-14 18:44:00.000000000 -0500
+++ Mesa-8.0.1/src/gallium/state_trackers/dri/sw/drisw.c 2012-03-15 06:35:44.989221196 -0400
@@ -252,7 +252,6 @@ drisw_update_tex_buffer(struct dri_drawa
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);
@@ -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 */
get_image(dPriv, x, y, w, h, map);
- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels.
- We assume 32 bit pixels. */
- ximage_stride = w * 4;
- /* 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],
@ -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_destroy(pipe, transfer);
}
diff -up Mesa-8.0.1/src/glx/drisw_glx.c.shmget Mesa-8.0.1/src/glx/drisw_glx.c
--- Mesa-8.0.1/src/glx/drisw_glx.c.shmget 2012-02-14 18:44:00.000000000 -0500
+++ Mesa-8.0.1/src/glx/drisw_glx.c 2012-03-14 11:25:04.708341441 -0400
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)
@ -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 <dlfcn.h>
#include "dri_common.h"
@@ -203,6 +206,96 @@ swrastPutImage(__DRIdrawable * draw, int
@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int
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
swrastGetImage(__DRIdrawable * read,
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;
ximage = prp->ximage;

View File

@ -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 &notfp_ret; /* error? paranoia */
+
+ if (g.value < 0x50)
+ return NULL; /* nv50+ okay */
+
+ if (g.value & 0xf0 == 0x30)
+ return &notfp_ret; /* nv30 definitely horked */
+
+ g.param = NOUVEAU_GETPARAM_FB_SIZE;
+ if (drmCommandWriteRead(nvfd, DRM_NOUVEAU_GETPARAM, &g, sizeof(g)))
+ return &notfp_ret; /* error? paranoia */
+
+ vram = g.value;
+ if ((vram >> 20) <= 64)
+ return &notfp_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,

View 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

View 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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
%if 0%{?rhel}
%define rhel_no_hw_arches ppc ppc64
%define rhel_no_hw_arches ppc ppc64 ppc64p7
%endif
# S390 doesn't have video cards, but we need swrast for xserver's GLX
@ -7,13 +7,19 @@
%define with_hardware 0
%define dri_drivers --with-dri-drivers=swrast
%else
# llvm is a joke on non-x86
%ifarch %{ix86} x86_64
%define with_llvm 1
%endif
%define with_hardware 1
%define base_drivers nouveau,radeon,r200
%ifarch %{ix86}
%define ix86_drivers ,i915,i965
%define with_vmware 1
%endif
%ifarch x86_64
%define amd64_drivers ,i915,i965
%define with_vmware 1
%endif
%ifarch ia64
%define ia64_drivers ,i915
@ -29,8 +35,8 @@
Summary: Mesa graphics libraries
Name: mesa
Version: 8.0.2
Release: 3%{?dist}
Version: 8.0.4
Release: 1%{?dist}
License: MIT
Group: System Environment/Libraries
URL: http://www.mesa3d.org
@ -45,9 +51,10 @@ Source3: make-git-snapshot.sh
#Patch7: mesa-7.1-link-shared.patch
Patch8: mesa-7.10-llvmcore.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
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
%if %{with_hardware}
@ -68,8 +75,10 @@ BuildRequires: libXmu-devel
BuildRequires: elfutils
BuildRequires: python
%if %{with_hardware}
%if 0%{?with_llvm}
BuildRequires: llvm-devel >= 3.0
%endif
%endif
BuildRequires: libxml2-python
BuildRequires: libudev-devel
BuildRequires: libtalloc-devel
@ -246,6 +255,7 @@ Provides: libwayland-egl-devel
%description libwayland-egl-devel
Mesa libwayland-egl development package
%if 0%{?with_vmware}
%package libxatracker
Summary: Mesa XA state tracker for vmware
Group: System Environment/Libraries
@ -264,6 +274,7 @@ Provides: libxatracker-devel
%description libxatracker-devel
Mesa XA state tracker development package
%endif
%package libglapi
Summary: Mesa shared glapi
@ -280,9 +291,10 @@ Mesa shared glapi
#patch7 -p1 -b .dricore
%patch8 -p1 -b .llvmcore
%patch9 -p1 -b .shmget
%patch10 -p1 -b .intel-hiz-fix
%patch11 -p1 -b .nouveau
%patch12 -p1 -b .16bpp
%patch13 -p1 -b .nouveau-lowmem
%patch14 -p1 -b .nouveau-finish
%patch15 -p1 -b .git
%build
@ -313,9 +325,9 @@ export CXXFLAGS="$RPM_OPT_FLAGS"
--enable-shared-glapi \
--enable-gbm \
%if %{with_hardware}
--with-gallium-drivers=svga,r300,r600,nouveau,swrast \
--enable-gallium-llvm \
--enable-xa \
--with-gallium-drivers=%{?with_vmware:svga,}r300,r600,nouveau,swrast \
%{?with_llvm:--enable-gallium-llvm} \
%{?with_vmware:--enable-xa} \
%else
--disable-gallium-llvm \
--with-gallium-drivers=swrast \
@ -434,8 +446,10 @@ rm -rf $RPM_BUILD_ROOT
%endif
%{_libdir}/dri/nouveau_dri.so
%{_libdir}/dri/nouveau_vieux_dri.so
%if 0%{?with_vmware}
%{_libdir}/dri/vmwgfx_dri.so
%endif
%endif
%{_libdir}/dri/swrast_dri.so
%files -n khrplatform-devel
@ -535,6 +549,7 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libwayland-egl.so
%{_libdir}/pkgconfig/wayland-egl.pc
%if 0%{?with_vmware}
%files libxatracker
%defattr(-,root,root,-)
%doc docs/COPYING
@ -552,8 +567,35 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/xa_context.h
%{_libdir}/pkgconfig/xatracker.pc
%endif
%endif
%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
- Require newer libX11 on F17+

View File

@ -1,2 +1,2 @@
6ae05158e678f4594343f32c2ca50515 gl-manpages-1.0.1.tar.bz2
a368104e5700707048dc3e8691a9a7a1 MesaLib-8.0.2.tar.bz2
d546f988adfdf986cff45b1efa2d8a46 MesaLib-8.0.4.tar.bz2