Bug 3342 - Wrong CPU capabilities detection
Summary: Wrong CPU capabilities detection
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libSDL (show other bugs)
Version: unstable
Hardware: all Linux
: P1 blocker
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-12-03 15:41 MSK by Sir Raorn
Modified: 2005-07-13 15:45 MSD (History)
1 user (show)

See Also:


Attachments
"Заплатка" для корректного определения capabilities (works for me, как говорится) (308 bytes, application/x-gzip)
2003-12-03 16:33 MSK, Sir Raorn
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sir Raorn 2003-12-03 15:41:32 MSK
Неправильно определяются возможности процессора, в частности поддержка 3DNow!,
что приводит к падениям по SIGILL на других процессорах.

В libSDL есть функция Hermes_X86_CPU(), возвращающая значение регистра EDX после
выполнения команды cpuid с EAX=1, наличие 3DNow! подразумевается, если
установлен старший бит (0x80000000).

Однако это не так. Поддержка 3DNow! определяется проверкой старшего бита
(0x80000000) в EDX после выполнения команды cpuid с EAX=0x80000001 на
процессорах, поддерживающих это.
Comment 1 Alexander Bokovoy 2003-12-03 16:04:27 MSK
По-хорошему, для целей дистрибутива нужно вообще выкинуть эти самописные
определения из libSDL и использовать то, что возвращает ядро в /proc/cpu. Да,
этот патч будет не принят в libSDL, но ядро у нас гарантированно более корректно
определяет возможности процессора, чем libSDL.
Comment 2 Anton Farygin 2003-12-03 16:24:27 MSK
да. Более того - у меня есть код (C/C++), который корректно определяет поддержку
MMX/SSE в CPU.

Можно его вытащить в библиотечку и слинковать с libSDL.
а можно это делать и через proc.

В общем - займусь на следующей неделе... может быть раньше.
Comment 3 Sir Raorn 2003-12-03 16:33:31 MSK
Created attachment 318 [details]
"Заплатка" для корректного определения capabilities (works for me, как говорится)
Comment 4 Anton Farygin 2003-12-15 13:17:55 MSK
fixed (SDL-1.2.6-alt3)

патч сработал и проверен.

Просьба проверить на машинах с AMD процессором ;-)