[Mesa-users] Rer: How I succeeded in building Mesa llvmpipe 64-bit on Windows
Charlie Charsie
Tscharser at gmx.net
Thu Nov 1 07:26:56 PDT 2012
Dear Jose,
I compiled llvmpipe now in debug mode (Mesa 9.0, LLVM 3.1, VS2008SP1 64).
In contrast to the release mode, the debug mode DLL crashes already on startup of simple OpenGL programs.
I attached a screenshot of the stack trace. GALLIUM_ABORT_ON_ASSERT after
src\gallium\state_trackers\wgl\stw_wgl.c:209:wglUseFontBitmapsA: Assertion `0' failed.
If I can do something more, please, just let me know.
Best,
Charlie
-------- Original-Nachricht --------
> Datum: Thu, 1 Nov 2012 04:36:41 -0700 (PDT)
> Von: Jose Fonseca <jfonseca at vmware.com>
> An: Charlie Charsie <Tscharser at gmx.net>
> CC: brianp at vmware.com, mesa-users at lists.freedesktop.org
> Betreff: Re: Rer: [Mesa-users] How I succeeded in building Mesa llvmpipe 64-bit on Windows
>
>
> ----- Original Message -----
> >
> > Dear Jose,
> >
> > I followed your suggestion and modified os_thread.h (line 180) to
> > enable the conditional variables. A simple change of #if 0 to #if 1
> > was enough, as all code was already there.
> >
> > I recompiled and compared performance and behavior.
> >
> > - CPU is now busy to 80-90%.
> > - Performance on some intense tests is massively boosted. On CPUs
> > with many cores this performance benefit scale directly with number
> > of cores.
> >
> > - The renderings themselves looked all fine.
> >
> > - My simple benchmark tool reproducibly crashed on application exit,
> > with a white-screen. Also toggling with other applications
> > sporadically showed simiar behavior. I only have few other Opengl
> > applications that are 64 bits, they did NOT show this problem.
>
> If you could dig a bit deeped (by attaching a debugger and seeing the
> stack trace), we might be able to fix it.
>
> > The measurements have been conducted on my Core i5-520 laptop with
> > Win7 64.
> > I used a very simple OpenGL benchmark in order to be able to compare
> > to Microsoft's OpenGL software renderer. Also I did not find good
> > 64-bit tools to benchmark OpenGL on Windows.
> >
> (http://homepage.virgin.net/roy.longbottom/64%20bit%20graphics%20tests.htm)
> >
> >
> > MESA 9.0
> > ........................ Frames Per Second
> > ........................
> > Resolution Single Single Multi Multi More More+
> > Wire Tiled
> > Plain Texture Plain Texture Texture Texture
> > Kitchen Kitchen
> >
> > 1600 900 32 81.60 80.06 71.51 67.74 45.65 40.12
> > 24.72 5.13
> > 1600 900 32 83.26 82.97 70.80 68.58 45.56 40.10
> > 25.94 5.15
> >
> > MESA 9.0 cond var
> > 1600 900 32 111.84 102.59 90.92 84.51 60.71 50.28
> > 28.98 18.54
> > 1600 900 32 93.28 95.90 86.29 82.76 59.13 49.37
> > 28.54 18.36
>
> Thanks for your results. That settles it then.
>
> > As for your second request:
> >
> > The condition right now is: #if 0 && defined (_WIN32_WINNT) &&
> > (_WIN32_WINNT >= 0x0600)
> >
> > According to Windows documentation, WINVER and _WIN32_WINNT are
> > already fine to check for Windows version on runtime.
> > See http://msdn.microsoft.com/en-us/library/aa383745(v=vs.85).aspx
> >
> > So I am not sure why we are not changing the line to:
> > #if (_WIN32_WINNT >= 0x0600)
>
> These are compile time checks, not runtime checks.
>
> We need to define _WIN32_WINNT in order to get the prototypes of the
> latest APIs, but we don't want to use them inconditionally.
>
> We will need to use a runtime check like explained on
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx , and also use
> GetProcAddress for conditional variable functions, otherwise the DLL won't
> be even loaded on XP due to the missing symbols.
>
> Jose
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stacktrace.PNG
Type: image/x-png
Size: 92497 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-users/attachments/20121101/b3d3876e/attachment-0001.bin>
More information about the mesa-users
mailing list