[Mesa-users] building 8.0 on windows

Henn, Thomas Thomas.Henn at cst.com
Fri Feb 17 09:04:34 PST 2012


Hi all,

sorry for complaining. I figured out what went wrong. I missed selecting a target and used the wrong compiler...
With Visual Studio 2008 instead of 2005, building target opengl32 with softpipe and llvmpipe (using LLVM 2.9) works well under Windows.

But 64 bit executables immediately crash if I use the llvmpipe, while the debug version of llvmpipe works.
Here's the call stack of gears.exe with 64 bit release dll:

>	opengl32.dll!__crt_debugger_hook(int _Reserved=1229672)  Line 65	C
 	opengl32.dll!_invoke_watson(const wchar_t * pszExpression=0x6666666666666667, const wchar_t * pszFunction=0x000000000723e07c, const wchar_t * pszFile=0x0000000001cbde10, unsigned int nLine=1995911194, unsigned __int64 pReserved=0)  Line 233	C++
 	opengl32.dll!_invalid_parameter(const wchar_t * pszExpression=0xffffffb000000000, const wchar_t * pszFunction=0x0000000001cbde10, const wchar_t * pszFile=0x0000000000000000, unsigned int nLine=30138128, unsigned __int64 pReserved=0)  Line 115	C++
 	opengl32.dll!_invalid_parameter_noinfo()  Line 126	C++
 	opengl32.dll!llvm::LiveVariables::runOnMachineFunction()  + 0xf0d bytes	C++
 	opengl32.dll!llvm::FPPassManager::runOnFunction()  + 0x318 bytes	C++
 	opengl32.dll!llvm::FunctionPassManagerImpl::run()  + 0x70 bytes	C++
 	opengl32.dll!llvm::FunctionPassManager::run()  + 0xd2 bytes	C++
 	opengl32.dll!llvm::JIT::runJITOnFunctionUnlocked()  + 0x20 bytes	C++
 	opengl32.dll!llvm::JIT::getPointerToFunction()  + 0x27d bytes	C++
 	opengl32.dll!generate_fragment(llvmpipe_context * lp=0x0000000001c9a790, lp_fragment_shader * shader=0x000000000000000a, lp_fragment_shader_variant * variant=0x00000000036209a0, unsigned int partial_mask=0)  Line 814	C
 	opengl32.dll!generate_variant(llvmpipe_context * lp=0x0000000001c9a790, lp_fragment_shader * shader=0x000000000012f490, const lp_fragment_shader_variant_key * key=0x0000000001cd7c30)  Line 970	C
 	opengl32.dll!llvmpipe_update_fs(llvmpipe_context * lp=0x0000000b4159c4f3)  Line 1399 + 0x27 bytes	C
 	opengl32.dll!llvmpipe_update_derived(llvmpipe_context * llvmpipe=0x0000000000000000)  Line 158	C
 	opengl32.dll!llvmpipe_draw_vbo(pipe_context * pipe=0x0000000000000001, const pipe_draw_info * info=0x00000000035fed68)  Line 69	C
 	opengl32.dll!st_draw_vbo(gl_context * ctx=0x0000000000000000, const gl_client_array * * arrays=0x000000000354cd80, const _mesa_prim * prims=0x00000000035fed60, unsigned int nr_prims=55394000, const _mesa_index_buffer * ib=0x0000000000000000, unsigned char index_bounds_valid='', unsigned int min_index=0, unsigned int max_index=161, gl_transform_feedback_object * tfb_vertcount=0x0000000000000000)  Line 1112 + 0xb bytes	C
 	opengl32.dll!vbo_save_playback_vertex_list(gl_context * ctx=0x0000000000000000, void * data=0x00000000034d3ed0)  Line 312	C
 	opengl32.dll!execute_list(gl_context * ctx=0x0000000000000000, unsigned int list=0)  Line 7468 + 0x1f bytes	C
 	opengl32.dll!_mesa_CallList(unsigned int list=2052)  Line 8886	C
 	gears.exe!draw()  Line 196	C


Today's 8.0.1 behaves just the same...

Cheers,
Thomas


> Hi,
> 
> I am currently using MESA 7.8.2 software renderer under Windows. But
> now, I would like to update to a more recent version of MESA to benefit
> from the faster llvmpipe. Unfortunately, I faced some problem while
> building MESA 8.0 using scons, regardless of llvm-support being turned
> on or off:
> 
> 
> Without llvm-support (env var LLVM unset):
> > scons.bat platform=windows machine=x86 statetrackers=mesa
> > drivers=softpipe winsys=gdi build=release
> 
>   Compiling src\mesa\drivers\windows\gdi\wmesa.c ...
> src\mesa\drivers\windows\gdi\wmesa.c(956) : error C2039: 'PutRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(957) : error C2039: 'PutValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(958) : error C2039: 'GetRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(959) : error C2039: 'GetValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(964) : error C2039: 'PutRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(965) : error C2039: 'PutValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(966) : error C2039: 'GetRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(967) : error C2039: 'GetValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(971) : error C2039: 'PutRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(972) : error C2039: 'PutValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(973) : error C2039: 'GetRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(974) : error C2039: 'GetValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(983) : error C2039: 'PutRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(984) : error C2039: 'PutValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(985) : error C2039: 'GetRow' : is
> not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> src\mesa\drivers\windows\gdi\wmesa.c(986) : error C2039: 'GetValues' :
> is not a member of 'gl_renderbuffer'
>         src\mesa\main/mtypes.h(2540) : see declaration of
> 'gl_renderbuffer'
> 
> Does this file need to be compiled at all when building the gallium
> pipeline?
> 
> 
> With llvm-support (env var LLVM set, using llvm 2.9):
> > scons.bat platform=windows machine=x86 statetrackers=mesa
> > drivers=llvmpipe winsys=gdi build=release
> 
>   Compiling src\gallium\drivers\llvmpipe\lp_setup_tri.c ...
> src\gallium\auxiliary\util/u_sse.h(167) : fatal error C1083: Cannot
> open include file: 'tmmintrin.h': No such file or directory
> 
> When disabling SSE-support in src\gallium\include\pipe\p_config.h...
> 	//#define PIPE_ARCH_SSE
> 	//#define PIPE_ARCH_SSSE3
> ...we end up in the same situation as above.
> 
> 
> Finally, I went back to MESA 7.11.2, where building the gallium
> softpipe under Windows works fine after some fine-tuning. But with
> gears.exe this pipeline is about factor 4 slower than the 7.8.2
> software renderer. :-( So I would really like to get the llvmpipe
> running under Windows.
> 
> 
> Any help is very appreciated?
> Thanks in advance...
> 
> Cheers,
> Thomas
> 
> _______________________________________________
> mesa-users mailing list
> mesa-users at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-users


More information about the mesa-users mailing list