Re: Rer: How I succeeded in building Mesa llvmpipe 64-bit on Windows
"Charlie Charsie" <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> > An: Charlie Charsie <[email protected]> > CC: [email protected], [email protected] > 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 _______________________________________________ mesa-users mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-users
stacktrace.PNG
(image/x-png, 90.3 KB) - not displayed