<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>3342</bug_id>
          
          <creation_ts>2003-12-03 15:41:32 +0300</creation_ts>
          <short_desc>Wrong CPU capabilities detection</short_desc>
          <delta_ts>2005-07-13 15:45:37 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libSDL</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sir Raorn">raorn</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>greh</cc>
    
    <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10797</commentid>
    <comment_count>0</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2003-12-03 15:41:32 +0300</bug_when>
    <thetext>Неправильно определяются возможности процессора, в частности поддержка 3DNow!,
что приводит к падениям по SIGILL на других процессорах.

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

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

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

В общем - займусь на следующей неделе... может быть раньше.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10800</commentid>
    <comment_count>3</comment_count>
      <attachid>318</attachid>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2003-12-03 16:33:31 +0300</bug_when>
    <thetext>Created attachment 318
&quot;Заплатка&quot; для корректного определения capabilities (works for me, как говорится)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10909</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2003-12-15 13:17:55 +0300</bug_when>
    <thetext>fixed (SDL-1.2.6-alt3)

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

Просьба проверить на машинах с AMD процессором ;-)
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>318</attachid>
            <date>2003-12-03 16:33:29 +0300</date>
            <delta_ts>2003-12-03 16:43:01 +0300</delta_ts>
            <desc>&quot;Заплатка&quot; для корректного определения capabilities (works for me, как говорится)</desc>
            <filename>SDL-1.2.6-alt-cpuinfo.patch.gz</filename>
            <type>application/x-gzip</type>
            <size>308</size>
            <attacher name="Sir Raorn">raorn</attacher>
            
              <data encoding="base64">H4sICCTkzT8AA1NETC0xLjIuNi1hbHQtY3B1aW5mby5wYXRjaACNUDtvgzAQnvGvuN0c2IbSiImh
Y5SlY1VFLoYAKgEZkaL++p4hD9Kqaq2zwPe9zjZ1WQKOdgfPT1uUgQoS7Gx9CAebh1Vh22IIp02y
b3V9DPTQ3mi/MRgi/tPMU0JIFDGqBJRI4wcq4CIWgnHO/45y+gilQhGBTFIq4fQR6bMMUErpSwXc
faMYsoyB1xQQbCX9UPXjUGmGHuOMe213AvPRWQMveT/uy3d9GF59ccUKPbmTR2Bt5m5n5yZtOjSf
5KuoD1e2S1nYQAR9NFCYyX8sl1Wdmes0wmfuxWEjllXd5eZtv0alQ5u3c/wPsbwXX8ZYW9NFvk9B
VPJL3SN1vaahbtdaUdkXFRHRcD4CAAA=
</data>

          </attachment>
      

    </bug>

</bugzilla>