[Mesa-dev] [PATCH] scons: build osmesa swrast and gallium

Roland Scheidegger sroland at vmware.com
Tue Mar 8 17:25:52 UTC 2016


Not that I really care what you can or can't build (and I won't comment
on build changes), what are those features lacking in llvmpipe, beside
from anisotropic filtering (which I always considered essentially
useless for a software renderer, albeit interesting if you're curious
about the math involved)?
Last time I checked llvmpipe/softpipe had a much more robust feature set
(especially when it comes to non-legacy GL features), for starters I'll
just mention working derivatives which is usually the first thing people
still using classic swrast are hitting bugs on...

Roland

Am 08.03.2016 um 12:04 schrieb Andreas Fänger:
> This patch makes it possible to build classic osmesa/swrast on windows
> again. It was removed in commit 69db422218b0264b5b8eef45bd003a2544e9cbd6.
> Although there is a gallium version of osmesa now, the swrast version
> still has more features lacking in llvmpipe, e.g. anisotropic filtering.
> ---
>  src/mesa/drivers/SConscript        |    2 +
>  src/mesa/drivers/osmesa/SConscript |   40 ++++++++++++++++++++++++++++++++++++
>  src/mesa/drivers/osmesa/osmesa.def |   15 +++++++++++++
>  3 files changed, 57 insertions(+), 0 deletions(-)
>  create mode 100644 src/mesa/drivers/osmesa/SConscript
>  create mode 100644 src/mesa/drivers/osmesa/osmesa.def
> 
> diff --git a/src/mesa/drivers/SConscript b/src/mesa/drivers/SConscript
> index 5d654f5..476425b 100644
> --- a/src/mesa/drivers/SConscript
> +++ b/src/mesa/drivers/SConscript
> @@ -1,5 +1,7 @@
>  Import('*')
>  
> +SConscript('osmesa/SConscript')
> +
>  if env['x11']:
>      SConscript('x11/SConscript')
>  
> diff --git a/src/mesa/drivers/osmesa/SConscript b/src/mesa/drivers/osmesa/SConscript
> new file mode 100644
> index 0000000..5933f07
> --- /dev/null
> +++ b/src/mesa/drivers/osmesa/SConscript
> @@ -0,0 +1,40 @@
> +Import('*')
> +
> +env = env.Clone()
> +
> +env.Prepend(CPPPATH = [
> +    '#src',
> +    '#src/mapi',
> +    '#src/mesa',
> +    Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
> +])
> +
> +env.Prepend(LIBS = [
> +    mesautil,
> +    glapi,
> +    compiler,
> +    mesa,
> +    glsl,
> +])
> +
> +sources = [
> +    'osmesa.c',
> +]
> +
> +if env['platform'] == 'windows':
> +    env.AppendUnique(CPPDEFINES = [
> +        '_GDI32_', # prevent wgl* being declared __declspec(dllimport)
> +        'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers 
> +    ])
> +    if not env['gles']:
> +        # prevent _glapi_* from being declared __declspec(dllimport)
> +        env.Append(CPPDEFINES = ['_GLAPI_NO_EXPORTS'])
> +
> +    sources += ['osmesa.def']
> +    
> +osmesa = env.SharedLibrary(
> +    target ='osmesa',
> +    source = sources,
> +)
> +
> +env.Alias('osmesa', osmesa)
> diff --git a/src/mesa/drivers/osmesa/osmesa.def b/src/mesa/drivers/osmesa/osmesa.def
> new file mode 100644
> index 0000000..06afab7
> --- /dev/null
> +++ b/src/mesa/drivers/osmesa/osmesa.def
> @@ -0,0 +1,15 @@
> +;DESCRIPTION 'Mesa OSMesa lib for Win32'
> +VERSION 4.1
> +
> +EXPORTS
> +	OSMesaColorClamp
> +	OSMesaCreateContext
> +	OSMesaCreateContextExt
> +	OSMesaDestroyContext
> +	OSMesaMakeCurrent
> +	OSMesaGetCurrentContext
> +	OSMesaPixelStore
> +	OSMesaGetIntegerv
> +	OSMesaGetDepthBuffer
> +	OSMesaGetColorBuffer
> +	OSMesaGetProcAddress
> 



More information about the mesa-dev mailing list