hrev45387 adds 1 changeset to branch 'master' old head: 3764bc554c11dda565ca2b3ac3f4c129d3db9247 new head: 5d8d472d1a6509a11b2597ce94b030bce86dd9ab overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=5d8d472+%5E3764bc5 ---------------------------------------------------------------------------- 5d8d472: GL: Upgrade to Mesa 9.1.1 * Somefix-ups and repairs for changes to how Mesa works internally * _Flush and _Error need additional work as DriverCtx was removed * Tested working [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45387 Commit: 5d8d472d1a6509a11b2597ce94b030bce86dd9ab URL: http://cgit.haiku-os.org/haiku/commit/?id=5d8d472 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Wed Mar 20 06:38:43 2013 UTC ---------------------------------------------------------------------------- 4 files changed, 24 insertions(+), 9 deletions(-) build/jam/BuildFeatures | 2 +- .../opengl/swrast/MesaSoftwareRenderer.cpp | 27 +++++++++++++++----- src/add-ons/opengl/swrast/MesaSoftwareRenderer.h | 3 ++- src/kits/opengl/GLDispatcher.cpp | 1 - ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 1148177..6f1cca6 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -344,7 +344,7 @@ if $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = x86 { local zipFile ; if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_MESA_FILE = mesa-9.0.2-x86-gcc4-2013-02-17.zip ; + HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-03-20.zip ; } else { HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-02-17.zip ; } diff --git a/src/add-ons/opengl/swrast/MesaSoftwareRenderer.cpp b/src/add-ons/opengl/swrast/MesaSoftwareRenderer.cpp index 0b21ff4..bfa526a 100644 --- a/src/add-ons/opengl/swrast/MesaSoftwareRenderer.cpp +++ b/src/add-ons/opengl/swrast/MesaSoftwareRenderer.cpp @@ -23,12 +23,15 @@ extern "C" { #include "extensions.h" #include "drivers/common/driverfuncs.h" #include "drivers/common/meta.h" +#include "main/api_exec.h" #include "main/colormac.h" #include "main/cpuinfo.h" #include "main/buffers.h" #include "main/formats.h" #include "main/framebuffer.h" #include "main/renderbuffer.h" +#include "main/version.h" +#include "main/vtxfmt.h" #include "swrast/swrast.h" #include "swrast/s_renderbuffer.h" #include "swrast_setup/swrast_setup.h" @@ -113,8 +116,8 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options, functions.Flush = _Flush; // create core context - fContext = _mesa_create_context(API_OPENGL, fVisual, NULL, - &functions, this); + fContext = _mesa_create_context(API_OPENGL_COMPAT, fVisual, NULL, + &functions); if (!fContext) { ERROR("%s: Failed to create Mesa context!\n", __func__); @@ -140,6 +143,11 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options, _mesa_enable_2_0_extensions(fContext); _mesa_enable_2_1_extensions(fContext); + _mesa_compute_version(fContext); + + _mesa_initialize_dispatch_tables(fContext); + _mesa_initialize_vbo_vtxfmt(fContext); + // create core framebuffer fFrameBuffer = _mesa_create_framebuffer(fVisual); if (fFrameBuffer == NULL) { @@ -460,9 +468,13 @@ MesaSoftwareRenderer::_AllocateBitmap() void MesaSoftwareRenderer::_Error(gl_context* ctx) { + CALLED(); + #if 0 + // TODO: err. Mesa dropped DriverCtx MesaSoftwareRenderer* mr = (MesaSoftwareRenderer*)ctx->DriverCtx; if (mr && mr->GLView()) mr->GLView()->ErrorCallback((unsigned long)ctx->ErrorValue); + #endif } @@ -552,13 +564,15 @@ void MesaSoftwareRenderer::_Flush(gl_context* ctx) { CALLED(); - MesaSoftwareRenderer* mr = (MesaSoftwareRenderer*)ctx->DriverCtx; - if ((mr->fOptions & BGL_DOUBLE) == 0) { + #if 0 + // TODO: err. Mesa dropped DriverCtx + if ((fOptions & BGL_DOUBLE) == 0) { // TODO: SwapBuffers() can call _CopyToDirect(), which should // be always called with with the BGLView drawlocked. // This is not always the case if called from here. - mr->SwapBuffers(); + SwapBuffers(); } + #endif } @@ -660,7 +674,8 @@ MesaSoftwareRenderer::_RenderBufferMap(gl_context *ctx, void -MesaSoftwareRenderer::_RenderBufferDelete(struct gl_renderbuffer* rb) +MesaSoftwareRenderer::_RenderBufferDelete(struct gl_context *ctx, + struct gl_renderbuffer* rb) { CALLED(); if (rb != NULL) { diff --git a/src/add-ons/opengl/swrast/MesaSoftwareRenderer.h b/src/add-ons/opengl/swrast/MesaSoftwareRenderer.h index efefad0..ba64751 100644 --- a/src/add-ons/opengl/swrast/MesaSoftwareRenderer.h +++ b/src/add-ons/opengl/swrast/MesaSoftwareRenderer.h @@ -55,7 +55,8 @@ private: color_space colorSpace); /* Mesa callbacks */ - static void _RenderBufferDelete(struct gl_renderbuffer* rb); + static void _RenderBufferDelete(struct gl_context *ctx, + struct gl_renderbuffer* rb); static GLboolean _RenderBufferStorage(gl_context* ctx, struct gl_renderbuffer* render, GLenum internalFormat, diff --git a/src/kits/opengl/GLDispatcher.cpp b/src/kits/opengl/GLDispatcher.cpp index 87b3b19..b1c69d0 100644 --- a/src/kits/opengl/GLDispatcher.cpp +++ b/src/kits/opengl/GLDispatcher.cpp @@ -14,7 +14,6 @@ extern "C" { #if __GNUC__ > 2 // New Mesa #include "glapi_priv.h" -#include "glapitable.h" #endif