nouveau: nvc0 (fermi) support + nv10/nv20 g-s fixes
This commit is contained in:
parent
55ddc6593b
commit
8f82e4b6be
33
mesa-7.10-nouveau-classic-libdrm.patch
Normal file
33
mesa-7.10-nouveau-classic-libdrm.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From c43905b6c43ac34bbcb5a9e44414fa500e5cebeb Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Mon, 17 Jan 2011 12:54:27 +1000
|
||||
Subject: [PATCH 3/3] mesa-7.10-nouveau-classic-libdrm
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
src/mesa/drivers/dri/nouveau/nouveau_driver.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.h b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
index 8036b18..c5ac128 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include "nouveau_device.h"
|
||||
-#include "nouveau_pushbuf.h"
|
||||
#include "nouveau_grobj.h"
|
||||
#include "nouveau_channel.h"
|
||||
#include "nouveau_bo.h"
|
||||
@@ -46,6 +45,7 @@
|
||||
#include "nouveau_screen.h"
|
||||
#include "nouveau_state.h"
|
||||
#include "nouveau_surface.h"
|
||||
+#include "nv04_pushbuf.h"
|
||||
|
||||
#define DRIVER_DATE "20091015"
|
||||
#define DRIVER_AUTHOR "Nouveau"
|
||||
--
|
||||
1.7.3.4
|
||||
|
114
mesa-7.10-nouveau-revert.patch
Normal file
114
mesa-7.10-nouveau-revert.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From 20f77c532547c7f8f1cb26f41357037821cf2a9f Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Mon, 17 Jan 2011 12:47:12 +1000
|
||||
Subject: [PATCH 2/3] mesa-7.10-nouveau-revert.patch
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
src/gallium/drivers/nv50/nv50_context.c | 4 ----
|
||||
src/gallium/drivers/nv50/nv50_shader_state.c | 2 +-
|
||||
src/gallium/drivers/nv50/nv50_state.c | 5 ++---
|
||||
src/gallium/drivers/nv50/nv50_vbo.c | 2 +-
|
||||
src/gallium/drivers/nvc0/nvc0_screen.c | 2 +-
|
||||
src/gallium/drivers/nvfx/nvfx_vbo.c | 14 +++++++++++---
|
||||
6 files changed, 16 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_context.c b/src/gallium/drivers/nv50/nv50_context.c
|
||||
index 4f97616..0874cb5 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_context.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_context.c
|
||||
@@ -49,10 +49,6 @@ nv50_destroy(struct pipe_context *pipe)
|
||||
struct nv50_context *nv50 = nv50_context(pipe);
|
||||
int i;
|
||||
|
||||
- for (i = 0; i < nv50->vtxbuf_nr; i++) {
|
||||
- pipe_resource_reference(&nv50->vtxbuf[i].buffer, NULL);
|
||||
- }
|
||||
-
|
||||
for (i = 0; i < 64; i++) {
|
||||
if (!nv50->state.hw[i])
|
||||
continue;
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_shader_state.c b/src/gallium/drivers/nv50/nv50_shader_state.c
|
||||
index 1c1b66d..306aa81 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_shader_state.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_shader_state.c
|
||||
@@ -71,7 +71,7 @@ nv50_transfer_constbuf(struct nv50_context *nv50,
|
||||
map += nr;
|
||||
}
|
||||
|
||||
- pipe_buffer_unmap(pipe, transfer);
|
||||
+ pipe_buffer_unmap(pipe, buf, transfer);
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_state.c b/src/gallium/drivers/nv50/nv50_state.c
|
||||
index b4eda0f..04291e4 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_state.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_state.c
|
||||
@@ -779,9 +779,8 @@ nv50_set_vertex_buffers(struct pipe_context *pipe, unsigned count,
|
||||
{
|
||||
struct nv50_context *nv50 = nv50_context(pipe);
|
||||
|
||||
- util_copy_vertex_buffers(nv50->vtxbuf,
|
||||
- &nv50->vtxbuf_nr,
|
||||
- vb, count);
|
||||
+ memcpy(nv50->vtxbuf, vb, sizeof(*vb) * count);
|
||||
+ nv50->vtxbuf_nr = count;
|
||||
|
||||
nv50->dirty |= NV50_NEW_ARRAYS;
|
||||
}
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c
|
||||
index 53f319a..d41a59d 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_vbo.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_vbo.c
|
||||
@@ -284,7 +284,7 @@ nv50_draw_elements_inline(struct pipe_context *pipe,
|
||||
nzi = TRUE;
|
||||
}
|
||||
|
||||
- pipe_buffer_unmap(pipe, transfer);
|
||||
+ pipe_buffer_unmap(pipe, indexBuffer, transfer);
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
|
||||
index f608b32..e14d4fd 100644
|
||||
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
|
||||
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
|
||||
@@ -110,7 +110,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
case PIPE_CAP_SHADER_STENCIL_EXPORT:
|
||||
return 0;
|
||||
case PIPE_CAP_PRIMITIVE_RESTART:
|
||||
- case PIPE_CAP_INSTANCED_DRAWING:
|
||||
+// case PIPE_CAP_INSTANCED_DRAWING:
|
||||
return 1;
|
||||
default:
|
||||
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
index 01dacb4..1c88f5f 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
@@ -591,10 +591,18 @@ nvfx_set_vertex_buffers(struct pipe_context *pipe, unsigned count,
|
||||
{
|
||||
struct nvfx_context *nvfx = nvfx_context(pipe);
|
||||
|
||||
- util_copy_vertex_buffers(nvfx->vtxbuf,
|
||||
- &nvfx->vtxbuf_nr,
|
||||
- vb, count);
|
||||
+ for(unsigned i = 0; i < count; ++i)
|
||||
+ {
|
||||
+ pipe_resource_reference(&nvfx->vtxbuf[i].buffer, vb[i].buffer);
|
||||
+ nvfx->vtxbuf[i].buffer_offset = vb[i].buffer_offset;
|
||||
+ nvfx->vtxbuf[i].max_index = vb[i].max_index;
|
||||
+ nvfx->vtxbuf[i].stride = vb[i].stride;
|
||||
+ }
|
||||
+
|
||||
+ for(unsigned i = count; i < nvfx->vtxbuf_nr; ++i)
|
||||
+ pipe_resource_reference(&nvfx->vtxbuf[i].buffer, 0);
|
||||
|
||||
+ nvfx->vtxbuf_nr = count;
|
||||
nvfx->use_vertex_buffers = -1;
|
||||
nvfx->draw_dirty |= NVFX_NEW_ARRAYS;
|
||||
}
|
||||
--
|
||||
1.7.3.4
|
||||
|
19963
mesa-7.10-nouveau-updates.patch
Normal file
19963
mesa-7.10-nouveau-updates.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,94 +0,0 @@
|
||||
From 5c102dd94f435e97507213fbd128e50dd15f5f54 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Mon, 20 Dec 2010 13:39:36 +1000
|
||||
Subject: [PATCH] nouveau: fix includes for latest libdrm
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
src/gallium/drivers/nouveau/nouveau_winsys.h | 2 +-
|
||||
src/gallium/drivers/nv50/nv50_surface.c | 2 +-
|
||||
src/gallium/drivers/nvfx/nv04_2d.c | 2 +-
|
||||
src/gallium/drivers/nvfx/nvfx_vbo.c | 3 +--
|
||||
src/mesa/drivers/dri/nouveau/nouveau_driver.h | 2 +-
|
||||
5 files changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/nouveau/nouveau_winsys.h b/src/gallium/drivers/nouveau/nouveau_winsys.h
|
||||
index ab480ca..747b084 100644
|
||||
--- a/src/gallium/drivers/nouveau/nouveau_winsys.h
|
||||
+++ b/src/gallium/drivers/nouveau/nouveau_winsys.h
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "nouveau/nouveau_grobj.h"
|
||||
#include "nouveau/nouveau_notifier.h"
|
||||
#include "nouveau/nouveau_resource.h"
|
||||
-#include "nouveau/nouveau_pushbuf.h"
|
||||
+#include "nouveau/nv04_pushbuf.h"
|
||||
|
||||
#ifndef NV04_PFIFO_MAX_PACKET_LEN
|
||||
#define NV04_PFIFO_MAX_PACKET_LEN 2047
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
|
||||
index ce48022..a99df76 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_surface.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_surface.c
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#define __NOUVEAU_PUSH_H__
|
||||
#include <stdint.h>
|
||||
-#include "nouveau/nouveau_pushbuf.h"
|
||||
+#include "nouveau/nv04_pushbuf.h"
|
||||
#include "nv50_context.h"
|
||||
#include "nv50_resource.h"
|
||||
#include "pipe/p_defines.h"
|
||||
diff --git a/src/gallium/drivers/nvfx/nv04_2d.c b/src/gallium/drivers/nvfx/nv04_2d.c
|
||||
index e0e65e7..e2fadd3 100644
|
||||
--- a/src/gallium/drivers/nvfx/nv04_2d.c
|
||||
+++ b/src/gallium/drivers/nvfx/nv04_2d.c
|
||||
@@ -34,11 +34,11 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <nouveau/nouveau_device.h>
|
||||
-#include <nouveau/nouveau_pushbuf.h>
|
||||
#include <nouveau/nouveau_channel.h>
|
||||
#include <nouveau/nouveau_bo.h>
|
||||
#include <nouveau/nouveau_notifier.h>
|
||||
#include <nouveau/nouveau_grobj.h>
|
||||
+#include <nouveau/nv04_pushbuf.h>
|
||||
#include "nv04_2d.h"
|
||||
|
||||
#include "nouveau/nv_object.xml.h"
|
||||
diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
index 597664e..339b317 100644
|
||||
--- a/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
+++ b/src/gallium/drivers/nvfx/nvfx_vbo.c
|
||||
@@ -9,8 +9,7 @@
|
||||
#include "nvfx_resource.h"
|
||||
|
||||
#include "nouveau/nouveau_channel.h"
|
||||
-
|
||||
-#include "nouveau/nouveau_pushbuf.h"
|
||||
+#include "nouveau/nv04_pushbuf.h"
|
||||
|
||||
static inline unsigned
|
||||
util_guess_unique_indices_count(unsigned mode, unsigned indices)
|
||||
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.h b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
index 8036b18..c5ac128 100644
|
||||
--- a/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
+++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include "nouveau_device.h"
|
||||
-#include "nouveau_pushbuf.h"
|
||||
#include "nouveau_grobj.h"
|
||||
#include "nouveau_channel.h"
|
||||
#include "nouveau_bo.h"
|
||||
@@ -46,6 +45,7 @@
|
||||
#include "nouveau_screen.h"
|
||||
#include "nouveau_state.h"
|
||||
#include "nouveau_surface.h"
|
||||
+#include "nv04_pushbuf.h"
|
||||
|
||||
#define DRIVER_DATE "20091015"
|
||||
#define DRIVER_AUTHOR "Nouveau"
|
||||
--
|
||||
1.7.3.4
|
||||
|
20
mesa.spec
20
mesa.spec
@ -15,7 +15,7 @@
|
||||
Summary: Mesa graphics libraries
|
||||
Name: mesa
|
||||
Version: 7.10
|
||||
Release: 0.22%{?dist}
|
||||
Release: 0.23%{?dist}
|
||||
License: MIT
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.mesa3d.org
|
||||
@ -34,11 +34,18 @@ Patch4: legacy-drivers.patch
|
||||
#Patch7: mesa-7.1-link-shared.patch
|
||||
Patch8: mesa-7.10-llvmcore.patch
|
||||
|
||||
Patch10: mesa-nouveau-libdrm-2_4_24.patch
|
||||
|
||||
Patch30: mesa-7.6-hush-vblank-warning.patch
|
||||
Patch31: mesa-7.10-swrastg.patch
|
||||
|
||||
# nouveau patches
|
||||
#
|
||||
# update nouveau gallium drivers to git as of 20110117, nvc0 support
|
||||
Patch50: mesa-7.10-nouveau-updates.patch
|
||||
# revert various bits to be compatible with 7.10
|
||||
Patch51: mesa-7.10-nouveau-revert.patch
|
||||
# fixup classic drivers to new libdrm api
|
||||
Patch52: mesa-7.10-nouveau-classic-libdrm.patch
|
||||
|
||||
BuildRequires: pkgconfig autoconf automake libtool
|
||||
%if %{with_hardware}
|
||||
BuildRequires: kernel-headers >= 2.6.27-0.305.rc5.git6
|
||||
@ -221,9 +228,11 @@ Requires: Xorg %(xserver-sdk-abi-requires ansic) %(xserver-sdk-abi-requires vide
|
||||
%patch4 -p1 -b .classic
|
||||
#patch7 -p1 -b .dricore
|
||||
%patch8 -p1 -b .llvmcore
|
||||
%patch10 -p1 -b .nv-libdrm
|
||||
%patch30 -p1 -b .vblank-warning
|
||||
#patch31 -p1 -b .swrastg
|
||||
%patch50 -p1 -b .nv-update
|
||||
%patch51 -p1 -b .nv-revert
|
||||
%patch52 -p1 -b .nv-libdrm
|
||||
|
||||
%build
|
||||
|
||||
@ -477,6 +486,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/libOSMesa.so
|
||||
|
||||
%changelog
|
||||
* Thu Jan 20 2011 Ben Skeggs <bskeggs@redhat.com> 7.10-0.23
|
||||
- nouveau: nvc0 (fermi) backport + nv10/nv20 gnome-shell fixes
|
||||
|
||||
* Tue Jan 18 2011 Adam Jackson <ajax@redhat.com> 7.10-0.22
|
||||
- Add -dri-filesystem common subpackage for directory and COPYING
|
||||
- Add -dri-llvmcore subpackage and buildsystem hack
|
||||
|
@ -1,36 +0,0 @@
|
||||
diff -up mesa-20100529/configure.ac.nouveau mesa-20100529/configure.ac
|
||||
--- mesa-20100529/configure.ac.nouveau 2010-05-29 18:57:30.000000000 +1000
|
||||
+++ mesa-20100529/configure.ac 2010-05-29 18:58:24.000000000 +1000
|
||||
@@ -820,20 +820,20 @@ if test "$mesa_driver" = dri; then
|
||||
# x86-64 system where they could *ever* be used.
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
DRI_DIRS="i915 i965 mga r128 r200 r300 r600 radeon \
|
||||
- savage tdfx unichrome swrast"
|
||||
+ savage tdfx unichrome swrast nouveau"
|
||||
fi
|
||||
;;
|
||||
powerpc*)
|
||||
# Build only the drivers for cards that exist on PowerPC.
|
||||
# At some point MGA will be added, but not yet.
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
- DRI_DIRS="r128 r200 r300 r600 radeon tdfx swrast"
|
||||
+ DRI_DIRS="r128 r200 r300 r600 radeon tdfx swrast nouveau"
|
||||
fi
|
||||
;;
|
||||
sparc*)
|
||||
# Build only the drivers for cards that exist on sparc`
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
- DRI_DIRS="r128 r200 r300 r600 radeon swrast"
|
||||
+ DRI_DIRS="r128 r200 r300 r600 radeon swrast nouveau"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -870,7 +870,7 @@ if test "$mesa_driver" = dri; then
|
||||
# default drivers
|
||||
if test "x$DRI_DIRS" = "xyes"; then
|
||||
DRI_DIRS="i810 i915 i965 mga r128 r200 r300 r600 radeon \
|
||||
- savage sis tdfx unichrome swrast"
|
||||
+ savage sis tdfx unichrome swrast nouveau"
|
||||
fi
|
||||
|
||||
DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
|
Loading…
Reference in New Issue
Block a user