Re: Rer: How I succeeded in building Mesa llvmpipe 64-bit on Windows

Brian Paul <[email protected]>
Newsgroups gmane.comp.video.mesa3d.user
Organization VMware, Inc.
Message-ID <[email protected]>
I just recently fixed that bug in commit 
11070105f0b5ad20f12bb40a8dd0b357924bcfdd.

Can you try the latest sources from Mesa/git?

The next release of Mesa 9.x should have the fix too.

-Brian

On 11/01/2012 08:40 AM, Charlie Charsie wrote:
> If I try the debug DLL along with other applications (e.g. OpenGL Extensions Viewer 4.0.8, Realtech VR), I get the stack trace attached to this.
>
>
> Output:
> src\mesa\state_tracker\st_mesa_to_tgsi.c:1264:st_translate_mesa_program: freeing bad or corrupted memory 0x2063f280
> src\gallium\auxiliary\util\u_debug_memory.c:160:debug_free: Assertion `0' failed.
>
>
>
>
>
> -------- 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.