Live data from Hacker News

Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

themaister.net

21–30 of 69 posts

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#22
post #8
post #7

Earlier quoted context omitted.

Thanks for sharing! Back then the appeal of console games to me were that beyond a convenient factor, they were also very specialised hardware for one task - running games. I remember playing FF12 (IZJS) on a laptop in 2012 and it ran very stable granted that was 6 years post release but by then had the emulator issues been fully solved? Re. Wild time for low level programming I remember hearing that Crash Bandicoot…

Pretty sure all 3D PS1 games tapped into assembly for performance. The most “famous” thing about Crash programming is probably that it’s all in lisp, with inline assembly.

Most games were primarily C. 3D performance came from the graphics hardware, which had straightforward C APIs and dedicated texture RAM. The machine lacked a floating point processor, so I think we wrote some fixed point math routines in assembly, but that's basically it.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#24
post #5

Earlier quoted context omitted.

That helps immensely. Surprised the author assumed this was implicit.

Among the intended audience, it likely is. I think this article is here to equally amuse and traumatize folks familiar with the system. The Emotion Engine (CPU) to GS (GPU) link was what made the PS2 so impressive for the time, but it also made it somewhat hard to code for and immensely hard to emulate. If I recall correctly, the N64 has something like 4x the memory bandwidth (shared) of the PS1, and the PS2 had roug…

> However, the PS2's GS RAM clocked in at 48GB/s, more than the external memory bandwidth of the Cell (~25GB/s), which meant that PS3 emulation of PS2 games was actually done with embedded PS2 hardware.

That's kinda overselling it, honestly. When you're talking about the GIF, only the VU1's vertex pipeline was able to achieve this speed directly. PATH2/PATH3 used the commodity RDRAM's bus (unless you utilized MFIFO to mirror a small portion of that to the buffer, which was much more difficult and underutilized than otherwise since it was likely to stall the other pipelines); the exact same bus Pentium 4's would use a few months after the PS2's initial launch (3.2-6.4GB/s). It's more akin to a (very large) 4M chip cache, than proper RAM/VRAM.

As to the PS3 being half that, that's more a design decision of the PS3. They built the machine around a universal bus (XDR) versus using bespoke interconnects. If you look at the Xbox 360, they designed a chip hierarchy similar to the PS2 architecture; with their 10MB EDRAM (at 64GB/s) for GPU specific operations.

As to those speeds being unique. That bandwidth was made possible via eDRAM (on-chip memory). Other bespoke designs utilized eDRAM, and the POWER4 (released around the same time) had per-chip 1.5M L2 cache running at over double that bandwidth (100GB/s). It also was able to communicate chip-to-chip (up to 4x4 SMP) at 40GB/s and communicate with it's L3 at 44GB/s (both, off-chip buses). So other hardware was definitely achieving similar to and greater bandwidths, it just wasn't happening on home PCs.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#25
> Pray you have programmable blending

I prayed for programmable blending via "blending shaders" (and FWIW programmable texture decoding via "texture shaders" - useful for custom texture format/compression, texture synthesis, etc) since i first learned about pixel shaders waay back in early 2000s.

Somehow GPUs got raytracing before programmable blending when the former felt like some summer night dream and the latter just about replacing yet another fixed function block with a programmable one :-P

(still waiting for texture shaders though)

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#26

Earlier quoted context omitted.

I realized from recent Anand Tech sunset article[1] that 'GPU' was coined by Nvidia way later than I expected - >A lot of things have changed in the last quarter-century – in 1997 NVIDIA had yet to even coin the term “GPU” [1] https://www.anandtech.com/show/21542/end-of-the-road-an-anan...

How about the "Sony GPU" (1994) used in the PlayStation? Edit: source https://www.computer.org/publications/tech-news/chasing-pixe...

I think I remember seeing the term GPU used in a Byte article from the 80s? It was a while ago when I saw it (~15 years), so I can't really remember any details.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#27
post #26

Earlier quoted context omitted.

How about the "Sony GPU" (1994) used in the PlayStation? Edit: source https://www.computer.org/publications/tech-news/chasing-pixe...

I think I remember seeing the term GPU used in a Byte article from the 80s? It was a while ago when I saw it (~15 years), so I can't really remember any details.

There is a SIGGRAPH Pioneers panel where participants talk about the history of the GPU (you can find the full talk on YouTube, this is a summary article): https://www.jonpeddie.com/news/gpus-how-did-we-get-here/

  > Two years later, Nvidia introduced the GPU. He [Curtis Priem] recalls that
  > Dan Vivoli, Nvidia's marketing person, came up with the term GPU, for 
  > graphics processing. "I thought that was very arrogant of him because how 
  > dare this little company take on Intel, which had the CPU," he said.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#28

Earlier quoted context omitted.

I realized from recent Anand Tech sunset article[1] that 'GPU' was coined by Nvidia way later than I expected - >A lot of things have changed in the last quarter-century – in 1997 NVIDIA had yet to even coin the term “GPU” [1] https://www.anandtech.com/show/21542/end-of-the-road-an-anan...

How about the "Sony GPU" (1994) used in the PlayStation? Edit: source https://www.computer.org/publications/tech-news/chasing-pixe...

The article said it resolved to "Geometry Processing Unit" at that time.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#29
post #20

How does this approach compare to Dolphin's ubershader?

Basically, not at all. Dolphin's ubershader does one thing; simulate fixed-function blending/texturing using modern flexible hardware. (It was already an old technique when Dolphin adopted it, by the way.) This project is a complete renderer, with the rasterizer and all, and as you can see from the text, it includes an ubershader for the blending. The shader doesn't draw triangles, it just gets called for each point in the triangle and with some inputs and gets to decide what color it is.

It's vaguely like comparing a full CPU emulator with something that implements the ADD and MUL instructions.

Re: Playstation 2 GS emulation – the final frontier of Vulkan compute emulation

#30
post #3

Earlier quoted context omitted.

It stands for “Graphics Synthesizer” - Sony’s name for the “GPU” in the PS2.

I realized from recent Anand Tech sunset article[1] that 'GPU' was coined by Nvidia way later than I expected - >A lot of things have changed in the last quarter-century – in 1997 NVIDIA had yet to even coin the term “GPU” [1] https://www.anandtech.com/show/21542/end-of-the-road-an-anan...

Here's GPU (Graphics Processing Unit) in Byte Magazine from February 1985.

https://archive.org/details/byte-magazine-1985-02/1985_02_BY...

Post reply on HN