diff options
Diffstat (limited to 'testing/source/mesa/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch')
-rw-r--r-- | testing/source/mesa/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/testing/source/mesa/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch b/testing/source/mesa/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch new file mode 100644 index 00000000..d0ce04d2 --- /dev/null +++ b/testing/source/mesa/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch @@ -0,0 +1,89 @@ +diff -ur a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c +--- a/src/gallium/drivers/nouveau/nouveau_screen.c 2010-10-02 00:51:28.000000000 +0200 ++++ b/src/gallium/drivers/nouveau/nouveau_screen.c 2010-12-11 18:18:20.527000045 +0100 +@@ -236,7 +236,7 @@ + int ret; + + ret = nouveau_channel_alloc(dev, 0xbeef0201, 0xbeef0202, +- &screen->channel); ++ 512*1024, &screen->channel); + if (ret) + return ret; + screen->device = dev; +diff -ur a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c +--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c 2010-10-05 03:58:00.000000000 +0200 ++++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c 2010-12-11 18:18:20.528000045 +0100 +@@ -129,7 +129,7 @@ + + /* Allocate a hardware channel. */ + ret = nouveau_channel_alloc(context_dev(ctx), 0xbeef0201, 0xbeef0202, +- &nctx->hw.chan); ++ 512*1024, &nctx->hw.chan); + if (ret) { + nouveau_error("Error initializing the FIFO.\n"); + return GL_FALSE; +Nur in b/src/mesa/drivers/dri/nouveau: nouveau_context.c.orig. +diff -ur a/src/mesa/drivers/dri/nouveau/nouveau_surface.c b/src/mesa/drivers/dri/nouveau/nouveau_surface.c +--- a/src/mesa/drivers/dri/nouveau/nouveau_surface.c 2010-04-27 23:41:21.000000000 +0200 ++++ b/src/mesa/drivers/dri/nouveau/nouveau_surface.c 2010-12-11 18:09:19.750000046 +0100 +@@ -34,8 +34,8 @@ + unsigned flags, unsigned format, + unsigned width, unsigned height) + { +- unsigned tile_mode, cpp = _mesa_get_format_bytes(format); +- int ret; ++ unsigned tile_mode = 0, tile_flags = 0; ++ int ret, cpp = _mesa_get_format_bytes(format); + + nouveau_bo_ref(NULL, &s->bo); + +@@ -51,13 +51,21 @@ + if (layout == TILED) { + s->pitch = align(s->pitch, 256); + tile_mode = s->pitch; ++ ++ if (cpp == 4) ++ tile_flags = NOUVEAU_BO_TILE_32BPP; ++ else if (cpp == 2) ++ tile_flags = NOUVEAU_BO_TILE_16BPP; ++ ++ if (_mesa_get_format_bits(format, GL_DEPTH_BITS)) ++ tile_flags |= NOUVEAU_BO_TILE_ZETA; ++ + } else { + s->pitch = align(s->pitch, 64); +- tile_mode = 0; + } + + ret = nouveau_bo_new_tile(context_dev(ctx), flags, 0, s->pitch * height, +- tile_mode, 0, &s->bo); ++ tile_mode, tile_flags, &s->bo); + assert(!ret); + } + +diff -ur a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c +--- a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c 2010-10-05 03:58:00.000000000 +0200 ++++ b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c 2010-12-11 18:18:20.528000045 +0100 +@@ -32,7 +32,7 @@ + + /* Arbitrary pushbuf length we can assume we can get with a single + * WAIT_RING. */ +-#define PUSHBUF_DWORDS 2048 ++#define PUSHBUF_DWORDS 65536 + + /* Functions to set up struct nouveau_array_state from something like + * a GL array or index buffer. */ +diff -ur a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c +--- a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c 2010-10-05 03:58:00.000000000 +0200 ++++ b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c 2010-12-11 18:15:17.756000046 +0100 +@@ -64,8 +64,8 @@ + + if (!nfb->lma_bo || nfb->lma_bo->size != size) { + nouveau_bo_ref(NULL, &nfb->lma_bo); +- nouveau_bo_new(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size, +- &nfb->lma_bo); ++ nouveau_bo_new_tile(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size, ++ 0, NOUVEAU_BO_TILE_ZETA, &nfb->lma_bo); + } + + nouveau_bo_markl(bctx, celsius, NV17TCL_LMA_DEPTH_BUFFER_OFFSET, |