[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