5 ms·
If you ignore the GPU acceleration APIs and try programming graphics the old fashioned way but on modern multi-core & SIMD machines, you can more or less still
by pengaru 3y ago
If you ignore the GPU acceleration APIs and try programming graphics the old fashioned way but on modern multi-core & SIMD machines, you can more or less still have a very similar rewarding experience.
Sure it won't compete with the performance of GPUs, but I feel like we should have a category of GPU-less PC graphics for things like the demo scene. Where you strive to deliver interesting results at modern resolutions but hamstrung by CPU-only, incentivizing exploring parallelization techniques, SIMD optimization that strongly resembles assembly coding of yesteryear, and good old fashioned cleverness.
- RetroTechie 3y agoYeah I'd like something like that: * 'Many'-core CPU (say 8..16 relatively simple cores, eg. RISC-V) * A good, but modest amount of RAM (eg. few dozen... few hundred MB) * Integrated graphics, but of a conceptually simple type, eg. a plain framebuffer + _maybe_ some blitter / DMA / scrolling / hw sprite support. Simple enough that a single programmer can wrap their head around it (vs. complex 3D GPU where hardly anyone knows all its details). * Graphics outputting to common consumer display (HDMI, DisplayPort) * Sound & some other common I/O Roughly Commodore Amiga level complexity (at most! simpler = better), just modern fabrication tech & faster. This would be perfect platform for all sorts of homebrew games, hobby / retro style OSes, educational, industrial uses & more. But doesn't exist afaik. Microcontroller usually don't have built-in graphics, too little RAM, or otherwise aren't quite it. A step up (small SBC) and you get loooaads of peripherals, 3D GPU, firmware & associated complexity thrown in 'for free'. Nice for running full blown OS like Linux, not so nice for wrapping one's head around that hardware.
- unwind 3y agoAs someone growing up coding Amiga demos and (mostly unreleased) games, I share this dream. There is the Commander X16 [1] but it's "too 8-bit". On the microcontroller side I was very excited about the STM32U599 [2] but it seems very secretive about how to program the graphics unit. [1]: https://www.commanderx16.com/ https://www.commanderx16.com/ [2]: https://www.st.com/en/microcontrollers-microprocessors/stm32u599-5a9.html https://www.st.com/en/microcontrollers-microprocessors/stm32...
- RetroTechie 3y agoSome options that popped onto my radar recently: Allwinner F133 Bouffalo Lab BL808 GreenWaves GAP8 (no native video hw on this one I think? targeted at IoT edge computing) Surely there are more (or will be :-). Problem is usually availability of suitable boards, documentation, software tools, or some combination thereof. And these are often one-off parts. At some point it goes away, and then what to do? As opposed to being sort-of-standard platform offered by multipe vendors that one could code software ecosystem against (like for eg. Raspberry Pi). You could of course design your own hardware. But then you quickly get into FPGA territory, design-your-own-computer project, lower clock rates, higher cost, etc. Cheap, small, highly integrated SoC much preferred here.
- Braini 3y agoMaybe the Colour Maximite 2 would be interesting to both of you (don't have any personal experience with it but found it rather nice once I heard about it).
- xgkickt 3y agoI like the idea of software rasterization as an aesthetic (in the context of games, but demos are included). Caches are larger than the system memory of the pre-GPU days. Best of all, if you can write a plot function you’re a graphics programmer!