From f1c9ea309d6c90b44532c94a7135ac6e77be4904 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Wed, 12 Feb 2014 20:37:26 +0000 Subject: [PATCH] mesa: hgl: release add-ons on GLView destruction * bump version. --- sys-libs/mesa/mesa-10.0.2.recipe | 6 +- sys-libs/mesa/patches/mesa-10.0.2.patchset | 122 ++++++++++++--------- 2 files changed, 76 insertions(+), 52 deletions(-) diff --git a/sys-libs/mesa/mesa-10.0.2.recipe b/sys-libs/mesa/mesa-10.0.2.recipe index c3f515310..4d219770d 100644 --- a/sys-libs/mesa/mesa-10.0.2.recipe +++ b/sys-libs/mesa/mesa-10.0.2.recipe @@ -10,7 +10,7 @@ COPYRIGHT="1999-2013 Brian Paul All Rights Reserved." LICENSE="MIT" SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.0.2/MesaLib-10.0.2.tar.bz2" CHECKSUM_MD5="8544c0ab3e438a08b5103421ea15b6d2" -REVISION="2" +REVISION="3" ARCHITECTURES="x86 x86_64" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building @@ -98,11 +98,11 @@ INSTALL() # swpipe renderer package packageEntries swpipe \ - "$addOnsDir/opengl/*Pipe" + "$addOnsDir/opengl/Software Pipe" # swrast renderer package packageEntries swrast \ - "$addOnsDir/opengl/*Rasterizer" + "$addOnsDir/opengl/Software Rasterizer" } # ----- devel package ------------------------------------------------------- diff --git a/sys-libs/mesa/patches/mesa-10.0.2.patchset b/sys-libs/mesa/patches/mesa-10.0.2.patchset index 6c35f8c6e..5439c7159 100644 --- a/sys-libs/mesa/patches/mesa-10.0.2.patchset +++ b/sys-libs/mesa/patches/mesa-10.0.2.patchset @@ -1,13 +1,8 @@ -From cc285772ce222f3672aa725dea18b52d9f94d2c2 Mon Sep 17 00:00:00 2001 +From 880e1a26af698949add259ef80bc3e0e4aa55188 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Mon, 30 Dec 2013 23:49:06 -0600 -Subject: [PATCH] haiku: Fix missing HaikuGL header paths +Subject: haiku: Fix missing HaikuGL header paths ---- - src/gallium/targets/haiku-softpipe/SConscript | 1 + - src/gallium/targets/libgl-haiku/SConscript | 1 + - src/mesa/drivers/haiku/swrast/SConscript | 1 + - 3 files changed, 3 insertions(+) diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript index 40bf03c..16ce7cd 100644 @@ -48,10 +43,11 @@ index 71ce88e..ca0423e 100644 -- 1.8.3.4 -From 72e0f3de1f2df3407dbf257183c78bd3f81c1a12 Mon Sep 17 00:00:00 2001 + +From add021d06196b1250454496cb3fb5b39746e2739 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Tue, 31 Dec 2013 15:39:49 -0600 -Subject: [PATCH] haiku libGL: Move from gallium target to src/hgl +Subject: haiku libGL: Move from gallium target to src/hgl * The Haiku renderers need to link to libGL to function properly in all usage contexts. As mesa drivers build before gallium @@ -60,40 +56,6 @@ Subject: [PATCH] haiku libGL: Move from gallium target to src/hgl * This is likely better as it mimics how glx is laid out ensuring the Haiku libGL is better understood. * All renderers properly link in libGL now. ---- - src/SConscript | 5 + - src/gallium/SConscript | 1 - - src/gallium/targets/haiku-softpipe/SConscript | 2 + - src/gallium/targets/libgl-haiku/GLDispatcher.cpp | 72 --- - src/gallium/targets/libgl-haiku/GLDispatcher.h | 109 ---- - src/gallium/targets/libgl-haiku/GLRenderer.cpp | 106 ---- - .../targets/libgl-haiku/GLRendererRoster.cpp | 224 ------- - src/gallium/targets/libgl-haiku/GLRendererRoster.h | 51 -- - src/gallium/targets/libgl-haiku/GLView.cpp | 643 --------------------- - src/gallium/targets/libgl-haiku/SConscript | 35 -- - src/hgl/GLDispatcher.cpp | 72 +++ - src/hgl/GLDispatcher.h | 109 ++++ - src/hgl/GLRenderer.cpp | 106 ++++ - src/hgl/GLRendererRoster.cpp | 224 +++++++ - src/hgl/GLRendererRoster.h | 51 ++ - src/hgl/GLView.cpp | 643 +++++++++++++++++++++ - src/hgl/SConscript | 36 ++ - src/mesa/drivers/haiku/swrast/SConscript | 2 + - 18 files changed, 1250 insertions(+), 1241 deletions(-) - delete mode 100644 src/gallium/targets/libgl-haiku/GLDispatcher.cpp - delete mode 100644 src/gallium/targets/libgl-haiku/GLDispatcher.h - delete mode 100644 src/gallium/targets/libgl-haiku/GLRenderer.cpp - delete mode 100644 src/gallium/targets/libgl-haiku/GLRendererRoster.cpp - delete mode 100644 src/gallium/targets/libgl-haiku/GLRendererRoster.h - delete mode 100644 src/gallium/targets/libgl-haiku/GLView.cpp - delete mode 100644 src/gallium/targets/libgl-haiku/SConscript - create mode 100644 src/hgl/GLDispatcher.cpp - create mode 100644 src/hgl/GLDispatcher.h - create mode 100644 src/hgl/GLRenderer.cpp - create mode 100644 src/hgl/GLRendererRoster.cpp - create mode 100644 src/hgl/GLRendererRoster.h - create mode 100644 src/hgl/GLView.cpp - create mode 100644 src/hgl/SConscript diff --git a/src/SConscript b/src/SConscript index 1465918..a24acea 100644 @@ -112,7 +74,7 @@ index 1465918..a24acea 100644 SConscript('mapi/vgapi/SConscript') diff --git a/src/gallium/SConscript b/src/gallium/SConscript -index 6e27be2..32bbdbe 100644 +index c68519d..7ba8070 100644 --- a/src/gallium/SConscript +++ b/src/gallium/SConscript @@ -119,7 +119,6 @@ if not env['embedded']: @@ -2717,16 +2679,14 @@ index ca0423e..aef7300 100644 -- 1.8.3.4 -From fc7707b49c064f17ed345cf70e89e8dfa8a6738d Mon Sep 17 00:00:00 2001 + +From 23cc377e1ac5046aae825580033c8ec23e80d670 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Tue, 21 Jan 2014 18:40:22 +0000 -Subject: [PATCH] hgl: atomic stores no longer need to be volatile +Subject: hgl: atomic stores no longer need to be volatile * Our atomics were revamped to no longer require volatile int pointers ---- - include/HaikuGL/GLRenderer.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h index 7ffcc34..02a438d 100644 @@ -2744,3 +2704,67 @@ index 7ffcc34..02a438d 100644 -- 1.8.3.4 + +From bcf7efda26051f122039df4c33e301fc6de59974 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 12 Feb 2014 20:11:25 +0000 +Subject: hgl: release add-ons on GLView destruction. + + +diff --git a/src/hgl/GLRendererRoster.cpp b/src/hgl/GLRendererRoster.cpp +index 1712a87..3833b2c 100644 +--- a/src/hgl/GLRendererRoster.cpp ++++ b/src/hgl/GLRendererRoster.cpp +@@ -79,7 +79,14 @@ GLRendererRoster::GLRendererRoster(BGLView* view, ulong options) + + GLRendererRoster::~GLRendererRoster() + { +- ++ RendererMap::iterator iterator = fRenderers.begin(); ++ for (; iterator != fRenderers.end(); iterator++) { ++ struct renderer_item item = iterator->second; ++ image_id image = item.image; ++ item.renderer->Release(); ++ // this will delete the renderer ++ unload_add_on(image); ++ } + } + + +@@ -91,6 +98,7 @@ GLRendererRoster::GetRenderer(int32 id) + return NULL; + + struct renderer_item item = iterator->second; ++ item.renderer->Acquire(); + return item.renderer; + } + +@@ -105,7 +113,7 @@ GLRendererRoster::AddDefaultPaths() + B_SYSTEM_ADDONS_DIRECTORY, + }; + +- for (uint32 i = fSafeMode ? 4 : 0; ++ for (uint32 i = fSafeMode ? 3 : 0; + i < sizeof(paths) / sizeof(paths[0]); i++) { + BPath path; + status_t status = find_directory(paths[i], &path, true); +diff --git a/src/hgl/GLView.cpp b/src/hgl/GLView.cpp +index 9ae5b5c..477b430 100644 +--- a/src/hgl/GLView.cpp ++++ b/src/hgl/GLView.cpp +@@ -57,8 +57,11 @@ BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode, + BGLView::~BGLView() + { + delete fClipInfo; +- if (fRenderer) ++ if (fRenderer) { + fRenderer->Release(); ++ fRenderer = NULL; ++ } ++ delete fRoster; + } + + +-- +1.8.3.4 +