Makefile | 9 bin/mklib | 28 configure.ac | 49 debian/changelog | 34 debian/patches/103_bump_965_texture_limit.diff | 33 debian/patches/103_rs600_support.patch | 65 debian/patches/104_fix_dri2_ext_tfp.diff | 337 +++ debian/patches/110_fix_intel_965_atunnel_rendering_glitch.diff | 204 -- debian/patches/series | 4 debian/rules | 15 debian/watch | 1 docs/download.html | 4 docs/news.html | 7 docs/relnotes-7.3.html | 12 docs/relnotes-7.4.html | 81 docs/relnotes.html | 1 docs/xlibdriver.html | 16 include/GL/gl.h | 2 include/GL/gl_mangle.h | 298 +++ include/GL/glext.h | 130 + progs/glsl/multitex.c | 88 - progs/glsl/multitex.vert | 10 progs/util/extfuncs.h | 15 progs/xdemos/Makefile | 2 progs/xdemos/glxgears.c | 74 progs/xdemos/glxpixmap.c | 1 progs/xdemos/manywin.c | 2 src/glx/x11/dri2_glx.c | 61 src/glx/x11/dri_glx.c | 2 src/glx/x11/glxclient.h | 2 src/glx/x11/glxcmds.c | 24 src/glx/x11/indirect_vertex_program.c | 4 src/glx/x11/pixelstore.c | 4 src/mesa/drivers/dri/common/texmem.c | 10 src/mesa/drivers/dri/gamma/gamma_tex.c | 8 src/mesa/drivers/dri/i915/Makefile | 2 src/mesa/drivers/dri/i915/i915_state.c | 71 src/mesa/drivers/dri/i915/intel_clear.c | 1 src/mesa/drivers/dri/i915/intel_state.c | 64 src/mesa/drivers/dri/i915/intel_swapbuffers.c | 1 src/mesa/drivers/dri/i915/intel_tris.c | 4 src/mesa/drivers/dri/i965/Makefile | 3 src/mesa/drivers/dri/i965/brw_cc.c | 67 src/mesa/drivers/dri/i965/brw_clip.c | 40 src/mesa/drivers/dri/i965/brw_clip_line.c | 66 src/mesa/drivers/dri/i965/brw_clip_tri.c | 76 src/mesa/drivers/dri/i965/brw_context.c | 29 src/mesa/drivers/dri/i965/brw_context.h | 51 src/mesa/drivers/dri/i965/brw_curbe.c | 15 src/mesa/drivers/dri/i965/brw_draw.c | 85 src/mesa/drivers/dri/i965/brw_eu.c | 123 + src/mesa/drivers/dri/i965/brw_eu.h | 18 src/mesa/drivers/dri/i965/brw_fallback.c | 16 src/mesa/drivers/dri/i965/brw_metaops.c | 583 ------ src/mesa/drivers/dri/i965/brw_misc_state.c | 59 src/mesa/drivers/dri/i965/brw_sf.c | 22 src/mesa/drivers/dri/i965/brw_sf_emit.c | 32 src/mesa/drivers/dri/i965/brw_sf_state.c | 71 src/mesa/drivers/dri/i965/brw_state_upload.c | 10 src/mesa/drivers/dri/i965/brw_tex.c | 3 src/mesa/drivers/dri/i965/brw_vs.c | 14 src/mesa/drivers/dri/i965/brw_vs.h | 1 src/mesa/drivers/dri/i965/brw_vs_constval.c | 3 src/mesa/drivers/dri/i965/brw_vs_emit.c | 88 - src/mesa/drivers/dri/i965/brw_vs_state.c | 4 src/mesa/drivers/dri/i965/brw_vtbl.c | 1 src/mesa/drivers/dri/i965/brw_wm.c | 50 src/mesa/drivers/dri/i965/brw_wm.h | 15 src/mesa/drivers/dri/i965/brw_wm_debug.c | 3 src/mesa/drivers/dri/i965/brw_wm_emit.c | 32 src/mesa/drivers/dri/i965/brw_wm_fp.c | 208 +- src/mesa/drivers/dri/i965/brw_wm_glsl.c | 138 + src/mesa/drivers/dri/i965/brw_wm_pass0.c | 14 src/mesa/drivers/dri/i965/brw_wm_pass1.c | 1 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 30 src/mesa/drivers/dri/i965/brw_wm_state.c | 18 src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 14 src/mesa/drivers/dri/i965/intel_clear.c | 1 src/mesa/drivers/dri/i965/intel_state.c | 42 src/mesa/drivers/dri/i965/intel_swapbuffers.c | 1 src/mesa/drivers/dri/intel/intel_blit.c | 2 src/mesa/drivers/dri/intel/intel_buffers.c | 418 ---- src/mesa/drivers/dri/intel/intel_buffers.h | 7 src/mesa/drivers/dri/intel/intel_chipset.h | 11 src/mesa/drivers/dri/intel/intel_clear.c | 393 ++++ src/mesa/drivers/dri/intel/intel_clear.h | 38 src/mesa/drivers/dri/intel/intel_context.c | 49 src/mesa/drivers/dri/intel/intel_context.h | 10 src/mesa/drivers/dri/intel/intel_decode.c | 47 src/mesa/drivers/dri/intel/intel_fbo.c | 3 src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 6 src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 3 src/mesa/drivers/dri/intel/intel_pixel.c | 9 src/mesa/drivers/dri/intel/intel_pixel.h | 2 src/mesa/drivers/dri/intel/intel_pixel_bitmap.c | 1 src/mesa/drivers/dri/intel/intel_pixel_draw.c | 26 src/mesa/drivers/dri/intel/intel_regions.c | 12 src/mesa/drivers/dri/intel/intel_regions.h | 3 src/mesa/drivers/dri/intel/intel_screen.c | 5 src/mesa/drivers/dri/intel/intel_screen.h | 9 src/mesa/drivers/dri/intel/intel_swapbuffers.c | 243 ++ src/mesa/drivers/dri/intel/intel_swapbuffers.h | 52 src/mesa/drivers/dri/intel/intel_tex_copy.c | 3 src/mesa/drivers/dri/intel/intel_tex_image.c | 19 src/mesa/drivers/dri/intel/intel_tex_validate.c | 3 src/mesa/drivers/dri/mga/mga_texstate.c | 8 src/mesa/drivers/dri/r300/r300_render.c | 16 src/mesa/drivers/dri/r300/r300_state.c | 42 src/mesa/drivers/dri/r300/r300_swtcl.c | 4 src/mesa/drivers/dri/radeon/radeon_chipset.h | 4 src/mesa/drivers/dri/radeon/radeon_screen.c | 10 src/mesa/drivers/dri/s3v/s3v_tex.c | 8 src/mesa/drivers/dri/swrast/swrast.c | 76 src/mesa/drivers/dri/swrast/swrast_priv.h | 10 src/mesa/drivers/dri/swrast/swrast_span.c | 72 src/mesa/drivers/dri/tdfx/tdfx_dd.c | 8 src/mesa/drivers/x11/fakeglx.c | 45 src/mesa/drivers/x11/glxapi.c | 5 src/mesa/drivers/x11/xm_api.c | 6 src/mesa/drivers/x11/xm_buffer.c | 1 src/mesa/glapi/glapi_getproc.c | 8 src/mesa/glapi/glthread.h | 12 src/mesa/main/api_validate.c | 15 src/mesa/main/attrib.c | 41 src/mesa/main/bufferobj.c | 20 src/mesa/main/buffers.c | 5 src/mesa/main/config.h | 2 src/mesa/main/context.c | 83 src/mesa/main/dlopen.c | 9 src/mesa/main/enable.c | 7 src/mesa/main/execmem.c | 2 src/mesa/main/extensions.c | 8 src/mesa/main/framebuffer.c | 1 src/mesa/main/get.c | 42 src/mesa/main/get_gen.py | 14 src/mesa/main/getstring.c | 13 src/mesa/main/hash.c | 2 src/mesa/main/imports.c | 15 src/mesa/main/imports.h | 6 src/mesa/main/mtypes.h | 68 src/mesa/main/state.c | 95 - src/mesa/main/stencil.c | 102 - src/mesa/main/texenv.c | 339 +-- src/mesa/main/texformat_tmp.h | 8 src/mesa/main/teximage.c | 19 src/mesa/main/texobj.c | 129 - src/mesa/main/texparam.c | 857 +++++----- src/mesa/main/texrender.c | 54 src/mesa/main/texstate.c | 121 - src/mesa/main/version.h | 6 src/mesa/shader/prog_instruction.h | 16 src/mesa/shader/prog_print.c | 13 src/mesa/shader/program.c | 9 src/mesa/shader/shader_api.c | 271 ++- src/mesa/shader/slang/slang_codegen.c | 4 src/mesa/shader/slang/slang_compile.c | 2 src/mesa/shader/slang/slang_emit.c | 63 src/mesa/shader/slang/slang_link.c | 38 src/mesa/shader/slang/slang_vartable.c | 59 src/mesa/swrast/s_fragprog.c | 54 src/mesa/swrast/s_span.c | 12 src/mesa/swrast/s_stencil.c | 6 src/mesa/swrast/s_triangle.c | 21 src/mesa/tnl/t_context.c | 14 src/mesa/vbo/vbo_exec_api.c | 5 src/mesa/vbo/vbo_exec_draw.c | 13 src/mesa/vbo/vbo_save_draw.c | 18 src/mesa/x86/gen_matypes.c | 4 168 files changed, 4897 insertions(+), 3344 deletions(-)
New commits: commit c81a66829b8aad65452186ae1306e77e03c8bdb6 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Fri Apr 3 12:42:20 2009 +0300 Release 7.4-0ubuntu1 close a couple of bugs too. diff --git a/debian/changelog b/debian/changelog index 50094a2..4c19f71 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,12 +1,13 @@ -mesa (7.4-0ubuntu1) UNRELEASED; urgency=low +mesa (7.4-0ubuntu1) jaunty; urgency=low - * New upstream release, merge from debian-experimental (LP: #330476) + * New upstream release, merge from debian-experimental + (LP: #330476, #347171, #349127) * Drop 103_rs600_support.patch, included in this version. * Drop 104_swrast_fbconfigs.patch, included in this version. * Add 103_bump_965_texture_limit.diff. (LP: #146298) * Add 104_fix_dri2_ext_tfp.diff. (LP: #324854) - -- Timo Aaltonen <tjaal...@ubuntu.com> Mon, 30 Mar 2009 10:47:38 +0300 + -- Timo Aaltonen <tjaal...@ubuntu.com> Fri, 03 Apr 2009 12:42:06 +0300 mesa (7.4~rc1-1) experimental; urgency=low commit 34a2b141da04ed1e15ee623f8e7576374ca31ff3 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Fri Apr 3 11:51:31 2009 +0300 Add 104_fix_dri2_ext_tfp.diff. (LP: #324854) diff --git a/debian/changelog b/debian/changelog index 1b9be7e..50094a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ mesa (7.4-0ubuntu1) UNRELEASED; urgency=low * Drop 103_rs600_support.patch, included in this version. * Drop 104_swrast_fbconfigs.patch, included in this version. * Add 103_bump_965_texture_limit.diff. (LP: #146298) + * Add 104_fix_dri2_ext_tfp.diff. (LP: #324854) -- Timo Aaltonen <tjaal...@ubuntu.com> Mon, 30 Mar 2009 10:47:38 +0300 diff --git a/debian/patches/104_fix_dri2_ext_tfp.diff b/debian/patches/104_fix_dri2_ext_tfp.diff new file mode 100644 index 0000000..75cad56 --- /dev/null +++ b/debian/patches/104_fix_dri2_ext_tfp.diff @@ -0,0 +1,337 @@ +Index: mesa/include/GL/internal/dri_interface.h +=================================================================== +--- mesa.orig/include/GL/internal/dri_interface.h 2009-01-25 17:28:10.000000000 +0200 ++++ mesa/include/GL/internal/dri_interface.h 2009-04-03 11:45:43.000000000 +0300 +@@ -230,7 +230,7 @@ + + + #define __DRI_TEX_BUFFER "DRI_TexBuffer" +-#define __DRI_TEX_BUFFER_VERSION 1 ++#define __DRI_TEX_BUFFER_VERSION 2 + struct __DRItexBufferExtensionRec { + __DRIextension base; + +@@ -238,11 +238,23 @@ + * Method to override base texture image with the contents of a + * __DRIdrawable. + * +- * For GLX_EXT_texture_from_pixmap with AIGLX. ++ * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of ++ * setTexBuffer2 in version 2 of this interface + */ + void (*setTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + __DRIdrawable *pDraw); ++ ++ /** ++ * Method to override base texture image with the contents of a ++ * __DRIdrawable, including the required texture format attribute. ++ * ++ * For GLX_EXT_texture_from_pixmap with AIGLX. ++ */ ++ void (*setTexBuffer2)(__DRIcontext *pDRICtx, ++ GLint target, ++ GLint format, ++ __DRIdrawable *pDraw); + }; + + +Index: mesa/include/GL/internal/glcore.h +=================================================================== +--- mesa.orig/include/GL/internal/glcore.h 2009-01-16 21:37:10.000000000 +0200 ++++ mesa/include/GL/internal/glcore.h 2009-04-03 11:45:43.000000000 +0300 +@@ -176,4 +176,8 @@ + #define GLX_TEXTURE_2D_BIT_EXT 0x00000002 + #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 + ++#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 ++#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 ++#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA ++ + #endif /* __gl_core_h_ */ +Index: mesa/src/glx/x11/glx_pbuffer.c +=================================================================== +--- mesa.orig/src/glx/x11/glx_pbuffer.c 2009-01-16 23:12:40.000000000 +0200 ++++ mesa/src/glx/x11/glx_pbuffer.c 2009-04-03 11:45:43.000000000 +0300 +@@ -189,6 +189,21 @@ + + return target; + } ++ ++ ++static GLenum ++determineTextureFormat(const int *attribs, int numAttribs) ++{ ++ GLenum target = 0; ++ int i; ++ ++ for (i = 0; i < numAttribs; i++) { ++ if (attribs[2 * i] == GLX_TEXTURE_FORMAT_EXT) ++ return attribs[2 * i + 1]; ++ } ++ ++ return 0; ++} + #endif + + /** +@@ -294,6 +309,9 @@ + if (pdraw != NULL && !pdraw->textureTarget) + pdraw->textureTarget = + determineTextureTarget((const int *) data, num_attributes); ++ if (pdraw != NULL && !pdraw->textureFormat) ++ pdraw->textureFormat = ++ determineTextureFormat((const int *) data, num_attributes); + } + #endif + +@@ -374,6 +392,7 @@ + } + + pdraw->textureTarget = determineTextureTarget(attrib_list, i); ++ pdraw->textureFormat = determineTextureFormat(attrib_list, i); + } while (0); + #endif + +Index: mesa/src/glx/x11/glxclient.h +=================================================================== +--- mesa.orig/src/glx/x11/glxclient.h 2009-03-30 10:47:17.000000000 +0300 ++++ mesa/src/glx/x11/glxclient.h 2009-04-03 11:45:43.000000000 +0300 +@@ -161,6 +161,7 @@ + __GLXscreenConfigs *psc; + GLenum textureTarget; + __DRIdrawable *driDrawable; ++ GLenum textureFormat; /* EXT_texture_from_pixmap support */ + }; + + /* +Index: mesa/src/glx/x11/glxcmds.c +=================================================================== +--- mesa.orig/src/glx/x11/glxcmds.c 2009-03-30 10:34:15.000000000 +0300 ++++ mesa/src/glx/x11/glxcmds.c 2009-04-03 11:45:43.000000000 +0300 +@@ -2631,11 +2631,19 @@ + if (gc->driContext) { + __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); + +- if (pdraw != NULL) +- (*pdraw->psc->texBuffer->setTexBuffer)(gc->__driContext, +- pdraw->textureTarget, +- pdraw->driDrawable); +- ++ if (pdraw != NULL) { ++ if (pdraw->psc->texBuffer->base.version >= 2 && ++ pdraw->psc->texBuffer->setTexBuffer2 != NULL) { ++ (*pdraw->psc->texBuffer->setTexBuffer2)(gc->__driContext, ++ pdraw->textureTarget, ++ pdraw->textureFormat, ++ pdraw->driDrawable); ++ } else { ++ (*pdraw->psc->texBuffer->setTexBuffer)(gc->__driContext, ++ pdraw->textureTarget, ++ pdraw->driDrawable); ++ } ++ } + return; + } + #endif +Index: mesa/src/mesa/drivers/dri/i915/i830_texstate.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/i915/i830_texstate.c 2009-01-16 21:37:10.000000000 +0200 ++++ mesa/src/mesa/drivers/dri/i915/i830_texstate.c 2009-04-03 11:45:43.000000000 +0300 +@@ -38,7 +38,7 @@ + + + static GLuint +-translate_texture_format(GLuint mesa_format) ++translate_texture_format(GLuint mesa_format, GLuint internal_format) + { + switch (mesa_format) { + case MESA_FORMAT_L8: +@@ -56,7 +56,10 @@ + case MESA_FORMAT_ARGB4444: + return MAPSURF_16BIT | MT_16BIT_ARGB4444; + case MESA_FORMAT_ARGB8888: +- return MAPSURF_32BIT | MT_32BIT_ARGB8888; ++ if (internal_format == GL_RGB) ++ return MAPSURF_32BIT | MT_32BIT_XRGB8888; ++ else ++ return MAPSURF_32BIT | MT_32BIT_ARGB8888; + case MESA_FORMAT_YCBCR_REV: + return (MAPSURF_422 | MT_422_YCRCB_NORMAL); + case MESA_FORMAT_YCBCR: +@@ -162,7 +165,8 @@ + 0, intelObj-> + firstLevel); + +- format = translate_texture_format(firstImage->TexFormat->MesaFormat); ++ format = translate_texture_format(firstImage->TexFormat->MesaFormat, ++ firstImage->InternalFormat); + pitch = intelObj->mt->pitch * intelObj->mt->cpp; + } + +Index: mesa/src/mesa/drivers/dri/i915/i915_texstate.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/i915/i915_texstate.c 2009-01-16 21:40:22.000000000 +0200 ++++ mesa/src/mesa/drivers/dri/i915/i915_texstate.c 2009-04-03 11:45:43.000000000 +0300 +@@ -37,7 +37,8 @@ + + + static GLuint +-translate_texture_format(GLuint mesa_format, GLenum DepthMode) ++translate_texture_format(GLuint mesa_format, GLuint internal_format, ++ GLenum DepthMode) + { + switch (mesa_format) { + case MESA_FORMAT_L8: +@@ -55,7 +56,10 @@ + case MESA_FORMAT_ARGB4444: + return MAPSURF_16BIT | MT_16BIT_ARGB4444; + case MESA_FORMAT_ARGB8888: +- return MAPSURF_32BIT | MT_32BIT_ARGB8888; ++ if (internal_format == GL_RGB) ++ return MAPSURF_32BIT | MT_32BIT_XRGB8888; ++ else ++ return MAPSURF_32BIT | MT_32BIT_ARGB8888; + case MESA_FORMAT_YCBCR_REV: + return (MAPSURF_422 | MT_422_YCRCB_NORMAL); + case MESA_FORMAT_YCBCR: +@@ -173,7 +177,8 @@ + firstLevel); + + format = translate_texture_format(firstImage->TexFormat->MesaFormat, +- tObj->DepthMode); ++ firstImage->InternalFormat, ++ tObj->DepthMode); + pitch = intelObj->mt->pitch * intelObj->mt->cpp; + } + +Index: mesa/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/i965/brw_wm_surface_state.c 2009-03-30 10:34:15.000000000 +0300 ++++ mesa/src/mesa/drivers/dri/i965/brw_wm_surface_state.c 2009-04-03 11:45:43.000000000 +0300 +@@ -69,7 +69,8 @@ + } + + +-static GLuint translate_tex_format( GLuint mesa_format, GLenum depth_mode ) ++static GLuint translate_tex_format( GLuint mesa_format, GLenum internal_format, ++ GLenum depth_mode ) + { + switch( mesa_format ) { + case MESA_FORMAT_L8: +@@ -89,10 +90,16 @@ + return BRW_SURFACEFORMAT_R8G8B8_UNORM; + + case MESA_FORMAT_ARGB8888: +- return BRW_SURFACEFORMAT_B8G8R8A8_UNORM; ++ if (internal_format == GL_RGB) ++ return BRW_SURFACEFORMAT_B8G8R8X8_UNORM; ++ else ++ return BRW_SURFACEFORMAT_B8G8R8A8_UNORM; + + case MESA_FORMAT_RGBA8888_REV: +- return BRW_SURFACEFORMAT_R8G8B8A8_UNORM; ++ if (internal_format == GL_RGB) ++ return BRW_SURFACEFORMAT_R8G8B8X8_UNORM; ++ else ++ return BRW_SURFACEFORMAT_R8G8B8A8_UNORM; + + case MESA_FORMAT_RGB565: + return BRW_SURFACEFORMAT_B5G6R5_UNORM; +@@ -150,7 +157,7 @@ + struct brw_wm_surface_key { + GLenum target, depthmode; + dri_bo *bo; +- GLint format; ++ GLint format, internal_format; + GLint first_level, last_level; + GLint width, height, depth; + GLint pitch, cpp; +@@ -188,9 +195,11 @@ + + surf.ss0.mipmap_layout_mode = BRW_SURFACE_MIPMAPLAYOUT_BELOW; + surf.ss0.surface_type = translate_tex_target(key->target); +- +- if (key->bo) +- surf.ss0.surface_format = translate_tex_format(key->format, key->depthmode); ++ if (key->bo) { ++ surf.ss0.surface_format = translate_tex_format(key->format, ++ key->internal_format, ++ key->depthmode); ++ } + else { + switch (key->depth) { + case 32: +@@ -267,6 +276,7 @@ + key.offset = intelObj->textureOffset; + } else { + key.format = firstImage->TexFormat->MesaFormat; ++ key.internal_format = firstImage->InternalFormat; + key.pitch = intelObj->mt->pitch; + key.depth = firstImage->Depth; + key.bo = intelObj->mt->region->buffer; +Index: mesa/src/mesa/drivers/dri/intel/intel_screen.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/intel/intel_screen.c 2009-04-03 11:45:43.000000000 +0300 ++++ mesa/src/mesa/drivers/dri/intel/intel_screen.c 2009-04-03 11:45:43.000000000 +0300 +@@ -210,6 +210,7 @@ + static const __DRItexBufferExtension intelTexBufferExtension = { + { __DRI_TEX_BUFFER, __DRI_TEX_BUFFER_VERSION }, + intelSetTexBuffer, ++ intelSetTexBuffer2, + }; + + static const __DRIextension *intelScreenExtensions[] = { +Index: mesa/src/mesa/drivers/dri/intel/intel_tex.h +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/intel/intel_tex.h 2009-01-16 21:40:22.000000000 +0200 ++++ mesa/src/mesa/drivers/dri/intel/intel_tex.h 2009-04-03 11:45:43.000000000 +0300 +@@ -149,6 +149,8 @@ + unsigned long long offset, GLint depth, GLuint pitch); + void intelSetTexBuffer(__DRIcontext *pDRICtx, + GLint target, __DRIdrawable *pDraw); ++void intelSetTexBuffer2(__DRIcontext *pDRICtx, ++ GLint target, GLint format, __DRIdrawable *pDraw); + + GLuint intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit); + +Index: mesa/src/mesa/drivers/dri/intel/intel_tex_image.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/intel/intel_tex_image.c 2009-03-30 10:34:15.000000000 +0300 ++++ mesa/src/mesa/drivers/dri/intel/intel_tex_image.c 2009-04-03 11:45:43.000000000 +0300 +@@ -712,7 +712,9 @@ + } + + void +-intelSetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *dPriv) ++intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, ++ GLint glx_texture_format, ++ __DRIdrawable *dPriv) + { + struct intel_framebuffer *intel_fb = dPriv->driverPrivate; + struct intel_context *intel = pDRICtx->driverPrivate; +@@ -743,7 +745,10 @@ + + type = GL_BGRA; + format = GL_UNSIGNED_BYTE; +- internalFormat = (rb->region->cpp == 3 ? 3 : 4); ++ if (glx_texture_format == GLX_TEXTURE_FORMAT_RGB_EXT) ++ internalFormat = GL_RGB; ++ else ++ internalFormat = GL_RGBA; + + mt = intel_miptree_create_for_region(intel, target, + internalFormat, +@@ -783,3 +788,12 @@ + + _mesa_unlock_texture(&intel->ctx, texObj); + } ++ ++void ++intelSetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *dPriv) ++{ ++ /* The old interface didn't have the format argument, so copy our ++ * implementation's behavior at the time. ++ */ ++ intelSetTexBuffer2(pDRICtx, target, GLX_TEXTURE_FORMAT_RGBA_EXT, dPriv); ++} diff --git a/debian/patches/series b/debian/patches/series index 6ea0051..cb1c95b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 101_ubuntu_hidden_glname.patch 102_dont_vblank.diff 103_bump_965_texture_limit.diff +104_fix_dri2_ext_tfp.diff commit 57c98f140d6181e48ce8a2f093b46960080bcb24 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Fri Apr 3 11:45:24 2009 +0300 Add 103_bump_965_texture_limit.diff. (LP: #146298) diff --git a/debian/changelog b/debian/changelog index ed912fd..1b9be7e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ mesa (7.4-0ubuntu1) UNRELEASED; urgency=low * New upstream release, merge from debian-experimental (LP: #330476) * Drop 103_rs600_support.patch, included in this version. * Drop 104_swrast_fbconfigs.patch, included in this version. + * Add 103_bump_965_texture_limit.diff. (LP: #146298) -- Timo Aaltonen <tjaal...@ubuntu.com> Mon, 30 Mar 2009 10:47:38 +0300 diff --git a/debian/patches/103_bump_965_texture_limit.diff b/debian/patches/103_bump_965_texture_limit.diff new file mode 100644 index 0000000..385c7d4 --- /dev/null +++ b/debian/patches/103_bump_965_texture_limit.diff @@ -0,0 +1,33 @@ +commit 954dfba12986f578f2d8461818f9e9ac1f8f2b41 +Author: Keith Packard <kei...@keithp.com> +Date: Fri Jan 30 21:51:32 2009 -0800 + + i965: bump texture limit to 4kx4k + + Rendering and textures are limited to 8kx8k, but mesa limits things to + 4kx4k, and magic guard band stuff may break on 8kx8k drawing. This is safe + though, and makes compiz work on bigger screens. + + Signed-off-by: Keith Packard <kei...@keithp.com> + +diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c +index d7a2bd9..d66781f 100644 +--- a/src/mesa/drivers/dri/i965/brw_context.c ++++ b/src/mesa/drivers/dri/i965/brw_context.c +@@ -135,13 +135,12 @@ GLboolean brwCreateContext( const __GLcontextModes *mesaVis, + ctx->Const.MaxTextureImageUnits); + ctx->Const.MaxVertexTextureImageUnits = 0; /* no vertex shader textures */ + +- /* Advertise the full hardware capabilities. The new memory +- * manager should cope much better with overload situations: ++ /* Mesa limits textures to 4kx4k; it would be nice to fix that someday + */ +- ctx->Const.MaxTextureLevels = 12; ++ ctx->Const.MaxTextureLevels = 13; + ctx->Const.Max3DTextureLevels = 9; + ctx->Const.MaxCubeTextureLevels = 12; +- ctx->Const.MaxTextureRectSize = (1<<11); ++ ctx->Const.MaxTextureRectSize = (1<<12); + + /* if conformance mode is set, swrast can handle any size AA point */ + ctx->Const.MaxPointSizeAA = 255.0; diff --git a/debian/patches/series b/debian/patches/series index 7543d4c..6ea0051 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,3 +3,4 @@ 04_osmesa_version.diff 101_ubuntu_hidden_glname.patch 102_dont_vblank.diff +103_bump_965_texture_limit.diff commit c23c1ddbd01568b958158518618d316ced30b357 Author: Timo Aaltonen <tjaal...@cc.hut.fi> Date: Mon Mar 30 10:49:40 2009 +0300 update the changelog, drop patch 104. diff --git a/debian/changelog b/debian/changelog index 0e0fa4e..ed912fd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,10 @@ -mesa (7.4~rc1-1ubuntu1) UNRELEASED; urgency=low +mesa (7.4-0ubuntu1) UNRELEASED; urgency=low - * Merge from debian-experimental (LP: #330476) + * New upstream release, merge from debian-experimental (LP: #330476) * Drop 103_rs600_support.patch, included in this version. + * Drop 104_swrast_fbconfigs.patch, included in this version. - -- Timo Aaltonen <tjaal...@ubuntu.com> Fri, 27 Mar 2009 16:11:30 +0200 + -- Timo Aaltonen <tjaal...@ubuntu.com> Mon, 30 Mar 2009 10:47:38 +0300 mesa (7.4~rc1-1) experimental; urgency=low diff --git a/debian/patches/104_swrast_fbconfigs.patch b/debian/patches/104_swrast_fbconfigs.patch deleted file mode 100644 index 1855ec2..0000000 --- a/debian/patches/104_swrast_fbconfigs.patch +++ /dev/null @@ -1,312 +0,0 @@ -Backport the following commit from mesa git: - From 529d1d720e1422bad1880ef33fae1c9423112d2e Mon Sep 17 00:00:00 2001 - From: Eric Anholt <e...@anholt.net> - Date: Wed, 04 Feb 2009 03:29:11 +0000 - Subject: swrast: Add support for x8r8g8b8 fbconfig. - - This lets swrast produce an fbconfig suitable for the root visual now that - the server's not allowing mismatched fbconfigs. - -Index: mesa-7.3/src/mesa/drivers/dri/swrast/swrast.c -=================================================================== ---- mesa-7.3.orig/src/mesa/drivers/dri/swrast/swrast.c 2009-03-27 02:09:43.000000000 -0500 -+++ mesa-7.3/src/mesa/drivers/dri/swrast/swrast.c 2009-03-27 02:11:26.000000000 -0500 -@@ -164,17 +164,27 @@ - depth_buffer_factor = 4; - back_buffer_factor = 2; - -- if (pixel_bits == 8) { -+ switch (pixel_bits) { -+ case 8: - fb_format = GL_RGB; - fb_type = GL_UNSIGNED_BYTE_2_3_3_REV; -- } -- else if (pixel_bits == 16) { -+ break; -+ case 16: - fb_format = GL_RGB; - fb_type = GL_UNSIGNED_SHORT_5_6_5; -- } -- else { -+ break; -+ case 24: -+ fb_format = GL_BGR; -+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV; -+ break; -+ case 32: - fb_format = GL_BGRA; - fb_type = GL_UNSIGNED_INT_8_8_8_8_REV; -+ break; -+ default: -+ fprintf(stderr, "[%s:%u] bad depth %d\n", __func__, __LINE__, -+ pixel_bits); -+ return NULL; - } - - configs = driCreateConfigs(fb_format, fb_type, -@@ -196,7 +206,7 @@ - { - static const __DRIextension *emptyExtensionList[] = { NULL }; - __DRIscreen *psp; -- __DRIconfig **configs8, **configs16, **configs32; -+ const __DRIconfig **configs8, **configs16, **configs24, **configs32; - - (void) data; - -@@ -213,11 +223,12 @@ - - configs8 = swrastFillInModes(psp, 8, 8, 0, 1); - configs16 = swrastFillInModes(psp, 16, 16, 0, 1); -+ configs24 = swrastFillInModes(psp, 24, 24, 8, 1); - configs32 = swrastFillInModes(psp, 32, 24, 8, 1); - - configs16 = (__DRIconfig **)driConcatConfigs(configs8, configs16); -- -- *driver_configs = driConcatConfigs(configs16, configs32); -+ configs24 = driConcatConfigs(configs16, configs24); -+ *driver_configs = driConcatConfigs(configs24, configs32); - - driInitExtensions( NULL, card_extensions, GL_FALSE ); - -@@ -249,19 +260,24 @@ - choose_pixel_format(const GLvisual *v) - { - if (v->rgbMode) { -- int bpp = v->rgbBits; -+ int depth = v->rgbBits; - -- if (bpp == 32 -+ if (depth == 32 - && v->redMask == 0xff0000 - && v->greenMask == 0x00ff00 - && v->blueMask == 0x0000ff) - return PF_A8R8G8B8; -- else if (bpp == 16 -+ else if (depth == 24 -+ && v->redMask == 0xff0000 -+ && v->greenMask == 0x00ff00 -+ && v->blueMask == 0x0000ff) -+ return PF_X8R8G8B8; -+ else if (depth == 16 - && v->redMask == 0xf800 - && v->greenMask == 0x07e0 - && v->blueMask == 0x001f) - return PF_R5G6B5; -- else if (bpp == 8 -+ else if (depth == 8 - && v->redMask == 0x07 - && v->greenMask == 0x38 - && v->blueMask == 0xc0) -@@ -290,7 +306,6 @@ - GLenum internalFormat, GLuint width, GLuint height) - { - struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb); -- int bpp; - unsigned mask = PITCH_ALIGN_BITS - 1; - - TRACE; -@@ -299,23 +314,8 @@ - rb->Width = width; - rb->Height = height; - -- switch (internalFormat) { -- case GL_RGB: -- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits; -- break; -- case GL_RGBA: -- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits + rb->AlphaBits; -- break; -- case GL_COLOR_INDEX8_EXT: -- bpp = rb->IndexBits; -- break; -- default: -- _mesa_problem( NULL, "unexpected format in %s", __FUNCTION__ ); -- return GL_FALSE; -- } -- - /* always pad to PITCH_ALIGN_BITS */ -- xrb->pitch = ((width * bpp + mask) & ~mask) / 8; -+ xrb->pitch = ((width * xrb->bpp + mask) & ~mask) / 8; - - return GL_TRUE; - } -@@ -371,6 +371,17 @@ - xrb->Base.GreenBits = 8 * sizeof(GLubyte); - xrb->Base.BlueBits = 8 * sizeof(GLubyte); - xrb->Base.AlphaBits = 8 * sizeof(GLubyte); -+ xrb->bpp = 32; -+ break; -+ case PF_X8R8G8B8: -+ xrb->Base.InternalFormat = GL_RGB; -+ xrb->Base._BaseFormat = GL_RGB; -+ xrb->Base.DataType = GL_UNSIGNED_BYTE; -+ xrb->Base.RedBits = 8 * sizeof(GLubyte); -+ xrb->Base.GreenBits = 8 * sizeof(GLubyte); -+ xrb->Base.BlueBits = 8 * sizeof(GLubyte); -+ xrb->Base.AlphaBits = 0; -+ xrb->bpp = 32; - break; - case PF_R5G6B5: - xrb->Base.InternalFormat = GL_RGB; -@@ -380,6 +391,7 @@ - xrb->Base.GreenBits = 6 * sizeof(GLubyte); - xrb->Base.BlueBits = 5 * sizeof(GLubyte); - xrb->Base.AlphaBits = 0; -+ xrb->bpp = 16; - break; - case PF_R3G3B2: - xrb->Base.InternalFormat = GL_RGB; -@@ -389,12 +401,14 @@ - xrb->Base.GreenBits = 3 * sizeof(GLubyte); - xrb->Base.BlueBits = 2 * sizeof(GLubyte); - xrb->Base.AlphaBits = 0; -+ xrb->bpp = 8; - break; - case PF_CI8: - xrb->Base.InternalFormat = GL_COLOR_INDEX8_EXT; - xrb->Base._BaseFormat = GL_COLOR_INDEX; - xrb->Base.DataType = GL_UNSIGNED_BYTE; - xrb->Base.IndexBits = 8 * sizeof(GLubyte); -+ xrb->bpp = 8; - break; - default: - return NULL; -Index: mesa-7.3/src/mesa/drivers/dri/swrast/swrast_priv.h -=================================================================== ---- mesa-7.3.orig/src/mesa/drivers/dri/swrast/swrast_priv.h 2009-03-27 02:09:39.000000000 -0500 -+++ mesa-7.3/src/mesa/drivers/dri/swrast/swrast_priv.h 2009-03-27 02:09:51.000000000 -0500 -@@ -90,6 +90,8 @@ - - /* renderbuffer pitch (in bytes) */ - GLuint pitch; -+ /* bits per pixel of storage */ -+ GLuint bpp; - }; - - static INLINE __DRIcontext * -@@ -115,10 +117,10 @@ - * Pixel formats we support - */ - #define PF_CI8 1 /**< Color Index mode */ --#define PF_A8R8G8B8 2 /**< 32-bit TrueColor: 8-A, 8-R, 8-G, 8-B bits */ --#define PF_R5G6B5 3 /**< 16-bit TrueColor: 5-R, 6-G, 5-B bits */ --#define PF_R3G3B2 4 /**< 8-bit TrueColor: 3-R, 3-G, 2-B bits */ -- -+#define PF_A8R8G8B8 2 /**< 32bpp TrueColor: 8-A, 8-R, 8-G, 8-B bits */ -+#define PF_R5G6B5 3 /**< 16bpp TrueColor: 5-R, 6-G, 5-B bits */ -+#define PF_R3G3B2 4 /**< 8bpp TrueColor: 3-R, 3-G, 2-B bits */ -+#define PF_X8R8G8B8 5 /**< 32bpp TrueColor: 8-R, 8-G, 8-B bits */ - - /** - * Renderbuffer pitch alignment (in bits). -Index: mesa-7.3/src/mesa/drivers/dri/swrast/swrast_span.c -=================================================================== ---- mesa-7.3.orig/src/mesa/drivers/dri/swrast/swrast_span.c 2009-03-27 02:09:34.000000000 -0500 -+++ mesa-7.3/src/mesa/drivers/dri/swrast/swrast_span.c 2009-03-27 02:09:51.000000000 -0500 -@@ -79,6 +79,24 @@ - DST[BCOMP] = SRC[0] - - -+/* 32-bit BGRX */ -+#define STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE) \ -+ DST[3] = 0xff; \ -+ DST[2] = VALUE[RCOMP]; \ -+ DST[1] = VALUE[GCOMP]; \ -+ DST[0] = VALUE[BCOMP] -+#define STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE) \ -+ DST[3] = 0xff; \ -+ DST[2] = VALUE[RCOMP]; \ -+ DST[1] = VALUE[GCOMP]; \ -+ DST[0] = VALUE[BCOMP] -+#define FETCH_PIXEL_X8R8G8B8(DST, SRC) \ -+ DST[ACOMP] = 0xff; \ -+ DST[RCOMP] = SRC[2]; \ -+ DST[GCOMP] = SRC[1]; \ -+ DST[BCOMP] = SRC[0] -+ -+ - /* 16-bit BGR */ - #define STORE_PIXEL_R5G6B5(DST, X, Y, VALUE) \ - do { \ -@@ -139,6 +157,24 @@ - #include "swrast/s_spantemp.h" - - -+/* 32-bit BGRX */ -+#define NAME(FUNC) FUNC##_X8R8G8B8 -+#define RB_TYPE GLubyte -+#define SPAN_VARS \ -+ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb); -+#define INIT_PIXEL_PTR(P, X, Y) \ -+ GLubyte *P = (GLubyte *)xrb->Base.Data + YFLIP(xrb, Y) * xrb->pitch + (X) * 4; -+#define INC_PIXEL_PTR(P) P += 4 -+#define STORE_PIXEL(DST, X, Y, VALUE) \ -+ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE) -+#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \ -+ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE) -+#define FETCH_PIXEL(DST, SRC) \ -+ FETCH_PIXEL_X8R8G8B8(DST, SRC) -+ -+#include "swrast/s_spantemp.h" -+ -+ - /* 16-bit BGR */ - #define NAME(FUNC) FUNC##_R5G6B5 - #define RB_TYPE GLubyte -@@ -210,6 +246,24 @@ - #include "swrast_spantemp.h" - - -+/* 32-bit BGRX */ -+#define NAME(FUNC) FUNC##_X8R8G8B8_front -+#define RB_TYPE GLubyte -+#define SPAN_VARS \ -+ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb); -+#define INIT_PIXEL_PTR(P, X, Y) \ -+ GLubyte *P = (GLubyte *)row; -+#define INC_PIXEL_PTR(P) P += 4 -+#define STORE_PIXEL(DST, X, Y, VALUE) \ -+ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE) -+#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \ -+ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE) -+#define FETCH_PIXEL(DST, SRC) \ -+ FETCH_PIXEL_X8R8G8B8(DST, SRC) -+ -+#include "swrast_spantemp.h" -+ -+ - /* 16-bit BGR */ - #define NAME(FUNC) FUNC##_R5G6B5_front - #define RB_TYPE GLubyte -@@ -279,6 +333,15 @@ - xrb->Base.PutValues = put_values_A8R8G8B8; - xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8; - break; -+ case PF_X8R8G8B8: -+ xrb->Base.GetRow = get_row_X8R8G8B8; -+ xrb->Base.GetValues = get_values_X8R8G8B8; -+ xrb->Base.PutRow = put_row_X8R8G8B8; -+ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8; -+ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8; -+ xrb->Base.PutValues = put_values_X8R8G8B8; -+ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8; -+ break; - case PF_R5G6B5: - xrb->Base.GetRow = get_row_R5G6B5; - xrb->Base.GetValues = get_values_R5G6B5; -@@ -334,6 +397,15 @@ - xrb->Base.PutValues = put_values_A8R8G8B8_front; - xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8_front; - break; -+ case PF_X8R8G8B8: -+ xrb->Base.GetRow = get_row_X8R8G8B8_front; -+ xrb->Base.GetValues = get_values_X8R8G8B8_front; -+ xrb->Base.PutRow = put_row_X8R8G8B8_front; -+ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8_front; -+ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8_front; -+ xrb->Base.PutValues = put_values_X8R8G8B8_front; -+ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8_front; -+ break; - case PF_R5G6B5: - xrb->Base.GetRow = get_row_R5G6B5_front; - xrb->Base.GetValues = get_values_R5G6B5_front; diff --git a/debian/patches/series b/debian/patches/series index cea3886..7543d4c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,4 +3,3 @@ 04_osmesa_version.diff 101_ubuntu_hidden_glname.patch 102_dont_vblank.diff -104_swrast_fbconfigs.patch commit bf1e6581a56884c383e5446d84c56b39a7f4e0a0 Author: Brian Paul <bri...@vmware.com> Date: Fri Mar 27 18:57:39 2009 -0600 docs: set 7.4 release date diff --git a/docs/news.html b/docs/news.html index 8b96ab6..d34c273 100644 --- a/docs/news.html -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org