Earlier quoted context omitted.
I have looked -- no luck so far. I will keep looking...
There are some posts on https://www.cpu-world.com/forum/viewtopic.php?p=330329 , however the images are not visible. I tried registering, but it says "bot registration detected".
SIMD in the 90s: Programming Intel's Pentium MMX
71–74 of 74 posts
Re: SIMD in the 90s: Programming Intel's Pentium MMX
#72> Each MMX register is 64 bits wide. Internally, the MMX registers were aliases of the x87 floating-point registers. Due to the way the first Pentium 3 CPUs (Katmai) were built, they likewise aliased the x87 (and thus, MMX) registers to the XMM SSE registers, but this was hidden from programs. It wasn't until at least the Coppermine revision that they were separate registers again.
I remember hearing a rumour as a young teen that the Coppermine codename meant it actually had copper wiring and that's what made it faster somehow. Copper has lower resistance than aluminium and can therefore help chips run faster - it makes sense! But it was just a codename and the coppermine had aluminium interconnects. My family got a PIII 533Mhz coppermine, in the early sideways Slot 1 configuration. Blazing fas…
During the 00ish years it felt like your system gets killed by a new game.
With the advent of the online update some game makers went way to far, Gothic in Europe was a pre-alpha release that never really got finalized but was really anticipated by gamers here.
I stopped buying games, since this was a rat race.
Everything was evolving and with the utilization of the GForce CPU gaming reached a new hardware design phase where CPU, bus (!), ram, essentially everything had to be finetuned otherwise you would run into massive performance penalties so to say. The term bottleneck wasn’t used back then but describes very clearly the dilemma back then.
In essence everything was getting more expensive while design considerations were critical.
And the systems were so fragile.
Some boards couldn’t handle Intel’s cooling demand for the CPU, it was a crazy time.
I remember the infamous AMD diss that led the company somewhat to the top tier their were then with the Athlon, when a dude filmed what happens during runtime when you remove the heat fan from an Intel vs. AMD.
Weird time, glad it is over. So much hardware and money burned.
Re: SIMD in the 90s: Programming Intel's Pentium MMX
#73Earlier quoted context omitted.
Ironically P.o.d. didn't really use MMX at all except for Dolby Surround decoding[1]. [1] https://retromediahub.com/index.php/Pod:_Planet_of_Death
Your link says that Dolby Surround is one feature that won't work at all without MMX on, but doesn't go so far as to say that it's the only feature that's enhanced with MMX (it uses phrasing like "MMX‑dependent features such as Dolby Surround"). I'm not saying you're wrong, but your link doesn't confirm your statement either. Doesn't look like there's any conclusive info out there, so probably someone needs to actual…
The remaining references available regarding this factoid are incredibly ancient, too:
- https://groups.google.com/g/comp.sys.ibm.pc.games.misc/c/MRF...
- https://www.mobygames.com/game/644/pod/user-review/2384353/
No idea if any additional support was added in one of the subsequent releases.
Re: SIMD in the 90s: Programming Intel's Pentium MMX
#74I would add than SSE1 and SSE2 are now required parts of AMD64 instruction set. All 64-bit PC processors are required to support them both. For that reason, modern compilers are ignoring x87 FPU when building 64-bit binaries. Instead, they compile all float and double arithmetic into SSE1 and SSE2 instructions, respectively.
This is a large part of why "floating point to integer conversion is slow" cargo culting came from (probably disappeared today but was often seen back in the day).
Many x86 standard libraries emitted code that first set the floating point rounding mode before the storing conversion, you could use a /QIfist compiler option on MSVC to omit that but if you were unlucky to call some code that fiddled with the rounding mode your code would become unreliable (iirc unfortunally that did include some old D3D or OGL version).
With SSE iirc it's separate instructions for different rounding instead of a FPU mode.