From 8f33e18edfd6b6a812dbf30f3de91c7bf092fb8a Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 20 Dec 2008 22:55:04 +0000 Subject: [PATCH] - intel-fix-sarea-define.patch - workaround wrong define - intel-triple-remove.patch - remove triple buffering --- intel-fix-sarea-define.patch | 11 +++ intel-triple-remove.patch | 136 +++++++++++++++++++++++++++++++++++ mesa.spec | 12 +++- 3 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 intel-fix-sarea-define.patch create mode 100644 intel-triple-remove.patch diff --git a/intel-fix-sarea-define.patch b/intel-fix-sarea-define.patch new file mode 100644 index 0000000..09bf1bc --- /dev/null +++ b/intel-fix-sarea-define.patch @@ -0,0 +1,11 @@ +diff -up mesa-20081220/src/mesa/drivers/dri/intel/intel_context.h.dave mesa-20081220/src/mesa/drivers/dri/intel/intel_context.h +--- mesa-20081220/src/mesa/drivers/dri/intel/intel_context.h.dave 2008-12-21 08:46:51.000000000 +1000 ++++ mesa-20081220/src/mesa/drivers/dri/intel/intel_context.h 2008-12-21 08:47:04.000000000 +1000 +@@ -268,6 +268,7 @@ struct intel_context + __DRIdrawablePrivate *driReadDrawable; + __DRIscreenPrivate *driScreen; + intelScreenPrivate *intelScreen; ++#define drm_i915_sarea _drm_i915_sarea + volatile struct drm_i915_sarea *sarea; + + GLuint lastStamp; diff --git a/intel-triple-remove.patch b/intel-triple-remove.patch new file mode 100644 index 0000000..42b7d0a --- /dev/null +++ b/intel-triple-remove.patch @@ -0,0 +1,136 @@ +diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c +index f8f009c..4d036de 100644 +--- a/src/mesa/drivers/dri/intel/intel_buffers.c ++++ b/src/mesa/drivers/dri/intel/intel_buffers.c +@@ -181,7 +181,7 @@ intelUpdatePageFlipping(struct intel_context *intel, + intel_fb->pf_current_page = (intel->sarea->pf_current_page >> + (intel_fb->pf_planes & 0x2)) & 0x3; + +- intel_fb->pf_num_pages = intel->intelScreen->third.handle ? 3 : 2; ++ intel_fb->pf_num_pages = 2; + + pf_active = pf_planes && (pf_planes & intel->sarea->pf_active) == pf_planes; + +diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c +index 6c625b4..6ff98e9 100644 +--- a/src/mesa/drivers/dri/intel/intel_context.c ++++ b/src/mesa/drivers/dri/intel/intel_context.c +@@ -775,7 +775,6 @@ intelDestroyContext(__DRIcontextPrivate * driContextPriv) + + intel_region_release(&intel->front_region); + intel_region_release(&intel->back_region); +- intel_region_release(&intel->third_region); + intel_region_release(&intel->depth_region); + + driDestroyOptionCache(&intel->optionCache); +@@ -825,12 +824,7 @@ intelMakeCurrent(__DRIcontextPrivate * driContextPriv, + intel_renderbuffer_set_region(intel_fb->color_rb[1], + intel->back_region); + } +-#if 0 +- if (intel_fb->color_rb[2]) { +- intel_renderbuffer_set_region(intel_fb->color_rb[2], +- intel->third_region); +- } +-#endif ++ + if (irbDepth) { + intel_renderbuffer_set_region(irbDepth, intel->depth_region); + } +@@ -867,7 +861,7 @@ intelMakeCurrent(__DRIcontextPrivate * driContextPriv, + driDrawableInitVBlank(driDrawPriv); + intel_fb->vbl_waited = driDrawPriv->vblSeq; + +- for (i = 0; i < (intel->intelScreen->third.handle ? 3 : 2); i++) { ++ for (i = 0; i < 2; i++) { + if (intel_fb->color_rb[i]) + intel_fb->color_rb[i]->vbl_pending = driDrawPriv->vblSeq; + } +diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h +index ee43ed7..ac08117 100644 +--- a/src/mesa/drivers/dri/intel/intel_context.h ++++ b/src/mesa/drivers/dri/intel/intel_context.h +@@ -166,7 +166,6 @@ struct intel_context + + struct intel_region *front_region; + struct intel_region *back_region; +- struct intel_region *third_region; + struct intel_region *depth_region; + + /** +diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c +index 8dbcc30..51ce32a 100644 +--- a/src/mesa/drivers/dri/intel/intel_regions.c ++++ b/src/mesa/drivers/dri/intel/intel_regions.c +@@ -550,15 +550,6 @@ intel_recreate_static_regions(struct intel_context *intel) + intel->back_region, + &intelScreen->back); + +-#ifdef I915 +- if (intelScreen->third.handle) { +- intel->third_region = +- intel_recreate_static(intel, "third", +- intel->third_region, +- &intelScreen->third); +- } +-#endif /* I915 */ +- + /* Still assumes front.cpp == depth.cpp. We can kill this when we move to + * private buffers. + */ +diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c +index 61b55b9..fc4e82b 100644 +--- a/src/mesa/drivers/dri/intel/intel_screen.c ++++ b/src/mesa/drivers/dri/intel/intel_screen.c +@@ -177,13 +177,6 @@ intelUpdateScreenFromSAREA(intelScreenPrivate * intelScreen, + intelScreen->back.size = sarea->back_size; + intelScreen->back.tiled = sarea->back_tiled; + +- if (intelScreen->driScrnPriv->ddx_version.minor >= 8) { +- intelScreen->third.offset = sarea->third_offset; +- intelScreen->third.handle = sarea->third_handle; +- intelScreen->third.size = sarea->third_size; +- intelScreen->third.tiled = sarea->third_tiled; +- } +- + intelScreen->depth.offset = sarea->depth_offset; + intelScreen->depth.handle = sarea->depth_handle; + intelScreen->depth.size = sarea->depth_size; +@@ -192,12 +185,10 @@ intelUpdateScreenFromSAREA(intelScreenPrivate * intelScreen, + if (intelScreen->driScrnPriv->ddx_version.minor >= 9) { + intelScreen->front.bo_handle = sarea->front_bo_handle; + intelScreen->back.bo_handle = sarea->back_bo_handle; +- intelScreen->third.bo_handle = sarea->third_bo_handle; + intelScreen->depth.bo_handle = sarea->depth_bo_handle; + } else { + intelScreen->front.bo_handle = -1; + intelScreen->back.bo_handle = -1; +- intelScreen->third.bo_handle = -1; + intelScreen->depth.bo_handle = -1; + } + +@@ -353,12 +344,6 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv, + _mesa_add_renderbuffer(&intel_fb->Base, BUFFER_BACK_LEFT, + &intel_fb->color_rb[1]->Base); + +- if (screen->third.handle) { +- struct gl_renderbuffer *tmp_rb = NULL; +- +- intel_fb->color_rb[2] = intel_create_renderbuffer(rgbFormat); +- _mesa_reference_renderbuffer(&tmp_rb, &intel_fb->color_rb[2]->Base); +- } + } + + if (mesaVis->depthBits == 24) { +diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h +index 91f0d6d..cf5359b 100644 +--- a/src/mesa/drivers/dri/intel/intel_screen.h ++++ b/src/mesa/drivers/dri/intel/intel_screen.h +@@ -56,7 +56,6 @@ typedef struct + { + intelRegion front; + intelRegion back; +- intelRegion third; + intelRegion depth; + intelRegion tex; + diff --git a/mesa.spec b/mesa.spec index a3716c6..93ca632 100644 --- a/mesa.spec +++ b/mesa.spec @@ -18,7 +18,7 @@ Summary: Mesa graphics libraries Name: mesa Version: 7.3 -Release: 0.13%{?dist} +Release: 0.2%{?dist} License: MIT Group: System Environment/Libraries URL: http://www.mesa3d.org @@ -42,6 +42,8 @@ Patch7: mesa-7.1-link-shared.patch Patch9: intel-revert-vbl.patch Patch12: mesa-7.1-disable-intel-classic-warn.patch +Patch13: intel-triple-remove.patch +Patch14: intel-fix-sarea-define.patch BuildRequires: pkgconfig autoconf automake %if %{with_dri} @@ -175,6 +177,8 @@ This package provides some demo applications for testing Mesa. %patch7 -p1 -b .dricore %patch9 -p1 -b .intel-vbl %patch12 -p1 -b .intel-nowarn +%patch13 -p1 -b .triple-remove +%patch14 -p1 -b .sarea # WARNING: The following files are copyright "Mark J. Kilgard" under the GLUT # license and are not open source/free software, so we remove them. @@ -426,7 +430,11 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/mesa-demos-data %changelog -* Sat Dec 20 2008 Dave Airlie 7.3-0.13 +* Sun Dec 21 2008 Dave Airlie 7.3-0.2 +- intel-fix-sarea-define.patch - workaround wrong define +- intel-triple-remove.patch - remove triple buffering + +* Sat Dec 20 2008 Dave Airlie 7.3-0.1 - Mesa rebase to upstream + new r300 bufmgr code (may need more work) * Thu Oct 23 2008 Dave Airlie 7.2-0.13