- radeon: update with fixes for reloc size

This commit is contained in:
Dave Airlie 2008-12-22 02:09:19 +00:00
parent 35753497c3
commit be6d15722d
2 changed files with 30 additions and 25 deletions

View File

@ -1,6 +1,6 @@
diff -up libdrm-2.4.3/configure.ac.radeon libdrm-2.4.3/configure.ac diff -up libdrm-2.4.3/configure.ac.dave libdrm-2.4.3/configure.ac
--- libdrm-2.4.3/configure.ac.radeon 2008-12-19 16:41:39.000000000 +1000 --- libdrm-2.4.3/configure.ac.dave 2008-12-19 14:33:38.000000000 +1000
+++ libdrm-2.4.3/configure.ac 2008-12-19 16:41:41.000000000 +1000 +++ libdrm-2.4.3/configure.ac 2008-12-22 12:05:48.000000000 +1000
@@ -117,6 +117,7 @@ AC_OUTPUT([ @@ -117,6 +117,7 @@ AC_OUTPUT([
Makefile Makefile
libdrm/Makefile libdrm/Makefile
@ -9,9 +9,9 @@ diff -up libdrm-2.4.3/configure.ac.radeon libdrm-2.4.3/configure.ac
shared-core/Makefile shared-core/Makefile
tests/Makefile tests/Makefile
tests/modeprint/Makefile tests/modeprint/Makefile
diff -up libdrm-2.4.3/libdrm/Makefile.am.radeon libdrm-2.4.3/libdrm/Makefile.am diff -up libdrm-2.4.3/libdrm/Makefile.am.dave libdrm-2.4.3/libdrm/Makefile.am
--- libdrm-2.4.3/libdrm/Makefile.am.radeon 2008-12-19 14:33:38.000000000 +1000 --- libdrm-2.4.3/libdrm/Makefile.am.dave 2008-12-19 14:33:38.000000000 +1000
+++ libdrm-2.4.3/libdrm/Makefile.am 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/Makefile.am 2008-12-22 12:05:57.000000000 +1000
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@ -23,7 +23,7 @@ diff -up libdrm-2.4.3/libdrm/Makefile.am.radeon libdrm-2.4.3/libdrm/Makefile.am
libdrm_ladir = $(libdir) libdrm_ladir = $(libdir)
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/Makefile.am diff -up /dev/null libdrm-2.4.3/libdrm/radeon/Makefile.am
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/Makefile.am 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/Makefile.am 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
+# Copyright © 2008 Jérôme Glisse +# Copyright © 2008 Jérôme Glisse
+# +#
@ -56,7 +56,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/Makefile.am
+ $(PTHREADSTUBS_CFLAGS) \ + $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core + -I$(top_srcdir)/shared-core
+ +
+libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la +libdrm_radeon_la_LTLIBRARIES = libdrm-radeon.la
+libdrm_radeon_ladir = $(libdir) +libdrm_radeon_ladir = $(libdir)
+libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined +libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ +libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
@ -75,7 +75,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/Makefile.am
+ radeon_track.h + radeon_track.h
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.c diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.c
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.c 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.c 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,208 @@ @@ -0,0 +1,208 @@
+/* +/*
+ * Copyright © 2008 Dave Airlie + * Copyright © 2008 Dave Airlie
@ -287,7 +287,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.c
+} +}
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.h diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.h
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.h 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+/* +/*
+ * Copyright © 2008 Dave Airlie + * Copyright © 2008 Dave Airlie
@ -331,7 +331,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo_gem.h
+#endif +#endif
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo.h diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo.h
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_bo.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_bo.h 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,167 @@ @@ -0,0 +1,167 @@
+/* +/*
+ * Copyright © 2008 Jérôme Glisse + * Copyright © 2008 Jérôme Glisse
@ -502,8 +502,8 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_bo.h
+#endif +#endif
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,418 @@ @@ -0,0 +1,420 @@
+/* +/*
+ * Copyright © 2008 Jérôme Glisse + * Copyright © 2008 Jérôme Glisse
+ * All Rights Reserved. + * All Rights Reserved.
@ -553,7 +553,9 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
+ uint32_t write_domain; + uint32_t write_domain;
+ uint32_t flags; + uint32_t flags;
+}; +};
+
+#pragma pack() +#pragma pack()
+#define RELOC_SIZE (sizeof(struct cs_reloc_gem) / sizeof(uint32_t))
+ +
+struct cs_gem { +struct cs_gem {
+ struct radeon_cs base; + struct radeon_cs base;
@ -655,7 +657,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
+ } + }
+ /* check if bo is already referenced */ + /* check if bo is already referenced */
+ for(i = 0; i < cs->crelocs; i++) { + for(i = 0; i < cs->crelocs; i++) {
+ idx = i * 6; + idx = i * RELOC_SIZE;
+ reloc = (struct cs_reloc_gem*)&csg->relocs[idx]; + reloc = (struct cs_reloc_gem*)&csg->relocs[idx];
+ if (reloc->handle == bo->handle) { + if (reloc->handle == bo->handle) {
+ /* Check domains must be in read or write. As we check already + /* Check domains must be in read or write. As we check already
@ -690,7 +692,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
+ return -ENOMEM; + return -ENOMEM;
+ } + }
+ csg->relocs_bo = (struct radeon_bo**)tmp; + csg->relocs_bo = (struct radeon_bo**)tmp;
+ size = ((csg->nrelocs + 1) * 6 * 4); + size = ((csg->nrelocs + 1) * RELOC_SIZE * 4);
+ tmp = (uint32_t*)realloc(csg->relocs, size); + tmp = (uint32_t*)realloc(csg->relocs, size);
+ if (tmp == NULL) { + if (tmp == NULL) {
+ return -ENOMEM; + return -ENOMEM;
@ -700,13 +702,13 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
+ csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs; + csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs;
+ } + }
+ csg->relocs_bo[csg->base.crelocs] = bo; + csg->relocs_bo[csg->base.crelocs] = bo;
+ idx = (csg->base.crelocs++) * 6; + idx = (csg->base.crelocs++) * RELOC_SIZE;
+ reloc = (struct cs_reloc_gem*)&csg->relocs[idx]; + reloc = (struct cs_reloc_gem*)&csg->relocs[idx];
+ reloc->handle = bo->handle; + reloc->handle = bo->handle;
+ reloc->read_domain = read_domain; + reloc->read_domain = read_domain;
+ reloc->write_domain = write_domain; + reloc->write_domain = write_domain;
+ reloc->flags = flags; + reloc->flags = flags;
+ csg->chunks[1].length_dw += 6; + csg->chunks[1].length_dw += RELOC_SIZE;
+ radeon_bo_ref(bo); + radeon_bo_ref(bo);
+ cs->relocs_total_size += bo->size; + cs->relocs_total_size += bo->size;
+ cs_gem_write_dword(cs, 0xc0001000); + cs_gem_write_dword(cs, 0xc0001000);
@ -924,7 +926,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.c
+} +}
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.h diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.h
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.h 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
+/* +/*
+ * Copyright © 2008 Nicolai Haehnle + * Copyright © 2008 Nicolai Haehnle
@ -969,7 +971,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs_gem.h
+#endif +#endif
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs.h diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs.h
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_cs.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_cs.h 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,160 @@ @@ -0,0 +1,160 @@
+/* +/*
+ * Copyright © 2008 Nicolai Haehnle + * Copyright © 2008 Nicolai Haehnle
@ -1133,7 +1135,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_cs.h
+#endif +#endif
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.c diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.c
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_track.c 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_track.c 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,140 @@ @@ -0,0 +1,140 @@
+/* +/*
+ * Copyright © 2008 Jérôme Glisse + * Copyright © 2008 Jérôme Glisse
@ -1277,7 +1279,7 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.c
+} +}
diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.h diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.h
--- /dev/null 2008-12-18 14:22:13.823022429 +1000 --- /dev/null 2008-12-18 14:22:13.823022429 +1000
+++ libdrm-2.4.3/libdrm/radeon/radeon_track.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/libdrm/radeon/radeon_track.h 2008-12-22 12:05:48.000000000 +1000
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
+/* +/*
+ * Copyright © 2008 Jérôme Glisse + * Copyright © 2008 Jérôme Glisse
@ -1343,9 +1345,9 @@ diff -up /dev/null libdrm-2.4.3/libdrm/radeon/radeon_track.h
+ FILE *file); + FILE *file);
+ +
+#endif +#endif
diff -up libdrm-2.4.3/shared-core/radeon_drm.h.radeon libdrm-2.4.3/shared-core/radeon_drm.h diff -up libdrm-2.4.3/shared-core/radeon_drm.h.dave libdrm-2.4.3/shared-core/radeon_drm.h
--- libdrm-2.4.3/shared-core/radeon_drm.h.radeon 2008-12-19 14:33:38.000000000 +1000 --- libdrm-2.4.3/shared-core/radeon_drm.h.dave 2008-12-19 14:33:38.000000000 +1000
+++ libdrm-2.4.3/shared-core/radeon_drm.h 2008-12-19 16:41:07.000000000 +1000 +++ libdrm-2.4.3/shared-core/radeon_drm.h 2008-12-22 12:05:48.000000000 +1000
@@ -453,8 +453,18 @@ typedef struct { @@ -453,8 +453,18 @@ typedef struct {
int pfCurrentPage; /* which buffer is being displayed? */ int pfCurrentPage; /* which buffer is being displayed? */
int crtc2_base; /* CRTC2 frame offset */ int crtc2_base; /* CRTC2 frame offset */

View File

@ -3,7 +3,7 @@
Summary: Direct Rendering Manager runtime library Summary: Direct Rendering Manager runtime library
Name: libdrm Name: libdrm
Version: 2.4.3 Version: 2.4.3
Release: 0.1%{?dist} Release: 0.2%{?dist}
License: MIT License: MIT
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://dri.sourceforge.net URL: http://dri.sourceforge.net
@ -101,6 +101,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/libdrm.pc %{_libdir}/pkgconfig/libdrm.pc
%changelog %changelog
* Mon Dec 22 2008 Dave Airlie <airlied@redhat.com> 2.4.3-0.2
- radeon: update with fixes for reloc size
* Fri Dec 19 2008 Dave Airlie <airlied@redhat.com> 2.4.3-0.1 * Fri Dec 19 2008 Dave Airlie <airlied@redhat.com> 2.4.3-0.1
- libdrm: update to upstream master + add radeon patches from modesetting-gem - libdrm: update to upstream master + add radeon patches from modesetting-gem