this post was submitted on 29 Mar 2024
595 points (95.4% liked)

Technology

59434 readers
3067 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 320 points 7 months ago (4 children)

The article title is straight up misinformation at present. From the article itself:

The FuryGPU is set to be open-sourced. “I am intending on open-sourcing the entire stack (PCB schematic/layout, all the HDL, Windows WDDM drivers, API runtime drivers, and Quake ported to use the API) at some point, but there are a number of legal issues,” Barrie wrote in a Hacker News post on Wednesday. Because he works in a tangentially related vocation, he wants to make sure none of this work would break his work contract or licensing etc.

Nothing against OP who simply copied the title, nor the project author. This is impressive but it’s not yet open source and there may be legal hurdles preventing it from becoming so.

[–] [email protected] 72 points 7 months ago

That's fair. I'm hoping for the best outcome.

[–] [email protected] 5 points 7 months ago* (last edited 7 months ago) (3 children)

If they never release the source, including all the fpga verilog files then this is pointless to the open source community.

Edit: actually I just realized my comment is kind of pointless. Even if he released the fpga source code, a thing a lot of projects like these never do, it still wouldn't be possible to reproduce one of these using only free and open source software. This is because the only fpgas that let you program them using open source software and not a locked-down windows-only bloatfuck program that needs an internet connection and licensing are the lattice ice40 fpgas. Tl;dr this can't be fully "open source".

I wonder if it would be possible to make an ice 40 based video card that could still do opengl.

load more comments (3 replies)
load more comments (2 replies)
[–] [email protected] 98 points 7 months ago (7 children)

All this text, yet nowhere its mentioned whether it runs Doom. Clearly the most important thing to run on any device

[–] [email protected] 73 points 7 months ago (2 children)

I'm gonna go out on a limb and say if it can run Quake, it can safely run Doom as well.

[–] [email protected] 19 points 7 months ago (6 children)

I’m gonna go out on a limb and say if it can run Quake, it can safely run Doom as well.

The original Voodoo 1 graphics card could run Quake, but NOT Doom. Thanks Obama!

[–] [email protected] 11 points 7 months ago (1 children)

Only because the Voodoo couldn't do 2D at all - it had a passthrough on the back, so you'd connect your 2D-capable graphics card to it.

[–] [email protected] 5 points 7 months ago

Oh, I'm aware! It just felt funny that the very first consumer dedicated 3D graphics card prove that poster's assumption wrong. In any other case they'd be right. In fact, in those days in 1996, there was the SECOND graphics card that had a 3D processor that DID do 2D graphics too, the Sierra Screamin' 3D (with the Rendition Verite GPU). It was about 2/3ds the cost of the Voodoo 1 (3DFX) even if the Sierra wasn't quite as fast. You'd buy the Sierra because you wanted dedicated 3D but couldn't afford a high end 2D card and the high end 3D card.

load more comments (5 replies)
load more comments (1 replies)
[–] [email protected] 53 points 7 months ago (3 children)

OG Doom does not support (or need) hardware 3D acceleration. It's not a polygonal rendering engine.

Relatedly, and probably not to anyone's surprise, this is why it's so easy to port to various oddball pieces of hardware. If you have a CPU with enough clocks and memory to run all the calculations, you can get Doom to work since it renders entirely in software. In its original incarnation -- modern source ports have since worked around this -- it is nonsensical to run Doom at high frame rates anyhow because it has a locked 35 FPS frame rate, tied to the 70hz video mode it ran in. Running it faster would make it... faster.

(Quake can run in software rendering mode as well with no GPU, but in the OG DOS version only in 320x200 and at that rate I think any modern PC could run it well north of 60 FPS with no GPU acceleration at all.)

[–] [email protected] 23 points 7 months ago (1 children)

OG Doom engine uses pre-built lookup tables for fixed point trigonometry. (table captures the full 360 degrees for sine and cosine with 10240 elements)

[–] [email protected] 12 points 7 months ago (4 children)

Tons of software did this for the longest time. Lookup tables have been a staple of home computing for as long as home computers have existed.

[–] [email protected] 4 points 7 months ago

And CPUs still do it to this day. Nasty, nasty maths involved in figuring out an optimal combination between lookup table size and refinement calculations because that output can't be approximate, it has to work how IEEE floats are supposed to work. Pure numerology.

load more comments (3 replies)
[–] [email protected] 9 points 7 months ago (2 children)

Interesting, learned something new from my silly comment!

[–] [email protected] 12 points 7 months ago* (last edited 7 months ago) (2 children)

Also, this'll blow your mind too, Doom wasn't actually 3D. It was a clever trick involving the lack of the ability to look up and down. They used some sort of algorithm (I forget how it works exactly) to turn the 2D walls, doors, and platforms that appear from the top-down view in the map into vertical stacks of lines that "look" like 3D objects in front of you. The sprites are also all just 2D projections overlayed onto the game.

This system introduced all kinds of wierd quirks in the game, like the trippy effect you get when you activate no-clipping and clip through the edge of the map.

[–] [email protected] 7 points 7 months ago

Like for instance, monsters and other sprite objects in the original incarnation of the Doom engine have infinite height. So you can't step on top of, or over, any monsters if e.g. you are on a ledge high above them. That's because they're 2D objects, and their vertical position on the screen is largely only cosmetic. This is why you can't run under a Cacodemon, for instance.

"Actors" (monsters, etc.) in Doom do have defined heights, but presumably for speed purposes the engine ignores this except for a small subset of checks, namely for projectile collision and checking whether a monster can enter a sector or if the ceiling height is too low, and for crush damage.

This was rectified in later versions of the Doom engine as well as most source ports. By the time Heretic came out (which is just chock-a-block full of flying enemies and also allows the player to fly with a powerup) monsters no longer had infinite height.

[–] [email protected] 4 points 7 months ago (3 children)

Most notably perspective only gets calculated on the horizontal axis, vertically there is no perspective projection. Playing the OG graphics with mouse gets trippy fast because of that. Doom doesn't use much verticality to hide it. Duke Nukem level design uses it more and it's noticeable but still tolerable. Modern level design with that kind of funk, forget it.

load more comments (3 replies)
[–] [email protected] 5 points 7 months ago (2 children)

Here's a video that explains the limitations of the DOOM engine and with it also briefly how the rendering part of it works (from 4:08 onward) in a very accessible manner:

https://youtu.be/ZYGJQqhMN1U

If you want a more in-depth explanation with a history lesson on top (still accessible, but much heavier), there's this excellent video:

https://youtu.be/hYMZsMMlubg

load more comments (2 replies)
[–] [email protected] 9 points 7 months ago (4 children)

I remember those old games that would run faster to the point of hilarity if you put them on anything more modern than they were originally intended to run on. Like the game timing is tied to the frame rate.

[–] [email protected] 7 points 7 months ago (3 children)

This was by and large the reason for the "turbo" buttons on all those 286 and 386 computers back in the day. Disengaging the turbo would artificially slow down your processor to 8086 speed so that all your old games that were timed by processor clock speed and not screen refresh or timers would not be unplayably fast.

Quite a few more modern games have their physics tied to frame rate -- if you manage to run them much faster than the hardware available at the time of their releases could, they freak out. The PC port of Dark Souls was a notorious example, as is Skyrim (at least the OG, non "Legendary Edition" or SE versions).

[–] [email protected] 6 points 7 months ago* (last edited 7 months ago) (2 children)

It's embarrassing when a modern game does that. Game Programming 101 now tells you to keep physics and graphics loop timing separate. Engines like Unreal and Godot will do it for you out of the box. I'm pretty sure the SDL tutorials I read circa 2003 told you to do it. AAA developers still doing it on this side of 2008 should be dragged outside and shot for the good of the rest of us.

load more comments (2 replies)
load more comments (2 replies)
load more comments (3 replies)
[–] [email protected] 15 points 7 months ago (1 children)

Original Doom was not GPU accelerated.

[–] [email protected] 15 points 7 months ago (1 children)

Original Doom was not GPU accelerated.

Neither was original Quake. GLQuake was a later update. The original was for DOS using only software rendering.

[–] [email protected] 6 points 7 months ago (1 children)

Yup, and most people played it at something like 10 to 15 fps on hardware of the time. Same with DOOM a couple of years earlier.

[–] [email protected] 4 points 7 months ago* (last edited 7 months ago) (1 children)

With resolution 320x240. And I do not remember how many colors. 256?

[–] [email protected] 7 points 7 months ago

I do not remember how many colors. 256?

Yes with a fixed color palette of mostly shades of brown and green.

[–] [email protected] 15 points 7 months ago

Nowadays I've been seeing lots of people porting Super Mario 64 as the challenge, as Doom is honestly beyond trivial at this point. I'm totally onboard, SM64 is a fantastic game, it shows off traditional shaded polygon and rasterization performance pretty well, and it's just plain fun to spite Nintendo.

[–] [email protected] 10 points 7 months ago (2 children)
[–] [email protected] 5 points 7 months ago (1 children)

Asking the real questions. Anything can run Doom nowadays. I've seen it run on a pregnancy test.

load more comments (1 replies)
load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 70 points 7 months ago (1 children)

Subsequently, the project got a boost by the debut of Xilinx Kria System-on-Modules (SoMs), which combine “insanely cheap Zynq UltraScale+ FPGAs with a ton of DSP units and a (comparatively) massive amount of LUTs and FFs, and of particular interest, a hardened PCIe core,” enthused Barrie.

Yes, I understand, the bippity uses mumps in order for the many lutes to flips those zupps in their pacas.

[–] [email protected] 23 points 7 months ago* (last edited 7 months ago) (1 children)

FPGA

Awww, I thought this was an ASIC. Slapping an FPGA on a PCIe card is decidedly less cool. Still, props for creating a usable GPU circuit description, that must have been a nightmare.

load more comments (1 replies)
[–] [email protected] 69 points 7 months ago (10 children)

I keep reading the word Fury as Furry

[–] [email protected] 41 points 7 months ago (2 children)
[–] [email protected] 25 points 7 months ago (1 children)

Same, I wasn't surprised either. I could see a furry making a GPU for fun

load more comments (1 replies)
[–] [email protected] 13 points 7 months ago

Something something furmark

[–] [email protected] 10 points 7 months ago

Yeah, why don't they lean into it and call it FurryGPU much better.

[–] [email protected] 5 points 7 months ago (1 children)
load more comments (1 replies)
load more comments (5 replies)
[–] [email protected] 46 points 7 months ago* (last edited 7 months ago) (1 children)

Fuck yes. When normal modern video cards start costing too much for the common person to afford, at least we'll still be able to play quake.

[–] [email protected] 31 points 7 months ago (2 children)
[–] [email protected] 30 points 7 months ago

The way people dress, Quake, it's 1996!

load more comments (1 replies)
[–] [email protected] 14 points 7 months ago (1 children)
load more comments (1 replies)
[–] [email protected] 7 points 7 months ago

RISC-V plans to make ISA extensions that will enable it to work better in graphics applications. Look forward to truly open-source graphics

load more comments
view more: next ›