From a0a9a2c6dfea1d6cf0cfb7bed6bd866850198656 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 14 Aug 2009 18:02:13 +0100 Subject: mesa: Update mesa-dri git recipe and add recipe for 7.5 Signed-off-by: Richard Purdie --- meta/packages/mesa/mesa-dri/cross2.patch | 44 ++++++++ meta/packages/mesa/mesa-dri/crossfix.patch | 16 +++ meta/packages/mesa/mesa-dri/i586/matypes.h | 162 +++++++++++++++++++++++++++++ meta/packages/mesa/mesa-dri_7.5.bb | 48 +++++++++ meta/packages/mesa/mesa-dri_git.bb | 23 ++-- 5 files changed, 286 insertions(+), 7 deletions(-) create mode 100644 meta/packages/mesa/mesa-dri/cross2.patch create mode 100644 meta/packages/mesa/mesa-dri/crossfix.patch create mode 100644 meta/packages/mesa/mesa-dri/i586/matypes.h create mode 100644 meta/packages/mesa/mesa-dri_7.5.bb diff --git a/meta/packages/mesa/mesa-dri/cross2.patch b/meta/packages/mesa/mesa-dri/cross2.patch new file mode 100644 index 000000000..3c62a469e --- /dev/null +++ b/meta/packages/mesa/mesa-dri/cross2.patch @@ -0,0 +1,44 @@ +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2009-08-14 16:16:23.000000000 +0100 ++++ git/configure.ac 2009-08-14 16:17:27.000000000 +0100 +@@ -268,15 +268,6 @@ + GLAPI_ASM_SOURCES="" + AC_MSG_CHECKING([whether to enable assembly]) + test "x$enable_asm" = xno && AC_MSG_RESULT([no]) +-# disable if cross compiling on x86/x86_64 since we must run gen_matypes +-if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then +- case "$host_cpu" in +- i?86 | x86_64) +- enable_asm=no +- AC_MSG_RESULT([no, cross compiling]) +- ;; +- esac +-fi + # check for supported arches + if test "x$enable_asm" = xyes; then + case "$host_cpu" in +Index: git/src/mesa/x86/Makefile +=================================================================== +--- git.orig/src/mesa/x86/Makefile 2009-08-14 16:18:23.000000000 +0100 ++++ git/src/mesa/x86/Makefile 2009-08-14 16:19:10.000000000 +0100 +@@ -14,19 +14,6 @@ + -I../tnl + + +-default: gen_matypes matypes.h +- +-clean: +- -rm -f matypes.h gen_matypes +- +- +-gen_matypes: gen_matypes.c +- $(HOST_CC) $(INCLUDE_DIRS) $(HOST_CFLAGS) gen_matypes.c -o gen_matypes +- +-# need some special rules here, unfortunately +-matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes +- ./gen_matypes > matypes.h +- + common_x86_asm.o: matypes.h + 3dnow_normal.o: matypes.h + 3dnow_xform1.o: matypes.h diff --git a/meta/packages/mesa/mesa-dri/crossfix.patch b/meta/packages/mesa/mesa-dri/crossfix.patch new file mode 100644 index 000000000..84be428c4 --- /dev/null +++ b/meta/packages/mesa/mesa-dri/crossfix.patch @@ -0,0 +1,16 @@ +Index: Mesa-7.5/bin/mklib +=================================================================== +--- Mesa-7.5.orig/bin/mklib 2009-08-12 13:01:34.000000000 +0100 ++++ Mesa-7.5/bin/mklib 2009-08-12 13:04:19.000000000 +0100 +@@ -234,9 +234,9 @@ + if [ "x$LINK" = "x" ] ; then + # -linker was not specified so set default link command now + if [ $CPLUSPLUS = 1 ] ; then +- LINK=g++ ++ LINK=$CXX + else +- LINK=gcc ++ LINK=$CC + fi + fi + diff --git a/meta/packages/mesa/mesa-dri/i586/matypes.h b/meta/packages/mesa/mesa-dri/i586/matypes.h new file mode 100644 index 000000000..98d2188e7 --- /dev/null +++ b/meta/packages/mesa/mesa-dri/i586/matypes.h @@ -0,0 +1,162 @@ +/* + * This file is automatically generated from the Mesa internal type + * definitions. Do not edit directly. + */ + +#ifndef __ASM_TYPES_H__ +#define __ASM_TYPES_H__ + + + +/* ============================================================= + * Offsets for GLcontext + */ + +#define CTX_DRIVER_CTX 996 + +#define CTX_LIGHT_ENABLED 39404 +#define CTX_LIGHT_SHADE_MODEL 39408 +#define CTX_LIGHT_COLOR_MAT_FACE 39412 +#define CTX_LIGHT_COLOR_MAT_MODE 39416 +#define CTX_LIGHT_COLOR_MAT_MASK 39420 +#define CTX_LIGHT_COLOR_MAT_ENABLED 39424 +#define CTX_LIGHT_ENABLED_LIST 39432 +#define CTX_LIGHT_NEED_VERTS 43793 +#define CTX_LIGHT_FLAGS 43796 +#define CTX_LIGHT_BASE_COLOR 43800 + + +/* ============================================================= + * Offsets for struct vertex_buffer + */ + +#define VB_SIZE 0 +#define VB_COUNT 4 + +#define VB_ELTS 8 +#define VB_OBJ_PTR 12 +#define VB_EYE_PTR 16 +#define VB_CLIP_PTR 20 +#define VB_PROJ_CLIP_PTR 24 +#define VB_CLIP_OR_MASK 28 +#define VB_CLIP_MASK 32 +#define VB_NORMAL_PTR 36 +#define VB_EDGE_FLAG 44 +#define VB_TEX0_COORD_PTR 48 +#define VB_TEX1_COORD_PTR 52 +#define VB_TEX2_COORD_PTR 56 +#define VB_TEX3_COORD_PTR 60 +#define VB_INDEX_PTR 80 +#define VB_COLOR_PTR 88 +#define VB_SECONDARY_COLOR_PTR 96 +#define VB_FOG_COORD_PTR 104 +#define VB_PRIMITIVE 108 + + +/* + * Flags for struct vertex_buffer + */ + +#define VERT_BIT_OBJ 0x1 +#define VERT_BIT_NORM 0x4 +#define VERT_BIT_RGBA 0x8 +#define VERT_BIT_SPEC_RGB 0x10 +#define VERT_BIT_FOG_COORD 0x20 +#define VERT_BIT_TEX0 0x100 +#define VERT_BIT_TEX1 0x200 +#define VERT_BIT_TEX2 0x400 +#define VERT_BIT_TEX3 0x800 + + +/* ============================================================= + * Offsets for GLvector4f + */ + +#define V4F_DATA 0 +#define V4F_START 4 +#define V4F_COUNT 8 +#define V4F_STRIDE 12 +#define V4F_SIZE 16 +#define V4F_FLAGS 20 + +/* + * Flags for GLvector4f + */ + +#define VEC_MALLOC 0x10 +#define VEC_NOT_WRITEABLE 0x40 +#define VEC_BAD_STRIDE 0x100 + +#define VEC_SIZE_1 0x1 +#define VEC_SIZE_2 0x3 +#define VEC_SIZE_3 0x7 +#define VEC_SIZE_4 0xf + + +/* ============================================================= + * Offsets for GLmatrix + */ + +#define MATRIX_DATA 0 +#define MATRIX_INV 4 +#define MATRIX_FLAGS 8 +#define MATRIX_TYPE 12 + + +/* ============================================================= + * Offsets for struct gl_light + */ + +#define LIGHT_NEXT 0 +#define LIGHT_PREV 4 + +#define LIGHT_AMBIENT 8 +#define LIGHT_DIFFUSE 24 +#define LIGHT_SPECULAR 40 +#define LIGHT_EYE_POSITION 56 +#define LIGHT_SPOT_DIRECTION 72 +#define LIGHT_SPOT_EXPONENT 88 +#define LIGHT_SPOT_CUTOFF 92 +#define LIGHT_COS_CUTOFF 100 +#define LIGHT_CONST_ATTEN 104 +#define LIGHT_LINEAR_ATTEN 108 +#define LIGHT_QUADRATIC_ATTEN 112 +#define LIGHT_ENABLED 116 + +#define LIGHT_FLAGS 120 + +#define LIGHT_POSITION 124 +#define LIGHT_VP_INF_NORM 140 +#define LIGHT_H_INF_NORM 152 +#define LIGHT_NORM_DIRECTION 164 +#define LIGHT_VP_INF_SPOT_ATTEN 180 + +#define LIGHT_SPOT_EXP_TABLE 184 +#define LIGHT_MAT_AMBIENT 4280 +#define LIGHT_MAT_DIFFUSE 4304 +#define LIGHT_MAT_SPECULAR 4328 + +#define SIZEOF_GL_LIGHT 4360 + +/* + * Flags for struct gl_light + */ + +#define LIGHT_SPOT 0x1 +#define LIGHT_LOCAL_VIEWER 0x2 +#define LIGHT_POSITIONAL 0x4 + +#define LIGHT_NEED_VERTICES 0x6 + + +/* ============================================================= + * Offsets for struct gl_lightmodel + */ + +#define LIGHT_MODEL_AMBIENT 0 +#define LIGHT_MODEL_LOCAL_VIEWER 16 +#define LIGHT_MODEL_TWO_SIDE 17 +#define LIGHT_MODEL_COLOR_CONTROL 20 + + +#endif /* __ASM_TYPES_H__ */ diff --git a/meta/packages/mesa/mesa-dri_7.5.bb b/meta/packages/mesa/mesa-dri_7.5.bb new file mode 100644 index 000000000..8b5fa7bc9 --- /dev/null +++ b/meta/packages/mesa/mesa-dri_7.5.bb @@ -0,0 +1,48 @@ +include mesa-common.inc + +SRC_URI += "file://crossfix.patch;patch=1 \ + file://mesa-DRI2Swapbuffer.patch;patch=1 " + +PROTO_DEPS = "xf86driproto glproto dri2proto" +LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat" + +DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" + +PR = "r10" + +# most of our targets do not have DRI so will use mesa-xlib +DEFAULT_PREFERENCE = "-1" + +# Netbooks have DRI support so use mesa-dri by default +DEFAULT_PREFERENCE_netbook = "1" + +PACKAGES =+ "${PN}-xprogs" +PACKAGES_DYNAMIC = "mesa-dri-driver-*" + +FILES_${PN}-dbg += "${libdir}/dri/.debug/*" +FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo" + +LEAD_SONAME = "libGL.so.1" + +EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium" + +do_install_append () { + install -d ${D}/usr/bin + install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/ +} + +python populate_packages_prepend() { + import os.path + + dri_drivers_root = os.path.join(bb.data.getVar('libdir', d, 1), "dri") + + do_split_packages(d, dri_drivers_root, '^(.*)_dri\.so$', 'mesa-dri-driver-%s', 'Mesa %s DRI driver', extra_depends='') +} + +COMPATIBLE_HOST = '(i.86.*-linux)' + + +# +# Header generated by i586-poky-linux-gcc gen_matypes.c -o gen_matypes -I ../../../include/GL -I ../../../include -I .. -I ../main/ -I ../math -I ../glapi/ -I ../tnl +# then run gen_matypes > matypes.h on device +# \ No newline at end of file diff --git a/meta/packages/mesa/mesa-dri_git.bb b/meta/packages/mesa/mesa-dri_git.bb index 65a4a0365..a316d580e 100644 --- a/meta/packages/mesa/mesa-dri_git.bb +++ b/meta/packages/mesa/mesa-dri_git.bb @@ -1,12 +1,18 @@ include mesa-common.inc +SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git;branch=mesa_7_5_branch \ + file://cross2.patch;patch=1 \ + file://matypes.h" +# file://mesa-DRI2Swapbuffer.patch;patch=1 " +S = "${WORKDIR}/git" + PROTO_DEPS = "xf86driproto glproto dri2proto" LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat" DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" -PV = "7.4+git${SRCPV}" -PR = "r4" +PV = "7.5+git${SRCPV}" +PR = "r14" # most of our targets do not have DRI so will use mesa-xlib DEFAULT_PREFERENCE = "-1" @@ -14,21 +20,24 @@ DEFAULT_PREFERENCE = "-1" # Netbooks have DRI support so use mesa-dri by default DEFAULT_PREFERENCE_netbook = "1" -SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git;branch=master" -S = "${WORKDIR}/git" - PACKAGES =+ "${PN}-xprogs" PACKAGES_DYNAMIC = "mesa-dri-driver-*" FILES_${PN}-dbg += "${libdir}/dri/.debug/*" FILES_${PN}-xprogs = "${bindir}/glxdemo ${bindir}/glxgears ${bindir}/glxheads ${bindir}/glxinfo" -EXTRA_OECONF += "--with-driver=dri --with-state-trackers=glx" +LEAD_SONAME = "libGL.so.1" + +EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium" + +do_configure_prepend () { + cp ${WORKDIR}/matypes.h ${S}/src/mesa/x86 + touch ${S}/src/mesa/x86/matypes.h +} do_install_append () { install -d ${D}/usr/bin install -m 0755 ${S}/progs/xdemos/{glxdemo,glxgears,glxheads,glxinfo} ${D}/usr/bin/ - rm ${D}/usr/lib/libEGL* || /bin/true } python populate_packages_prepend() { -- cgit v1.2.3