Skip to content

Commit

Permalink
OpenGL: Upgrade to Mesa 9.2
Browse files Browse the repository at this point in the history
* The needed LLVM libraries are now within
  the Mesa optional build package.
* The swpipe renderer needs some work still
  and will likey change, swrast is fully
  functional.
  • Loading branch information
kallisti5 committed Aug 28, 2013
1 parent f0aee2b commit 8f7f28a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 164 deletions.
134 changes: 6 additions & 128 deletions build/jam/BuildFeatures
Expand Up @@ -203,118 +203,6 @@ if $(HAIKU_BUILD_FEATURE_CLUCENE) {
}


# LLVM
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_LLVM_FILE = llvm-3.2-x86-gcc4-2012-12-21.zip ;
local zipFile = [ DownloadFile $(HAIKU_LLVM_FILE)
: $(baseURL)/$(HAIKU_LLVM_FILE) ] ;

HAIKU_LLVM_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LLVM_FILE:B) ] ;

HAIKU_LLVM_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LLVM_DIR)
: common/include/ : $(zipFile) : extracted-llvm ] ;
HAIKU_LLVM_HEADERS = [ FDirName $(HAIKU_LLVM_DIR) common include ] ;

# We can't Glob these because they aren't extracted yet.
HAIKU_LLVM_LIBS = [ ExtractArchive $(HAIKU_LLVM_DIR)
:
common/lib/libLLVMAsmParser.a
common/lib/libLLVMInstrumentation.a
common/lib/libLLVMLinker.a
common/lib/libLLVMArchive.a
common/lib/libLLVMBitReader.a
common/lib/libLLVMDebugInfo.a
common/lib/libLLVMJIT.a
common/lib/libLLVMipo.a
common/lib/libLLVMVectorize.a
common/lib/libLLVMBitWriter.a
common/lib/libLLVMTableGen.a
#common/lib/libLLVMHexagonCodeGen.a
#common/lib/libLLVMHexagonAsmPrinter.a
#common/lib/libLLVMHexagonDesc.a
#common/lib/libLLVMHexagonInfo.a
#common/lib/libLLVMNVPTXCodeGen.a
#common/lib/libLLVMNVPTXDesc.a
#common/lib/libLLVMNVPTXInfo.a
#common/lib/libLLVMNVPTXAsmPrinter.a
#common/lib/libLLVMMBlazeCodeGen.a
#common/lib/libLLVMMBlazeAsmParser.a
#common/lib/libLLVMMBlazeDisassembler.a
#common/lib/libLLVMMBlazeDesc.a
#common/lib/libLLVMMBlazeInfo.a
#common/lib/libLLVMMBlazeAsmPrinter.a
common/lib/libLLVMCppBackendCodeGen.a
common/lib/libLLVMCppBackendInfo.a
#common/lib/libLLVMMSP430CodeGen.a
#common/lib/libLLVMMSP430Desc.a
#common/lib/libLLVMMSP430AsmPrinter.a
#common/lib/libLLVMMSP430Info.a
#common/lib/libLLVMXCoreCodeGen.a
#common/lib/libLLVMXCoreDesc.a
#common/lib/libLLVMXCoreInfo.a
#common/lib/libLLVMCellSPUCodeGen.a
#common/lib/libLLVMCellSPUDesc.a
#common/lib/libLLVMCellSPUInfo.a
#common/lib/libLLVMMipsAsmParser.a
#common/lib/libLLVMMipsCodeGen.a
#common/lib/libLLVMMipsDesc.a
#common/lib/libLLVMMipsAsmPrinter.a
#common/lib/libLLVMMipsDisassembler.a
#common/lib/libLLVMMipsInfo.a
#common/lib/libLLVMARMAsmParser.a
#common/lib/libLLVMARMCodeGen.a
#common/lib/libLLVMARMDisassembler.a
#common/lib/libLLVMARMDesc.a
#common/lib/libLLVMARMInfo.a
#common/lib/libLLVMARMAsmPrinter.a
#common/lib/libLLVMPowerPCCodeGen.a
#common/lib/libLLVMPowerPCDesc.a
#common/lib/libLLVMPowerPCInfo.a
#common/lib/libLLVMPowerPCAsmPrinter.a
#common/lib/libLLVMSparcCodeGen.a
#common/lib/libLLVMSparcDesc.a
#common/lib/libLLVMSparcInfo.a
common/lib/libLLVMX86AsmParser.a
common/lib/libLLVMX86CodeGen.a
common/lib/libLLVMSelectionDAG.a
common/lib/libLLVMAsmPrinter.a
common/lib/libLLVMX86Disassembler.a
common/lib/libLLVMX86Desc.a
common/lib/libLLVMX86Info.a
common/lib/libLLVMX86AsmPrinter.a
common/lib/libLLVMX86Utils.a
common/lib/libLLVMMCDisassembler.a
common/lib/libLLVMMCParser.a
common/lib/libLLVMInterpreter.a
common/lib/libLLVMCodeGen.a
common/lib/libLLVMScalarOpts.a
common/lib/libLLVMInstCombine.a
common/lib/libLLVMTransformUtils.a
common/lib/libLLVMipa.a
common/lib/libLLVMAnalysis.a
common/lib/libLLVMMCJIT.a
common/lib/libLLVMRuntimeDyld.a
common/lib/libLLVMExecutionEngine.a
common/lib/libLLVMTarget.a
common/lib/libLLVMMC.a
common/lib/libLLVMObject.a
common/lib/libLLVMCore.a
common/lib/libLLVMSupport.a
: $(zipFile) : extracted-llvm ]
;

EnableBuildFeatures llvm ;
} else {
# Nor will it ever be
Echo "LLVM not available on GCC2" ;
}
} else {
Echo "LLVM not yet available on $(TARGET_ARCH)" ;
}


# GLU (GL Utilities)
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
Expand Down Expand Up @@ -344,7 +232,7 @@ if $(TARGET_ARCH) = x86 {
if $(TARGET_ARCH) = x86 {
local zipFile ;
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
HAIKU_MESA_FILE = mesa-9.2.0-x86-gcc4-2013-08-28.zip ;
} else {
HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-04-28.zip ;
}
Expand Down Expand Up @@ -386,21 +274,11 @@ if $(TARGET_ARCH) = x86 {
lib.haiku/libgallium.a
: $(zipFile)
: extracted-mesa ] ;

if FIsBuildFeatureEnabled(llvm) {
HAIKU_GALLIUM_LLVMPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libllvmpipe.a
: $(zipFile)
: extracted-mesa ] ;
Depends $(HAIKU_GALLIUM_LLVMPIPE_LIB) : $(HAIKU_LLVM_LIBS) ;
} else {
HAIKU_GALLIUM_SOFTPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libsoftpipe.a
: $(zipFile)
: extracted-mesa ] ;
}
HAIKU_GALLIUM_SWPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/swpipe_bundle.a
: $(zipFile)
: extracted-mesa ] ;
}

EnableBuildFeatures mesa ;
Expand Down
16 changes: 2 additions & 14 deletions src/add-ons/opengl/swpipe/Jamfile
Expand Up @@ -20,27 +20,15 @@ UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;

AddResources Software\ Renderer : SoftwareRenderer.rdef ;

if FIsBuildFeatureEnabled(llvm) {
Depends Software\ Renderer : $(HAIKU_LLVM_HEADERS_DEPENDENCY) ;
SubDirC++Flags [ FDefines HAVE_LLVM=0x0302 ] ;
}
SubDirC++Flags -fno-rtti [ FDefines HAVE_LLVM=0x0302 ] ;

# LLVM Pipe enabled Gallium Software Renderer
# Requires:
# - LLVM optional package
# - Mesa optional package compiled with LLVM installed
# SoftPipe enabled Gallium Software Renderer
# Requires:
# - Mesa optional package compiled *without* LLVM installed
Addon Software\ Renderer :
$(sources)
:
libGL.so
$(HAIKU_GALLIUM_SOFTPIPE_LIB)
$(HAIKU_GALLIUM_LLVMPIPE_LIB)
$(HAIKU_GALLIUM_SWPIPE_LIB)
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
$(HAIKU_GALLIUM_LIB)
$(HAIKU_LLVM_LIBS)
be translation stdc++ $(TARGET_LIBSUPC++)
;
21 changes: 0 additions & 21 deletions src/add-ons/opengl/swrast/MesaSoftwareRenderer.cpp
Expand Up @@ -111,8 +111,6 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options,
functions.GetString = _GetString;
functions.UpdateState = _UpdateState;
functions.MapRenderbuffer = _RenderBufferMap;
functions.GetBufferSize = NULL;
functions.Error = _Error;
functions.Flush = _Flush;

// create core context
Expand All @@ -137,12 +135,6 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options,

_mesa_meta_init(fContext);
_mesa_enable_sw_extensions(fContext);
_mesa_enable_1_3_extensions(fContext);
_mesa_enable_1_4_extensions(fContext);
_mesa_enable_1_5_extensions(fContext);
_mesa_enable_2_0_extensions(fContext);
_mesa_enable_2_1_extensions(fContext);

_mesa_compute_version(fContext);

_mesa_initialize_dispatch_tables(fContext);
Expand Down Expand Up @@ -465,19 +457,6 @@ MesaSoftwareRenderer::_AllocateBitmap()
// #pragma mark - static


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
}


const GLubyte*
MesaSoftwareRenderer::_GetString(gl_context* ctx, GLenum name)
{
Expand Down
1 change: 0 additions & 1 deletion src/add-ons/opengl/swrast/MesaSoftwareRenderer.h
Expand Up @@ -44,7 +44,6 @@ class MesaSoftwareRenderer : public BGLRenderer {
virtual void DirectConnected(direct_buffer_info* info);

private:
static void _Error(gl_context* ctx);
static const GLubyte* _GetString(gl_context* ctx, GLenum name);
void _CheckResize(GLuint newWidth, GLuint newHeight);
static void _UpdateState(gl_context* ctx, GLuint newState);
Expand Down

0 comments on commit 8f7f28a

Please sign in to comment.