summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Baergen <joshuabaergen@gentoo.org>2006-12-07 03:08:42 +0000
committerJoshua Baergen <joshuabaergen@gentoo.org>2006-12-07 03:08:42 +0000
commit8e1e526be11ee85819ca33e651f397d2b4e45cc2 (patch)
tree780809e3140e4b123b957056028e1eb4866bfed0 /media-libs/mesa/files
parentPruned old versions with new versions with same or better keywords. (diff)
downloadgentoo-2-8e1e526be11ee85819ca33e651f397d2b4e45cc2.tar.gz
gentoo-2-8e1e526be11ee85819ca33e651f397d2b4e45cc2.tar.bz2
gentoo-2-8e1e526be11ee85819ca33e651f397d2b4e45cc2.zip
Fix compiling against newer libdrms (2.2.0+). Thanks for Mart Raudsepp for
the discovery of the patch. (Fixes bug #154827) (Portage version: 2.1.2_rc2-r5)
Diffstat (limited to 'media-libs/mesa/files')
-rw-r--r--media-libs/mesa/files/6.5.1-mach64-dri-private-dma-2.patch141
-rw-r--r--media-libs/mesa/files/digest-mesa-6.5.1-r33
2 files changed, 144 insertions, 0 deletions
diff --git a/media-libs/mesa/files/6.5.1-mach64-dri-private-dma-2.patch b/media-libs/mesa/files/6.5.1-mach64-dri-private-dma-2.patch
new file mode 100644
index 000000000000..885ab3eaf16c
--- /dev/null
+++ b/media-libs/mesa/files/6.5.1-mach64-dri-private-dma-2.patch
@@ -0,0 +1,141 @@
+--- src/mesa/drivers/dri/mach64/mach64_ioctl.c 2006-04-01 05:37:38.000000000 +0300
++++ src/mesa/drivers/dri/mach64-tst/mach64_ioctl.c 2006-07-18 19:43:10.000000000 +0300
+@@ -105,7 +105,7 @@ void mach64FlushVerticesLocked( mach64Co
+ int prim = mmesa->hw_primitive;
+ int fd = mmesa->driScreen->fd;
+ drm_mach64_vertex_t vertex;
+- int i, ret;
++ int i;
+
+ mmesa->num_verts = 0;
+ mmesa->vert_used = 0;
+@@ -123,6 +123,9 @@ void mach64FlushVerticesLocked( mach64Co
+ mmesa->dirty |= MACH64_UPLOAD_CLIPRECTS;
+
+ if ( !count || !(mmesa->dirty & MACH64_UPLOAD_CLIPRECTS) ) {
++ int to = 0;
++ int ret;
++
+ /* FIXME: Is this really necessary */
+ if ( nbox == 1 )
+ mmesa->sarea->nbox = 0;
+@@ -133,7 +136,10 @@ void mach64FlushVerticesLocked( mach64Co
+ vertex.buf = buffer;
+ vertex.used = count;
+ vertex.discard = 1;
+- ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drm_mach64_vertex_t) );
++ do {
++ ret = drmCommandWrite( fd, DRM_MACH64_VERTEX,
++ &vertex, sizeof(drm_mach64_vertex_t) );
++ } while ( ( ret == -EAGAIN ) && ( to++ < MACH64_TIMEOUT ) );
+ if ( ret ) {
+ UNLOCK_HARDWARE( mmesa );
+ fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
+@@ -146,6 +152,8 @@ void mach64FlushVerticesLocked( mach64Co
+ int nr = MIN2( i + MACH64_NR_SAREA_CLIPRECTS, nbox );
+ drm_clip_rect_t *b = mmesa->sarea->boxes;
+ int discard = 0;
++ int to = 0;
++ int ret;
+
+ mmesa->sarea->nbox = nr - i;
+ for ( ; i < nr ; i++ ) {
+@@ -164,7 +172,10 @@ void mach64FlushVerticesLocked( mach64Co
+ vertex.buf = buffer;
+ vertex.used = count;
+ vertex.discard = discard;
+- ret = drmCommandWrite( fd, DRM_MACH64_VERTEX, &vertex, sizeof(drm_mach64_vertex_t) );
++ do {
++ ret = drmCommandWrite( fd, DRM_MACH64_VERTEX,
++ &vertex, sizeof(drm_mach64_vertex_t) );
++ } while ( ( ret == -EAGAIN ) && ( to++ < MACH64_TIMEOUT ) );
+ if ( ret ) {
+ UNLOCK_HARDWARE( mmesa );
+ fprintf( stderr, "Error flushing vertex buffer: return = %d\n", ret );
+@@ -180,14 +191,15 @@ void mach64FlushVerticesLocked( mach64Co
+ * Texture uploads
+ */
+
+-void mach64FireBlitLocked( mach64ContextPtr mmesa, drmBufPtr buffer,
++void mach64FireBlitLocked( mach64ContextPtr mmesa, void *buffer,
+ GLint offset, GLint pitch, GLint format,
+ GLint x, GLint y, GLint width, GLint height )
+ {
+ drm_mach64_blit_t blit;
+- GLint ret;
++ int to = 0;
++ int ret;
+
+- blit.idx = buffer->idx;
++ blit.buf = buffer;
+ blit.offset = offset;
+ blit.pitch = pitch;
+ blit.format = format;
+@@ -196,8 +208,10 @@ void mach64FireBlitLocked( mach64Context
+ blit.width = width;
+ blit.height = height;
+
+- ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_BLIT,
+- &blit, sizeof(drm_mach64_blit_t) );
++ do {
++ ret = drmCommandWrite( mmesa->driFd, DRM_MACH64_BLIT,
++ &blit, sizeof(drm_mach64_blit_t) );
++ } while ( ( ret == -EAGAIN ) && ( to++ < MACH64_TIMEOUT ) );
+
+ if ( ret ) {
+ UNLOCK_HARDWARE( mmesa );
+--- src/mesa/drivers/dri/mach64/mach64_ioctl.h 2005-02-01 01:40:05.000000000 +0200
++++ src/mesa/drivers/dri/mach64-tst/mach64_ioctl.h 2006-04-11 18:52:56.000000000 +0300
+@@ -74,7 +74,7 @@ static __inline void *mach64AllocDmaLock
+ return head;
+ }
+
+-extern void mach64FireBlitLocked( mach64ContextPtr mmesa, drmBufPtr buffer,
++extern void mach64FireBlitLocked( mach64ContextPtr mmesa, void *buffer,
+ GLint offset, GLint pitch, GLint format,
+ GLint x, GLint y, GLint width, GLint height );
+
+--- src/mesa/drivers/dri/mach64/mach64_screen.c 2005-10-19 05:46:42.000000000 +0300
++++ src/mesa/drivers/dri/mach64-tst/mach64_screen.c 2006-07-16 04:58:55.000000000 +0300
+@@ -520,7 +520,7 @@ void * __driCreateNewScreen_20050727( __
+ __DRIscreenPrivate *psp;
+ static const __DRIversion ddx_expected = { 6, 4, 0 };
+ static const __DRIversion dri_expected = { 4, 0, 0 };
+- static const __DRIversion drm_expected = { 1, 0, 0 };
++ static const __DRIversion drm_expected = { 2, 0, 0 };
+
+ dri_interface = interface;
+
+--- src/mesa/drivers/dri/mach64/mach64_texmem.c 2004-06-03 01:45:00.000000000 +0300
++++ src/mesa/drivers/dri/mach64-tst/mach64_texmem.c 2006-04-11 18:54:09.000000000 +0300
+@@ -569,27 +569,17 @@ static void mach64UploadLocalSubImage( m
+ remaining > 0 ;
+ remaining -= rows, y += rows, i++ )
+ {
+- drmBufPtr buffer;
+- CARD32 *dst;
+-
+ height = MIN2(remaining, rows);
+
+- /* Grab the dma buffer for the texture blit */
+- buffer = mach64GetBufferLocked( mmesa );
+-
+- dst = (CARD32 *)((char *)buffer->address + MACH64_HOSTDATA_BLIT_OFFSET);
+-
+ assert(image->Data);
+
+ {
+ const GLubyte *src = (const GLubyte *) image->Data +
+ (y * image->Width + x) * image->TexFormat->TexelBytes;
+- const GLuint bytes = width * height * image->TexFormat->TexelBytes;
+- memcpy(dst, src, bytes);
+- }
+
+- mach64FireBlitLocked( mmesa, buffer, offset, pitch, format,
+- x, y, width, height );
++ mach64FireBlitLocked( mmesa, (void *)src, offset, pitch, format,
++ x, y, width, height );
++ }
+
+ }
+
diff --git a/media-libs/mesa/files/digest-mesa-6.5.1-r3 b/media-libs/mesa/files/digest-mesa-6.5.1-r3
new file mode 100644
index 000000000000..45b5cf135d2d
--- /dev/null
+++ b/media-libs/mesa/files/digest-mesa-6.5.1-r3
@@ -0,0 +1,3 @@
+MD5 c46f2c6646a270911b791dd8e1c2d977 MesaLib-6.5.1.tar.bz2 3138257
+RMD160 23f8714787b053b2c41d020c7af211a02e5beab3 MesaLib-6.5.1.tar.bz2 3138257
+SHA256 e2669c9757e37f9073f539d75ced7f8f7a45b6bbb16081929ca2a306cde59df0 MesaLib-6.5.1.tar.bz2 3138257