SGI OpenGL for Windows crashes on Cyrix 6x86 processors

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by Mark K Vallevan » Sat, 02 Aug 1997 04:00:00



I installed SGI OpenGL on 4 different systems: Intel DX4/100
Win95; Intel P200 WinNT; Cyrix 6x86-150 Win95; and, Cyrix 6x86-150 WinNT.  It
works fine on the Intel machines, fails
on the Cyrix.  It fails on the CPUID instruction, which is
not supported on the Cyrix.  Se the information after this
dump info...

Here is the info from a Cyrix Win95 system when a GLUT demo
program crashed:

MAKE_FACE executed an invalid instruction in
module OPENGL.DLL at 0137:69025ded.
Registers:
EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
EBX=00420078 SS=013f ESP=0064fc54 EBP=0064fc6c
ECX=00770700 DS=013f ESI=69116558 FS=2b9f
EDX=00000000 ES=013f EDI=004213c8 GS=0dc6
Bytes at CS:EIP:
0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
Stack dump:
00000000 00770700 00420078 00000000 00420078
00000040 004213d0 69025e15 690592d5 00420078
004213d0 004213c8 69116558 00420078 3f800000
690516d9

Call stack
OPENGL! 69025ded()
OPENGL! 69025e15()
OPENGL! 6907c3a0()

Registers
 EAX = 00000001 EBX = 00420078
 ECX = 00770700 EDX = 00000000
 ESI = 69116558 EDI = 004213C8
 EIP = 69025DED ESP = 0064FC54
 EBP = 0064FC6C EFL = 00010246 CS = 0137
 DS = 013F ES = 013F SS = 013F FS = 2B9F
 GS = 0DC6 OV=0 UP=0 EI=1 PL=0 ZR=1 AC=0
 PE=1 CY=0
 ST0 = +0.00000000000000000e+0000
 ST1 = +0.00000000000000000e+0000
 ST2 = -0.10354167785335781e+1130
 ST3 = +3.42331175268873770e+4297
 ST4 = +0.00000000000000000e+0000
 ST5 = +0.00000000000000000e+0000
 ST6 = +0.00000000000000000e+0000
 ST7 = +0.00000000000000000e+0000
 CTRL = 027F STAT = 0120 TAGS = FFFF
 EIP = 69064C15 CS = 0137 DS = 013F
 EDO = 0064FC88

Disassembly
69025DA0   push        ebp
69025DA1   mov         eax,[691159A8]
69025DA6   mov         ebp,esp
69025DA8   sub         esp,4
69025DAB   test        eax,eax
69025DAD   nop
69025DAE   push        ebx
69025DAF   je          69025E06
69025DB1   mov         dword ptr ds:[691159A8h],0
69025DBB   push        691159B0h
69025DC0   call        690F32C0
69025DC5   add         esp,4
69025DC8   test        eax,eax
69025DCA   je          69025DE4
69025DCC   push        eax
69025DCD   call        690F32B0
69025DD2   add         esp,4
69025DD5   mov         [6911E1B0],eax
69025DDA   mov         eax,[6911E1B0]
69025DDF   pop         ebx
69025DE0   mov         esp,ebp
69025DE2   pop         ebp
69025DE3   ret
69025DE4   push        eax
69025DE5   push        ebx
69025DE6   push        ecx
69025DE7   push        edx
69025DE8   mov         eax,1
69025DED   cpuid                              <--- Here!
69025DEF   mov         dword ptr [ebp-4],edx
69025DF2   pop         edx
69025DF3   pop         ecx
69025DF4   pop         ebx
69025DF5   pop         eax
69025DF6   mov         eax,dword ptr [ebp-4]
69025DF9   and         eax,800000h
69025DFE   shr         eax,17h
69025E01   mov         [6911E1B0],eax
69025E06   mov         eax,[6911E1B0]
69025E0B   pop         ebx
69025E0C   mov         esp,ebp
69025E0E   pop         ebp
69025E0F   ret
69025E10   call        69025DA0
69025E15   test        eax,eax
69025E17   je          69025E3B
69025E19   mov         eax,dword ptr [esp+4]
69025E1D   mov         cl,byte ptr [eax+5FCh]
69025E23   test        cl,cl
69025E25   je          69025E3B
69025E27   mov         eax,dword ptr [eax+355Ch]
69025E2D   mov         ecx,dword ptr [eax+0Ch]
69025E30   cmp         ecx,10h
69025E33   jg          69025E3B
69025E35   mov         eax,1
69025E3A   ret
69025E3B   xor         eax,eax
69025E3D   ret

According to Intel, the CPUID instruction is supported in
a processor if bit 21 of the EFLAGS register can be written.
Looking at the disassembly, this test is not done first.  The
CPUID is simply executed with EAX=1, and the EDX is saved.
EAX=1 indicates standard operation.  EDX will contains the
processor signature.

AMD has support for CPUID as well.  They also recommend writing
bit 21 of EFLAGS to test if the CPUID instruction is supported.

I don't know if Cyrix supports CPUID.  It certainly looks like
it does not.  A quick net search seems to confirm this, but I
didn't find any Cyrix-official information like the Intel and
AMD processors.

This article  CPUID Algorithm Wars  seems to have some good
info.  Also, if the test is to detect MMX, remember that AMD and Cyrix have MMX
processors.  They may require different detection
schemes.

--
Regards.

(c)"Only madmen and English Bulldogs..."
.

 
 
 

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by Mark K Vallevan » Sat, 02 Aug 1997 04:00:00


Missing this ref:
http://www.x86.org/ddj/Nov96/Nov96.html

 
 
 

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by Brian Mac » Tue, 05 Aug 1997 04:00:00


Actually, it is supported... you just need to turn it on. Go to
www.yahoo.com and serach for Tom's Hardware... pick the first one that
comes up. You should be able to follow links to find Cyrix support
programs... I think something called cxe is the one I found most useful.

Brian Macy


> I installed SGI OpenGL on 4 different systems: Intel DX4/100
> Win95; Intel P200 WinNT; Cyrix 6x86-150 Win95; and, Cyrix 6x86-150 WinNT.  It
> works fine on the Intel machines, fails
> on the Cyrix.  It fails on the CPUID instruction, which is
> not supported on the Cyrix.  Se the information after this
> dump info...

> Here is the info from a Cyrix Win95 system when a GLUT demo
> program crashed:

> MAKE_FACE executed an invalid instruction in
> module OPENGL.DLL at 0137:69025ded.
> Registers:
> EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
> EBX=00420078 SS=013f ESP=0064fc54 EBP=0064fc6c
> ECX=00770700 DS=013f ESI=69116558 FS=2b9f
> EDX=00000000 ES=013f EDI=004213c8 GS=0dc6
> Bytes at CS:EIP:
> 0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
> Stack dump:
> 00000000 00770700 00420078 00000000 00420078
> 00000040 004213d0 69025e15 690592d5 00420078
> 004213d0 004213c8 69116558 00420078 3f800000
> 690516d9

> Call stack
> OPENGL! 69025ded()
> OPENGL! 69025e15()
> OPENGL! 6907c3a0()

> Registers
>  EAX = 00000001 EBX = 00420078
>  ECX = 00770700 EDX = 00000000
>  ESI = 69116558 EDI = 004213C8
>  EIP = 69025DED ESP = 0064FC54
>  EBP = 0064FC6C EFL = 00010246 CS = 0137
>  DS = 013F ES = 013F SS = 013F FS = 2B9F
>  GS = 0DC6 OV=0 UP=0 EI=1 PL=0 ZR=1 AC=0
>  PE=1 CY=0
>  ST0 = +0.00000000000000000e+0000
>  ST1 = +0.00000000000000000e+0000
>  ST2 = -0.10354167785335781e+1130
>  ST3 = +3.42331175268873770e+4297
>  ST4 = +0.00000000000000000e+0000
>  ST5 = +0.00000000000000000e+0000
>  ST6 = +0.00000000000000000e+0000
>  ST7 = +0.00000000000000000e+0000
>  CTRL = 027F STAT = 0120 TAGS = FFFF
>  EIP = 69064C15 CS = 0137 DS = 013F
>  EDO = 0064FC88

> Disassembly
> 69025DA0   push        ebp
> 69025DA1   mov         eax,[691159A8]
> 69025DA6   mov         ebp,esp
> 69025DA8   sub         esp,4
> 69025DAB   test        eax,eax
> 69025DAD   nop
> 69025DAE   push        ebx
> 69025DAF   je          69025E06
> 69025DB1   mov         dword ptr ds:[691159A8h],0
> 69025DBB   push        691159B0h
> 69025DC0   call        690F32C0
> 69025DC5   add         esp,4
> 69025DC8   test        eax,eax
> 69025DCA   je          69025DE4
> 69025DCC   push        eax
> 69025DCD   call        690F32B0
> 69025DD2   add         esp,4
> 69025DD5   mov         [6911E1B0],eax
> 69025DDA   mov         eax,[6911E1B0]
> 69025DDF   pop         ebx
> 69025DE0   mov         esp,ebp
> 69025DE2   pop         ebp
> 69025DE3   ret
> 69025DE4   push        eax
> 69025DE5   push        ebx
> 69025DE6   push        ecx
> 69025DE7   push        edx
> 69025DE8   mov         eax,1
> 69025DED   cpuid                              <--- Here!
> 69025DEF   mov         dword ptr [ebp-4],edx
> 69025DF2   pop         edx
> 69025DF3   pop         ecx
> 69025DF4   pop         ebx
> 69025DF5   pop         eax
> 69025DF6   mov         eax,dword ptr [ebp-4]
> 69025DF9   and         eax,800000h
> 69025DFE   shr         eax,17h
> 69025E01   mov         [6911E1B0],eax
> 69025E06   mov         eax,[6911E1B0]
> 69025E0B   pop         ebx
> 69025E0C   mov         esp,ebp
> 69025E0E   pop         ebp
> 69025E0F   ret
> 69025E10   call        69025DA0
> 69025E15   test        eax,eax
> 69025E17   je          69025E3B
> 69025E19   mov         eax,dword ptr [esp+4]
> 69025E1D   mov         cl,byte ptr [eax+5FCh]
> 69025E23   test        cl,cl
> 69025E25   je          69025E3B
> 69025E27   mov         eax,dword ptr [eax+355Ch]
> 69025E2D   mov         ecx,dword ptr [eax+0Ch]
> 69025E30   cmp         ecx,10h
> 69025E33   jg          69025E3B
> 69025E35   mov         eax,1
> 69025E3A   ret
> 69025E3B   xor         eax,eax
> 69025E3D   ret

> According to Intel, the CPUID instruction is supported in
> a processor if bit 21 of the EFLAGS register can be written.
> Looking at the disassembly, this test is not done first.  The
> CPUID is simply executed with EAX=1, and the EDX is saved.
> EAX=1 indicates standard operation.  EDX will contains the
> processor signature.

> AMD has support for CPUID as well.  They also recommend writing
> bit 21 of EFLAGS to test if the CPUID instruction is supported.

> I don't know if Cyrix supports CPUID.  It certainly looks like
> it does not.  A quick net search seems to confirm this, but I
> didn't find any Cyrix-official information like the Intel and
> AMD processors.

> This article  CPUID Algorithm Wars  seems to have some good
> info.  Also, if the test is to detect MMX, remember that AMD and Cyrix have MMX
> processors.  They may require different detection
> schemes.

> --
> Regards.

> (c)"Only madmen and English Bulldogs..."
> .

 
 
 

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by David Na » Mon, 11 Aug 1997 04:00:00



: >
: > I installed SGI OpenGL on 4 different systems: Intel DX4/100
: > Win95; Intel P200 WinNT; Cyrix 6x86-150 Win95; and, Cyrix 6x86-150 WinNT.  It
: > works fine on the Intel machines, fails
: > on the Cyrix.  It fails on the CPUID instruction, which is
: > not supported on the Cyrix.  Se the information after this
: > dump info...

I just downloaded the 'new' OpenGL dll and it crashes most resoundingly
when I try to run either of the bundled demo programs.  Is this also
related to the CPUID instruction(?) referred to in the posts about
Cyrix/OpenGL problems?  Am I just S.O.L. until I get my new MMX system,
or is there some sort of work-around available for us folks with aged
(Intel) PCs?

My 'invalid instruction' info looks suspiciously similar to Mark's.  I'll
include his after mine so people can compare them if so inclined.

Here's the info given after my 486'66 with 24MB crashes one of the demo
progs...

IDEAS executed an invalid instruction in
module OPENGL.DLL at 0137:69025ded.
Registers:
EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
EBX=00440078 SS=013f ESP=0066fc9c EBP=0066fcb4
ECX=00790460 DS=013f ESI=69116558 FS=0d07
EDX=00000000 ES=013f EDI=004413c8 GS=259e
Bytes at CS:EIP:
0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
Stack dump:
00000000 00790460 00440078 00000000 00440078 00000040 004413d0 69025e15
690592d5 00440078 004413d0 004413c8 69116558 00440078 3f800000 690516d9

Thanks in advance.  Mark's info is below.

                                                        Dave Nagy

: > Here is the info from a Cyrix Win95 system when a GLUT demo
: > program crashed:
: >
: > MAKE_FACE executed an invalid instruction in
: > module OPENGL.DLL at 0137:69025ded.
: > Registers:
: > EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
: > EBX=00420078 SS=013f ESP=0064fc54 EBP=0064fc6c
: > ECX=00770700 DS=013f ESI=69116558 FS=2b9f
: > EDX=00000000 ES=013f EDI=004213c8 GS=0dc6
: > Bytes at CS:EIP:
: > 0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
: > Stack dump:
: > 00000000 00770700 00420078 00000000 00420078
: > 00000040 004213d0 69025e15 690592d5 00420078
: > 004213d0 004213c8 69116558 00420078 3f800000
: > 690516d9

 
 
 

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by D. Radlei » Mon, 11 Aug 1997 04:00:00




> : >
> : > I installed SGI OpenGL on 4 different systems: Intel DX4/100
> : > Win95; Intel P200 WinNT; Cyrix 6x86-150 Win95; and, Cyrix 6x86-150
> WinNT.  It
> : > works fine on the Intel machines, fails
> : > on the Cyrix.  It fails on the CPUID instruction, which is
> : > not supported on the Cyrix.  Se the information after this
> : > dump info...

> I just downloaded the 'new' OpenGL dll and it crashes most
> resoundingly
> when I try to run either of the bundled demo programs.  Is this also
> related to the CPUID instruction(?) referred to in the posts about
> Cyrix/OpenGL problems?  Am I just S.O.L. until I get my new MMX
> system,
> or is there some sort of work-around available for us folks with aged
> (Intel) PCs?

> My 'invalid instruction' info looks suspiciously similar to Mark's.
> I'll
> include his after mine so people can compare them if so inclined.

> Here's the info given after my 486'66 with 24MB crashes one of the
> demo
> progs...

> IDEAS executed an invalid instruction in
> module OPENGL.DLL at 0137:69025ded.
> Registers:
> EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
> EBX=00440078 SS=013f ESP=0066fc9c EBP=0066fcb4
> ECX=00790460 DS=013f ESI=69116558 FS=0d07
> EDX=00000000 ES=013f EDI=004413c8 GS=259e
> Bytes at CS:EIP:
> 0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
> Stack dump:
> 00000000 00790460 00440078 00000000 00440078 00000040 004413d0
> 69025e15
> 690592d5 00440078 004413d0 004413c8 69116558 00440078 3f800000
> 690516d9

> Thanks in advance.  Mark's info is below.

>                                                         Dave Nagy

> : > Here is the info from a Cyrix Win95 system when a GLUT demo
> : > program crashed:
> : >
> : > MAKE_FACE executed an invalid instruction in
> : > module OPENGL.DLL at 0137:69025ded.
> : > Registers:
> : > EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
> : > EBX=00420078 SS=013f ESP=0064fc54 EBP=0064fc6c
> : > ECX=00770700 DS=013f ESI=69116558 FS=2b9f
> : > EDX=00000000 ES=013f EDI=004213c8 GS=0dc6
> : > Bytes at CS:EIP:
> : > 0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
> : > Stack dump:
> : > 00000000 00770700 00420078 00000000 00420078
> : > 00000040 004213d0 69025e15 690592d5 00420078
> : > 004213d0 004213c8 69116558 00420078 3f800000
> : > 690516d9

   I'm afraid that it also crashes on my AMD DX4 system.:

IDEAS executed an invalid instruction in
module OPENGL.DLL at 0137:69025ded.
Registers:
EAX=00000001 CS=0137 EIP=69025ded EFLGS=00010246
EBX=00440078 SS=013f ESP=0066fc9c EBP=0066fcb4
ECX=00790540 DS=013f ESI=69116558 FS=18a7
EDX=00000000 ES=013f EDI=004413c8 GS=1896
Bytes at CS:EIP:
0f a2 89 55 fc 5a 59 5b 58 8b 45 fc 25 00 00 80
Stack dump:
00000000 00790540 00440078 00000000 00440078 00000040 004413d0 69025e15
690592d5 00440078 004413d0 004413c8 69116558 00440078 3f800000 690516d9

Back to MS version I suppose.

 
 
 

SGI OpenGL for Windows crashes on Cyrix 6x86 processors

Post by Michael I. Gol » Mon, 11 Aug 1997 04:00:00


| I just downloaded the 'new' OpenGL dll and it crashes most resoundingly
| when I try to run either of the bundled demo programs.  Is this also
| related to the CPUID instruction(?) referred to in the posts about
| Cyrix/OpenGL problems?  Am I just S.O.L. until I get my new MMX system,
| or is there some sort of work-around available for us folks with aged
| (Intel) PCs?

We'll have to do a new release to fix this.  Its not scheduled yet but
I'd like to do it soon.
--
Michael I. Gold     Silicon Graphics Inc.     http://www.veryComputer.com/
And my mama cried,  "Nanook a no no! Don't be a * eskimo! Save your
money, don't go to the show!"  Well I turned around and I said, "Ho! Ho!"

 
 
 

1. 3DS with Cyrix 6x86 processor - How good?

I'm curious to find out if running 3DS r4 and 3DMAX with a Cyrix 6x86
class processor causes any problems. Also, I would like to know if
3DS/3DMAX run faster with a pentium or Cyrix chip of equal rating: ie.
Cyrix P166+ (133MHz) versus Intel Pentium 166 MHz.
Any insight is welcome.

Christian

2. How to create a TImage at runtime?

3. SGI OpenGL for windows crashes

4. GDI drawing and Double Buffering on Windows NT/95 platform

5. Povray and Cyrix 6x86...

6. font size for labels, key, title etc

7. Cyrix 6x86 and POV?

8. 3d Studio with Cyrix 6x86

9. 3D Studio and Cyrix 6x86+

10. Cyrix 6x86 Problem

11. Max on the 6x86 by cyrix?

12. Cyrix 6x86