LINUX.ORG.RU
ФорумGames

wine wow cataclysm smp cpu fix


0

0

тестирую панимаш бету катаклизмы - и заметил что в опции настройки граффики - качества текстур - для максимального качество придупреждение что требуеться для него 2ядерный проц и так далее

машина то и так двуядерна - ну и полез выйснять где неправильно говорит вайн программе про колво цпу

выйснил - вот патчик - покрайнеймере с ним - терь игра точно позволяет включить максм качество текстур (тоесть признает что машина более чем двуядерна)

патч определеляет машину как 2 ядра без гипертрединга

--- dlls/kernel32/process.c_old	2010-08-20 23:23:50.000000000 +0600
+++ dlls/kernel32/process.c	2010-09-16 19:24:22.000000000 +0600
@@ -3333,11 +3333,36 @@
  */
 BOOL WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION buffer, PDWORD pBufLen)
 {
-    FIXME("(%p,%p): stub\n", buffer, pBufLen);
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return FALSE;
+    *pBufLen=sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION)*3;
+    if(buffer==NULL){
+       SetLastError(ERROR_INSUFFICIENT_BUFFER);
+       return FALSE;
+       }
+
+    buffer[0].ProcessorMask=3;
+    buffer[0].Relationship=1;
+    buffer[0].NumaNode.NodeNumber=0;
+    buffer[0].Reserved[0]=0;
+    buffer[0].Reserved[1]=0;
+
+    buffer[1].ProcessorMask=1;
+    buffer[1].Relationship=0;
+    buffer[1].ProcessorCore.Flags=1;
+    buffer[1].Reserved[0]=0;
+    buffer[1].Reserved[1]=0;
+
+    buffer[2].ProcessorMask=2;
+    buffer[2].Relationship=0;
+    buffer[2].ProcessorCore.Flags=1;
+    buffer[2].Reserved[0]=0;
+    buffer[2].Reserved[1]=0;
+
+//    FIXME("(%p,%p): stub\n", buffer, pBufLen);
+    return TRUE;
 }
 
+
+
 /***********************************************************************
  *           GetLogicalProcessorInformationEx   (KERNEL32.@)
  */
★★

Последнее исправление: ae1234 (всего исправлений: 1)

интересно, спасибо.

в багзиллу вайна отписали? если нет - отпишите пожалуйста, там будет больше пользы чем тут.

//ps: патч посмотрю по возможности, т.е. возможно что не скоро

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

А вы что ? В катаклизм играть собираетесь?

anonymous
()
Ответ на: комментарий от Sylvia

играть ессно буду - а троллей неспрашивают

а в багзиллу - так то надо реальный патчь - который бы анализировал колво процов реально - и выдавал нужный отчет + потдержка разный ос-ей (на линуксе то cat /proc/cpuinfo и выдавай отчет по ней - а как на других то )

ae1234 ★★
() автор топика

Flags=1 на Flags=0 исправьте

ae1234 ★★
() автор топика
Ответ на: комментарий от ae1234

> а в багзиллу - так то надо реальный патчь - который бы анализировал колво процов реально - и выдавал нужный отчет + потдержка разный ос-ей (на линуксе то cat /proc/cpuinfo и выдавай отчет по ней - а как на других то )

здаетсо мине что такое в генте при сборке вайна можно генерить в ебилде
конкретно патч и потом средствами ебилда патчить может не, из-за дайжестов, но костылем можно

а еще лучшее через реестр, как обычно делают, прописал в реестре проц и усе, плюс на каждый префикс можно будет разные процы иметь :)

anTaRes ★★★★
()

сдается мне что wine сообщает игрушке что у него только одно ядро не потому, что не правильно определяет кол-во ядер, а потому что использовать больше одного не умеет. Так что это скорее хак, чем патч исправляющий багу, и взяд ли он(патч) кому то в багзиле wine нужен. Надеюсь я не прав.

Visual_N
()
Ответ на: комментарий от Visual_N

сдается мне что wine сообщает игрушке что у него только одно ядро не потому, что не правильно определяет кол-во ядер, а потому что использовать больше одного не умеет. Так что это скорее хак, чем патч исправляющий багу, и взяд ли он(патч) кому то в багзиле wine нужен. Надеюсь я не прав.

Ты прав лишь частично. Wine умеет многопоточность, а сообщает он только об одном ядре тупо потому, что функция получения информации о процессоре (GetLogicalProcessorInformation) просто не реализована. Но сабжевый пачт для этой функции - это действительно хак, т.к. реальное количество ядер он всё-равно не сообщает =).

Deleted
()
Ответ на: комментарий от Visual_N

вайн вполне нормально умеет многопоточность

вот тока WoW - несмотря что у него около 10-15 нитей - реальная нагрузка идет на одну нить - хоть в винде хоть в линуксе
тобиш неумеет WoW реально юзать многоядерность - сам по себе

а этот патчик - именно быстрый мелкий патчь для исправления невозможности выбора максимального качества текстур в бетте

ae1234 ★★
() автор топика
Ответ на: комментарий от Xellos

неа - вот top показывающий нити wow - рельно напрягаеться тока одна

4769 20 0 3247m 889m 23m R 88 22.4 6:31.31 WoW.exe
4674 20 0 6948 4332 660 S 5 0.1 0:23.51 wineserver
4777 20 0 3247m 889m 23m S 1 22.4 0:08.99 WoW.exe
4779 20 0 3247m 889m 23m S 1 22.4 0:03.17 WoW.exe
4778 20 0 3247m 889m 23m S 1 22.4 0:05.15 WoW.exe
4781 20 0 3247m 889m 23m S 1 22.4 0:08.72 WoW.exe
4853 20 0 3247m 889m 23m S 1 22.4 0:02.61 WoW.exe
4774 20 0 3247m 889m 23m S 0 22.4 0:00.09 WoW.exe
4788 20 0 3247m 889m 23m S 0 22.4 0:02.84 WoW.exe
4790 20 0 3247m 889m 23m S 0 22.4 0:01.84 WoW.exe
4793 20 0 3247m 889m 23m S 0 22.4 0:00.94 WoW.exe
4825 20 0 3247m 889m 23m S 0 22.4 0:01.22 WoW.exe
4827 20 0 3247m 889m 23m S 0 22.4 0:01.21 WoW.exe
4830 20 0 3247m 889m 23m S 0 22.4 0:01.19 WoW.exe
4831 20 0 3247m 889m 23m S 0 22.4 0:01.24 WoW.exe
4833 20 0 3247m 889m 23m S 0 22.4 0:01.21 WoW.exe
4834 20 0 3247m 889m 23m S 0 22.4 0:01.19 WoW.exe
4835 20 0 3247m 889m 23m S 0 22.4 0:01.22 WoW.exe
4838 20 0 3247m 889m 23m S 0 22.4 0:01.19 WoW.exe
4839 20 0 3247m 889m 23m S 0 22.4 0:01.20 WoW.exe
4840 20 0 3247m 889m 23m S 0 22.4 0:01.20 WoW.exe

ae1234 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.