Falcosoft wrote on 2020-06-15, 22:16:I have just checked and the Opengl ICD in the latest 3dfx Voodoo Banshee V1.04.00 driver package does not contain even a single […]
Show full quote
appiah4 wrote on 2020-06-15, 15:34:
I know that Voodoo 3 drivers have 3DNow optimizations.. But do Voodoo Banshee drivers have these also? I'm just asking because my K6-2/500 with a Voodoo Banshee performs pretty lacklustre compared to a Pentium II 333 with a Riva 128 in GLQuake, so I was scratching my head..
I have just checked and the Opengl ICD in the latest 3dfx Voodoo Banshee V1.04.00 driver package does not contain even a single 3DNow! instruction. It's rather easy to check this with BIEW or any other binary viewer that has disassembly option.
3Dnow! instruction blocks have to start/end with EMMS/FEMMS instruction because the MMX/3DNow! registers are mapped onto the x87 stack.
Since FEMMS is much faster than EMMS and all processors that support 3Dnow! also support FEMMS, 3Dnow! code almost always use FEMMS. The hex code of FEMMS is 0x0F0E so it can be searched. 3dfxOGL.dll only contains large blocks of x87 code that are much faster on the pipelined FPU of P5/P6. While K6 has a low latency FPU (most frequent x87 instructions have only 2 clock latency compared to 3/5 clocks of P6) the non-pipelined PFU of K6 does not like long chains of x87 code.
The low latency FPU of K6 likes much better mixed integer/floating point code as could be found in spreadsheet/business applications.
icd_fpu.jpg
While the files that belong to Windows/Directx driver really contain 3Dnow! optimized code:
directx_3dnow.jpg
This is also true for Glide drivers. Both glide2x.dll and glide3x.dll contain 3Dnow! code:
glide_3dnow.jpg
Oh wow! Thanks for this amazing post that confirms what I thought all along, the OpenGL ICD is not 3DNow! Optimized! How the fuck did 3dfx do this? SMH.
So I guess I should try running GLQuake with Voodoo2 MiniGL and Quake II with 3dfx OpenGL options? Would that even work on a Banshee?
Also, as far as anybody knows, do any 3rd party/community drivers have the ICD compiled for 3DNow! ?
Retronautics: A digital gallery of my retro computers, hardware and projects.