5 ms·
Don't get me wrong, this is very fucking cool. I have long yearned for a world where an FPGA PCIe add-in card is something practically useful and every year I g
by thot_experiment 3y ago
Don't get me wrong, this is very fucking cool. I have long yearned for a world where an FPGA PCIe add-in card is something practically useful and every year I gain a bit of hope that we're slowly plodding along toward that future.
But what I really want to see is quake running on quake specific hardware, with everything burned into the logic elements running at some thousands of FPS, rather than quake running on a softcore.
While we're on the subject, the real thing that's holding back broader adoption of FPGA programming is the fucking tooling. I cannot wait till we have something FOSS like clang/gcc for verilog/vhdl that can be reasonably relied upon. Quartus is... quartus is something else.
(ok maybe the real thing holding back adoption is that it's extremely fucking niche that you actually need FPGA latency, but let me dream)
- mbitsnbites 3y agoThere are efforts to bring FOSS FPGA tooling. Check out Yosys (still far from as mature as LLVM though). But yes, I agree...
- beebeepka 3y agoLove the idea of Quake specific hardware. We're still a few years away from having 1khz oled (or faster) displays but i am sure they'll arrive by the time I won't be able to make use of them due to old age. But I want to see it. If course, all that goodness would be for nothing if we don't bake a proper version of the game. It's been a while but I think Quake server tickrate is likely to be on the low side. Quick searching confirms that. From https://speeddemosarchive.com/quake/qdq/articles/WallHug/framerate.htm https://speeddemosarchive.com/quake/qdq/articles/WallHug/fra... "In normal Quake, the server framerate is controlled by a console variable called sys_ticrate. This measures the amount of time each frame should last, and its default value is 0.05 (that is, twenty frames per second.) Most server administrators don't bother to change this." I say someone should take your idea, fix Quake 3 to run at 1khz on both the client and the server, then bake that into fpga. I would buy it
- rbanffy 3y ago> We're still a few years away from having 1khz oled (or faster) displays Fine. We can always go with 240 fps AR with 8K HDR 180-degree FoV instead.
- hypercube33 3y agoHow would mods work? That's half the fun of quake...I suppose since quakevm itself is open source maybe run that on hardware and allow software extensions.
- shrewduser 3y agosurely we could already do 1khz displays with OLED, but i assumed that the bandwidth required to meet that wouldn't be available on any of todays display outputs.
- beebeepka 3y agoI think they're going to have to adjust a lot more than just. Let's see. Bandwidth seems to be the main problem but so far no one has shipped a 640x480bay 2khz or whatever. Who knows
- ErneX 3y agoTrue, LG is releasing OLED monitors this year that reach 480hz but at 1080p (240hz at 4K).
- colejohnson66 3y agoInteresting that 4x the pixels only requires a halving of the refresh rate
- Snow_Falls 3y agoMight be due to compression of frames as its sent over the cable (called digital stream compression iirc
- mentos 3y agoHa I came here to ask about the potential for this and its the top comment. Is there a name for this that I can search for more info on? Could Windows/macOS one day ship on an FPGA like this?
- mbitsnbites 3y agoRealistically: No that won't happen (sorry to disappoint you). There are some niche demos, like a HW raytracer on an FPGA, but full systems is not realistic. General purpose code simply is a bad match for FPGAs.
- mbitsnbites 3y agoSo I realize that the title is slightly misleading. It's obviously not a pure hardware implementation of Quake, but rather the original Quake software renderer running on a custom soft processor in an FPGA. I like to use it as a benchmark while developing the CPU. E.g cache performance and branch predictor performance is so much more interesting in the context of a full game, rather than some boring synthetic benchmark. The reason for the title, though, is that I have not seen many instances of Quake running on an FPGA, in any form (Doom is fairly common, but not Quake). However there area few interesting projects on the aame theme: * Quake level viewer with a custom GPU and a RISC-V soft processor: https://twitter.com/sylefeb/status/1564758778830065666 https://twitter.com/sylefeb/status/1564758778830065666 * A pretty fast general purpose GPU on an FPGA that can display Quake (FuryGPU): https://www.youtube.com/@dbarrie/videos https://www.youtube.com/@dbarrie/videos
- sylefeb 3y agoVery, very impressive works, both MRISC32 and FuryGPU (which I just learned about, love the idea of a FPGA-retro-GPU that could go in a modern computer!). It's hard to overstate the amount of passion, care and technical expertise that go into such projects. I'm the author of 'q5k' (Quake viewer in 5K LUTs) and so I wanted to say Hi to my fellow Quake-on-FPGA enthusiasts. Thanks for the mention, and looking forward to the next steps of your projects! PS: Q5k is of course much, much slower (runs on a small $10 ice40 up5k FPGA), and only a viewer. The renderer is custom using fixed-point only. Unlikely I'll be ever able to run the full game at any decent speed, but I'm surely going to try :) For anyone interested, here's the repo of q5k and doomchip-onice: https://github.com/sylefeb/tinygpus https://github.com/sylefeb/tinygpus
- mbitsnbites 3y agoThanks a bunch for the link! I love how you fit a quake renderer onto such a small device (having a demo scene size coding history, I enjoy the challenge of a constrained target and I'd like to do something similar with the MRISC32 ISA some time - e.g. an "MRISC32-A0").
- uis 3y ago
- corysama 3y agoIn the mean time, there's the FPGA "DOOM chip" https://github.com/sylefeb/Silice/blob/master/projects/doomchip/README.md https://github.com/sylefeb/Silice/blob/master/projects/doomc... https://www.youtube.com/watch?v=2ZAIIDXoBis https://www.youtube.com/watch?v=2ZAIIDXoBis
- bee_rider 3y agoEven an old program like Quake has many lines of code, right? Maybe a more plausible setup could be softcore+Quake specific instructions? Plus the author will get to write their own fast approximate square root instruction which is neat.
- hedgehog 3y agoOpen source FPGA tooling (F4PGA previously called SymbiFlow): https://f4pga.readthedocs.io/en/latest/ https://f4pga.readthedocs.io/en/latest/