Profiling CS:GO

Stefan Dösinger stefandoesinger at gmail.com
Wed Feb 5 03:29:31 CST 2014


One more thing: there are a few issues with the nvidia driver on the
command stream. For testing, try to remove vertex buffer objects and pixel
buffer objects from the extension table in directx.c, disable glsl and
enable the game's multithreading. That got me pretty decent performance in
cs:s.
 Am 05.02.2014 10:24 schrieb "Stefan Dösinger" <stefandoesinger at gmail.com>:

> Quick reply from my phone: wglShareLists on Windows had to be called with
> neither context being current. I once hacked a workaround together that
> created 20 extra contexts in advance with the primary one before making the
> first context current in one thread
> Am 04.02.2014 17:23 schrieb "Brock York" <twunknown at gmail.com>:
>
>>
>>
>>
>> On Mon, Feb 3, 2014 at 10:46 PM, Stefan Dösinger <
>> stefandoesinger at gmail.com> wrote:
>>
>>
>>> >> Hey list
>>> >>
>>> >> I'm trying to find out why CS:GO is slower under wine then windows.
>>> >> When running a benchmark in CS:GO Win8 gets ~134fps and wine ~51fps.
>>> >Overall 50% performance is about what you get on average on dual core
>>> machines, depending on the game and driver. The Nvidia binary Linux >driver
>>> gives you roughly 60%, the open source radeon driver approaches 30%-40%.
>>> This depends a lot on the game as well.
>>>
>>
>>> >Did you have a look at my command stream patches? They address a major
>>> shortcoming in wined3d - it adds the ability to move major parts >of the
>>> CPU side work (The OpenGL calls) into a different thread. Windows had this
>>> since many years, and my (not yet upstream) work adds >it to Wine. I
>>> recommend to search the Wine-devel archives, I’ve written a lengthy mail
>>> about it somewhen in January. The single-threaded >nature of WineD3D is
>>> most likely where your 50% CPU usage (Dual Core?) comes from.
>>>
>>
>> I hadn't heard of your command stream patches so I found the emails you
>> were talking about, cloned your repository and tested it today. It does
>> help but I haven't got any solid numbers yet. But this is what i've got so
>> far:
>> https://docs.google.com/spreadsheet/ccc?key=0AmPNQYtpuejodDVQc2ctc084cjVISE5NVUd2ZC03MVE&usp=sharing
>>
>> I should have mentioned that I'm running this on a quad core (Intel Core
>> 2 Quad Q6600) and was getting 50% accross all four cores compared to
>> windows 65-75% accross the four cores. The interesting thing being that so
>> far in my single test. WineD3d with multicore disabled is faster then
>> windows with WineD3d multicore disabled.
>>
>> >> I've been following Stefan Dösingers guide (
>>> http://wiki.winehq.org/Performance) and have
>>>
>> >> compiled wined3d for windows and tryed running CS:GO using wined3d
>>> under win8 but it just crashes while loading the map. At a guess I'd >>say
>>> once it trys to do 3D rendering.
>>> >Did you define USE_WIN32_OPENGL? It is needed to adjust the calling
>>> convention to Win32’s WINAPI convention. I think it is explained in >the
>>> Wiki article, but I cannot check at the moment because I am drafting this
>>> mail in an airplane.
>>>
>>> I followed this guide (http://wiki.winehq.org/WineD3DOnWindows) so I
>> did use USE_WIN32_OPENGL. I found out what the problem was. I was able to
>> use WineD3D with Counter-Strike source but not CS:GO on windows. Turns out
>> if the multicore option is enabled so it uses more then one thread then
>> CS:GO and CS:S will crash when using WineD3D under windows.
>>
>> I also compiled WineD3d with your command stream patches and ran them
>> under windows once I figured out it was the multicore option causing the
>> crashes.
>>
>> Which now I have no idea how to debug why it crashes when it is using
>> multiple threads.
>>
>> Thanks for your time and your reply.
>> Regards Brock YOrk.
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20140205/509bf950/attachment.html>


More information about the wine-devel mailing list