This Dumb Industry: What is Vulkan?

By Shamus Posted Tuesday Sep 3, 2019

Filed under: Column 114 comments

Here is the first video in the This Dumb Industry series. As I mentioned before, these videos begin as articles and are then turned into videos. I think this works better than going the other way. This ought to read like a slightly informal variant of my old columns. Or you could just watch the video. Whatever works for you.

Like I mentioned on the last video, I have a Patreon reward tier for people who want their names in the credits. These videos are often produced a week or so ahead of time, so if you signed up in the last 7 days or so then your name probably won’t show up yet.  I just wanted to make it clear that I didn’t forget you, we’re just dealing with normal video-production lag times. If you’re signed up now then you should show up in the next vid.

One final note is that this is obviously a shorter and less detailed version of an article I wrote back in 2016. I wanted to start off this series with something familiar and easy before we try to tackle more challenging topics.

Anyway, on to the article:

What is Vulkan?

Link (YouTube)

We meet again, The Internet. Today I want to talk to you about Vulcan. Not this vulcan. Not this Vulcan. Not this Vulcan. Not even this vulcan. I’m talking about this Vulkan. With a K for some reason.

Maybe you’ve seen this logo in a splash screen somewhere or maybe you’ve seen Vulkan in gaming news and wondered what the deal is. Isn’t it supposed to make games faster somehow? Is this thing a new graphics engine? Is it a game engine like Unity? Is it middleware?

No. It’s not any of those things. Vulkan is a replacement for OpenGL. So now I need to explain what OpenGL is. And to explain that, we need to talk about…


Standards are important for getting disparate systems to interoperate. Let’s say there’s a power plant out there generating electricity for us. And let’s also say that you’ve got some sort of electrical gizmo that you want to use. You can’t just wire your gizmo directly into the power grid because that would kill your gizmo, and probably you. So we have some standards for how to step down power from the grid to make it suitable for residential use. On the other side we have standards for gizmos, telling them how to accept residential power. The humble household electrical outlet is where these two sets of standards meet.

This means that it doesn’t matter what the power plant looks like, how many there are, or how they work. It doesn’t matter how large or small the gizmo is or how much power it needs. Each system can follow their half of the standards and the two can meet in the middle.

To get a feel for what it’s like in a world without standards, think back to the goofy days of the early 90s and how much hassle there was getting games to support your sound card. If you’re too young to remember those days, I highly recommend the channel Lazy Game Reviews.

In those days, there wasn’t a single standard for sound cards. Every model was a little different, and programmers had to go out of their way to write code specifically to support all the different species of sound devices. You’d find games that supported every card except the one you owned, or they only supported a subset of the features. It was a lot more work for the developers and a lot more frustration for the user.

We eventually got that sorted out so now developers don’t need to care about your specific make and model of card to get sound to come out of the speakers. We have similar standards for graphics, and OpenGL is part of that.


The game talks to OpenGL, which talks to the graphics driver, which talks to the graphics card,  which is connected to the tiny fairies that create the glowing pixel-magic on your monitor.
The game talks to OpenGL, which talks to the graphics driver, which talks to the graphics card, which is connected to the tiny fairies that create the glowing pixel-magic on your monitor.

The game talks to OpenGL, which talks to the graphics driver, which talks to the graphics card, which makes the graphics happen. Obviously it’s way more complicated than I’m making it sound. I don’t want to stop and explain what an API is, or the historical evolution of graphics hardware, or all the crazy extensions that were bolted onto OpenGL at one point. So let’s just imagine that OpenGL is a magic black box and not worry too much about the details.

The point is that as long as the developer provides the graphics calls to OpenGL in the proper way, and as long as the graphics card manufacturer builds proper drivers, then the two halves of our system can connect to make the graphics happen.

The beauty of OpenGL is that it has always been steadfastly backwards compatible. You could take your code from a late-90s shooter and compile it against the latest version of OpenGL and it has a reasonable chance of working on a modern machine. We don’t end up with hard walls between the graphics generations like they do in console land, where graphics engines need to be completely rewritten from scratch to work with the new hotness. It doesn’t matter if you write this code in 1998 or 2018, it will still draw a polygon to the screen:

Well, actually, you wouldn’t want to do things like that today or you’d be wasting most of the available processing power. What you really want to do is pack a bunch of triangles into a buffer and send them off in batches.

Actually, that’s a horribly outdated way of doing things too. See, you really need to set up some vertex and fragment shaders. Except, not like this because that’s a naive way of doing things now, what you really want is to…

So now we come to the first problem with OpenGL. It’s got a lot of cruft. Cruft is what programmers call the ugly useless bits leftover from older systems.

The Tyranny of Cruft

The house I grew up in had a giant alcove in the living room that was originally housing for a whole-house intercom system. By the 1980s, all of that had been torn out and someone stuck a mirror in the resulting hole.
The house I grew up in had a giant alcove in the living room that was originally housing for a whole-house intercom system. By the 1980s, all of that had been torn out and someone stuck a mirror in the resulting hole.

Picture an old house. It was built before electricity was common in homes, so all of the wiring is on the outside of the walls. It has an intercom system from the 1960s that hasn’t worked since the 1970s. There’s a satellite dish in the yard that hasn’t been useful since the 1990s. There are lines going from the old roof antenna to every room in the house, even though that system was long since replaced by cable TV, which was itself long since replaced by internet streaming. It’s got ancient landline telephones built into the walls of every room, and nobody wants to remove them because that would just expose a big ugly hole that nobody wants to fix.

This metaphorical house has cruft. Lots of effort was spent over the years in an attempt to keep things modern, but when old systems became obsolete they left behind useless infrastructure. This is the downside of backwards compatibility. If you never get rid of anything, then it tends to pile up. As nice as that retro compatibility is, systems that offer it will eventually accumulate a bunch of ugly bits that make it hard to develop and maintain things.

This is where Vulkan comes in. We’re bulldozing the old house and replacing it with something modern. Hopefully this gives developers the freedom of OpenGL without all the jank.

So that’s what Vulkan is. It’s an effort to replace OpenGL so developers have a portable way to talk to modern graphics hardware without decades of accumulated cruft. Now is a good time to do this. Graphics technology has stabilized over the last decade or so. New stuff is still being invented. (Stuff like raytracing, which I’ll cover in a later video.) But we’re finally past the chaos of the late 90s and early aughts where you had to throw your game engine away every few years because there’s a whole new, better way of doing things.

Is there a downside to this? Sort of. We’re giving up that backwards compatibility I talked about before. Also, Vulkan is a lot more complicated to use than humble OpenGL. It interfaces with the graphics card more directly. It’s more raw. This means that if you know what you’re doing, you can make more efficient rendering code. The downside is that Vulkan makes it a bit harder for students, indies, and other assorted bedroom programmers to get started. But I don’t think that’s a big deal. The days of loners making their own engines from scratch are mostly over. I fiddled with making a lot of experimental engines years ago, but that kind of work isn’t really needed these days. Now we have commercial-grade engines like Unity and Unreal, which are available to anyone, basically for free.

So that’s Vulkan. It won’t make your life any easier, but it’s probably making someone’s life easier, and it’s probably making your PC games just a couple percent faster.



From The Archives:

114 thoughts on “This Dumb Industry: What is Vulkan?

  1. Rack says:

    What IS the benefit of that backwards compatibility? Is it important in maintaining compatibility with older titles or is it so people don’t need to learn new systems for handling everything when coding without an engine?

    1. Knul says:

      How would you like it if your entire Steam library doesn’t work on newer graphics cards anymore?

      Because that is what you’d get if there were no backwards compatibility.

      1. Rack says:

        That’s kind of the question I was asking. Is there a reasonable possibility graphics cards would stop being made that support OpenGL, is there a specific advantage to dropping OpenGL to that level or is it a cost saving measure? If Nvidia stopped supporting OpenGL and AMD didn’t it would take a LOT for me to buy an Nvidia card.

        1. Chris says:

          I believe the backwards compatibility is in the openGL, not the card. In other words, you could make openGL cleaner by getting rid of a lot of the old stuff, but if you do so you lose backwards comparability.

          1. Bloodsquirrel says:

            I think there’s some confusion here between backwards compatibility within Vulkan/OpenGL and backwards compatibility *with* OpenGL. Vulkan breaking backwards compatibility with OpenGL really has nothing to do with new hardware not running code that was written using OpenGL. It just means that code written for Vulkan will not work with code written for OpenGL.

            The importance of your computer being backwards compatible with OpenGL is that it’s necessary in order to run your old games. The “importance” of Vulkan being backwards compatibility with OpenGL would be that it allows you to take your old knowledge, code, utilities, etc and apply them to Vulkan. Except that it was decided that the advantages of making a clean break and re-building from the ground up outweighed those benefits.

            But just like your computer is compatible with both OpenGL and Direct X, throwing Vulkan into the mix doesn’t affect any existing (or new) OpenGL games. It’s just its own new thing.

        2. Paul Spooner says:

          Well, the cards themselves aren’t really backward compatible. The backward compatibility comes in at the api. The OpenGL specification requires that the API allows you to get (roughly) the same behavior out of the new cards using the old commands.
          EDIT: right, what Chris said.

        3. Jamie says:

          My guess is that the last version of OpenGL will be a layer that runs on top of vulkan, with very little overhead. Vulkan becomes the ‘hardware’ layer, and new cards only have to support vulkan to support OpenGL.

    2. Abnaxis says:

      As far as development goes, there are libraries dependent on other libraries which are themselves dependent on even more libraries. If a single one of those libraries hasn’t been updated to the new system and there’s no backwards compatibility, your whole project stops until they update. Which might be tomorrow. Our it might be a year from now. Also, when you’re looking through this whole dependency tree it’s very easy to overlook something and get hosed.

      No, this has never happened to me, what do you mean?

      1. Kamica says:

        To us plebs who don’t do programming (even though I learnt how to >.>), it’s basically like installing a mod to your favourite game. You absolutely LOVE this mod, you play it all the time, can’t get enough of it! Then your favourite game releases a patch, and your mod doesn’t work anymore, and you’ll either have to wait for the mod maker to update it, or suck your thumb as you won’t be able to either use the mod, or the newest version of your favourite game =).
        (I’m not salty about this happening to Crusader Kings, or Mount and Blade, or any other game or anything =P)

        1. Nessus says:

          Skyrim SE, on a monthly basis. Bethesda coded their new paid mod store directly into the game EXE in such a way that every time they want to add or remove something to/from the paid mod catalog, they have to issue an “update patch” that replaces the EXE itself, complete with a new game version #. This auto-breaks EVERY mod that checks the game version #, which means at the very least EVERYTHING that uses SKSE.

          So if you want Skyrim SE with community mods (beyond basic asset replacers and the like), you have to DL an arbitrarily older EXE from a repository, then wrangle/trick Steam into not forcing updates on you (because Valve took away the option to say “no” to automatic updates).

          I tried to switch from Skyrim LE to Skyrim SE last year, and it was an untenable disaster because of this. It’s probably the entire reason why so many people on PC still play LE instead of SE.

          This also THE reason why I don’t trust Bethesda anymore, because it’s way, waaaayyyy too easy to see this as a deliberate attempt to “subtly” drive users away from community mods now that they’ve successfully wedged open the door to paid mods.

          1. Duoae says:

            I thought Steam provided the ability to revert to older versions of games.

            Hmmm. Looking at things online, it seems I may have been mistaking the functionality in Minecraft… >_<*

    3. Moridin says:

      Both. If graphics cards decided to stop supporting OpenGL, then any titles requiring OpenGL would stop working.

      Simultaneously, it makes things much easier for developers working with the system: If a developer is familiar with OpenGL 3, then learning the new features of OpenGL 4 is much easier than learning how to work with Vulcan. At the same time, it also means that your game engine written for OpenGL 3 doesn’t need to be rewritten from scratch if you want the new features included in OpenGL 4, but if you want to support Vulcan, you need to start over(at least as far as the graphics pipeline is concerned).

      As an example of how important backwards compatibility is, look at Python 2 vs Python 3. Python 3 was released more than 10 years ago, but there’s STILL a significant* amount of Python 2 libraries etc. that have not been updated to Python 3(and likely never will be), so if you’re among the (relatively) small group of people who need those libraries, you’re out of luck. In fact, apparently there are still people arguing that people should keep using Python 2 and Python 3 was a mistake.

      PHP is another language that’s not entirely backwards compatible, and in fact one forum I’m part of had to switch the forum software because the old one only supported PHP 5(which no longer even receives security updates, hence the urgency of switching) whereas the newest version is 7. This despite the fact that the newest version of the forum software is significantly worse.

      *quick search suggests that the number is in the ~5% range

      1. Chad Miller says:

        Ha. I started learning Python on version 3.2, which may have been the worst possible time for this exact reason (3.3 in particular re-added some previously-dropped backward compatibility features for this exact reason)

    4. Steve C says:

      GoG (aka Good Old Games) would not be particularly useful if backwards compatibility wasn’t a thing. GoG had to adapt old games just to get them to boot on modern hardware. That was the core competency that build CD Projekt as a developer. OpenGL made that not really necessary, or at least a lot simpler.

      Or consider the cruft of keeping twenty separate versions of MS Visual C++ all installed. Of which, it is definitely going to break at some point due to OS or hardware changes. The programs that rely on *that* aren’t going to work. I like that OpenGL has 20-25yrs of backwards compatibility. I like that it is getting cleaned up fresh too. 20 years (a human generation) feels right for this sort of thing. I hope Vulkan lasts until 2040.

      Also good on them for changing the name. Much better than “OpenGL Super” or some other nonsense.

      1. Simplex says:

        “GoG (aka Good Old Games)”

        It’s no longer “Good Old Games”. It rebranded to GOG in 2012:
        “We have more than 20 great indie and newer games signed on that will be showing up in the next few months.. These games lead the way on our the transition from Good Old Games to simply It doesn’t matter what G, O, and G stand for, Gee Oh Gee dot com stands for high-quality, DRM-free gaming, each week with bigger and newer games.”

  2. Wide And Nerdy says:

    I’m excited for this new series. This topic really hits the sweet spot of stuff that I’m not getting elsewhere. Other people know how to analyze gameplay and to some extent story (though most don’t tend to be as in-depth as you, maybe a few people like Matthewmatosis and Joseph Anderson.) But none of these people know whats going on under the hood like you do which gives you an edge. Hopefully if you can manage the biweekly schedule, your channel will grow. It should grow, you’re knowledgeable enough that you should be able to reach a wider audience.

    I can’t imagine a lot of people in the youtube gaming space have actually programmed games or, especially, worked on graphics engines like you have.

  3. GargamelLenoir says:

    I liked the video and the subject is interesting, but I think it’s a weird first choice for something called “This Dumb Industry”, from the perspective of a newcomer. They’d probably expect the first video at least to address a shortcoming of the industry.

    1. Echo Tango says:

      Yeah, this video’s more about what *isn’t* dumb in the industry.

  4. Asdasd says:

    Situation: there are fifteen people competing to be the first one to link to that XKCD comic about standards.

    1. Joshua says:

      Sounds like you need to be the first.

      1. Duoae says:

        Situation: there are sixteen people competing to be the first one to link to that XKCD comic about standards.

  5. Lino says:

    I liked the video a lot – it was concise, to-the-point, and very well edited. I actually got a chuckle out of the “backwards compatibility” joke.
    The only criticism I have is that I don’t think the video will get much traction due to its title – from what I’ve watched and read about this stuff, a title needs to be something people would actually search for, and since Vulcan hasn’t been in the news for quite some time, I don’t think that many people would be searching for it.
    Another thing that I found kind of weird about the video is that it felt like “Part 12 of How Games Work” – it was about a very specific topic, and it mentioned things like game engines, rendering, and other technical terms that, while familiar to a lot of gamers, are things that I think many people know about on just a surface level, and would be interested in a more detailed explanation.
    There are a lot of YouTubers who look into game design and industry trends, but not that many who explain things on a more technical level. Maybe that could be a niche you might be able to fill.

  6. raifield says:

    To get a feel for what it’s like in a world without standards, think back to the goofy days of the early 90s and how much hassle there was getting games to support your sound card.

    At least all you had to do with know your I/O, Interrupt, and DMA assignments then hope your card either appeared on the list or was detected as “Soundblaster Compatible”

    Now try getting DOS VESA drivers for your video card to work. That was a nightmare.

    1. Decius says:

      Port 220, IRQ 5, DMA 1, and it was a Sound Blaster card of some type.

      Video card? No, VESA drivers were for your /monitor/.

      1. raifield says:

        No, they weren’t. The VESA drivers were extensions to your video card’s BIOS to output higher resolutions or greater bit depth, sometimes both. The results were pretty stunning at the time (witness the tongue-in-cheek strategy game ‘Z’ in regular and hi-res mode), but had nothing whatsoever to do with your monitor.

  7. DGM says:

    >> “Not this vulcan. Not this Vulcan. Not this Vulcan. Not even this vulcan.”

    Oh, so it’s the hypothetical PLANET Vulcan, then? The one between Mercury and the Sun?

    1. Nimrandir says:

      I thought it was this Vulcan, given the focus of the channel.

      1. tmtvl says:

        No, no, clearly he meant this vulcan.

        1. Ardis Meade says:

          I was expecting this Vulkan, also with a K.

          1. Philadelphus says:

            Oh, so not a member of the athletic sports team of the University of Hawaii at Hilo, then?

  8. Bloodsquirrel says:

    Pedantic quibble:

    The standards for the grind and the standards for electronic devices actually meet at the distribution transformer. That’s where the 34.5/13.8/13.2kV or whatever bastard voltage distribution is using is stepped down to 220/120 volts. Everything past that (line fuses, your meter, your house’s breaker box) is purely a passive element; whatever you hook up to your meter is what you get at your outlet.

    Of course, this only applies to voltage level. The frequency standard (60Hz in the US) has to be grid-wide, since you really can’t change the frequency of AC power without doing something like rectifying it into DC and then feeding it into an inverter, so it does actually matter what the power plant is directly generating.

    1. Abnaxis says:

      If we’re being pedantic, aren’t the transformers passive too? Or is my electrical knowledge lacking?

      1. Bloodsquirrel says:

        By the EE definition of passive, yes; I was using the term more colloquially, in the sense that the transformer actually changes your voltage level while the fuse/meter/breakers/outlet are designed to affect the AC feed as little as possible (unless the fuse blows or the breaker trips).

        1. Frog Duster says:

 it’s cool if I design my new technofangle with a European plug for use in the US, right?

 which I mean, at the outlet is where all the standards meet. Sure, the grid doesn’t care about the plug, but the users do, and the device makers do. And regarding the frequency of the AC – that’s not being pedantic, it’s quibbling. The frequency is a part of the standards. It doesn’t matter what the power plant is directly generating, so long as they convert it to 60hz to match the standard.

          The author was correct. Moreover, he didn’t go too far into the technical details of his analogy, which would simply be a distraction from the analogy itself.

          1. Bloodsquirrel says:

   which I mean, at the outlet is where all the standards meet. Sure, the grid doesn’t care about the plug, but the users do, and the device makers do.

            You do know that not all devices even tie into outlets in the first place, right? Your lights, for example? Or your dishwasher? Nothing about how a residential home is wired is consistent with the idea that the outlet is the point at which “the standards meet”. A residential house (in the US) requires 220/120VAC 60Hz at the meter. That is the official interface point, to the degree that it is the location where it determines whether you call the power company or an electrician if there’s problem.

            Your outlet is nothing but a place to physically connect two sets of wires together (GFI outlets notwithstanding). It doesn’t convert anything to anything else.

   it’s cool if I design my new technofangle with a European plug for use in the US, right?

            Your new technofangle is, in all likelihood, going to be powered by either micro-usb or usb-c. You might include a wall charger with it, but it’s probably fine if you don’t. Even if you shipped it with charger that had a European plug, the user would just shrug and plug it into one of the 1,000 American wall chargers he already has, or directly into a USB port on their laptop, and actually they’re starting to put those on power strips now…

            Or, for extra fun, you could just install a European plug in your American house, since most devices aren’t that sensitive to the difference anyway (which is why some devices ship with a converter for the plug in case you take it overseas with you).

            It doesn’t matter what the power plant is directly generating, so long as they convert it to 60hz to match the standard.

            …do you have any idea what that actually involves? Power pants don’t convert convert to 60hz. One thing that makes solar power a pain in the ass is that it generates DC, which has to be fed into a 60Hz inverter. The problem is that it’s far, far more difficult to break a DC circuit, especially when there’s a fault. And that’s at the low levels of power that a solar plant is generating. Good luck sticking a DC breaker right on a major turbine at a nuclear power plant. And that’s just one of your problems.

            There’s no reason at all to build a major power plant that generates at anything other than the frequency of the power grid that you’re going to be connecting to. And, even if there was, you would have to do the conversion at the point of the tie between the plant and the grid. You’d never build a 50Hz distribution system in the US and convert it to 60Hz right at the outlet. It would be nothing but an expensive, messy complication.

            Just so you know, writing the standards for some of this stuff is literally my day job. So the chances of there being anybody here that is more qualified to speak about them than me is vanishingly small.

            1. Paul Spooner says:

              Ooh ooh! People think 60 hz is a lovely sine wave. Talk about line noise!

            2. evilmrhenry says:

              I think the point is that the *gizmo maker* doesn’t need to care about all that, they just need an American-style plug and expect 120V AC power, and they’re good to go. (Or USB.) Making sure that 120V AC power gets to that plug is somebody else’s problem.

              1. Bloodsquirrel says:

                Even from that view, it’s still wrong, since each power outlet *does not* provide an independent circuit of a set amperage. The plug for a 30 amp outlet is the same as the plug for a 15 amp outlet, and can have a bunch of outlets (plus lights and other stuff) all being fed from a single breaker. So for a device that uses a significant amount of power (such as your microwave and freezer) you have to be careful about where you plug it in, because you can easily end up tripping a breaker if you’ve got too much on one circuit.

                Or, for even more fun, the voltage at your outlet is not guaranteed at 115/120V. It’s actually an allowable range, plus issues like noise or power surges. For a sensitive piece of equipment you might need cleaner power than that, even if it uses the same kind of plug.

                The only real sense in which an outlet provides a standard where the user doesn’t have to worry about what’s behind it is that move devices we plug in are pretty tolerant and don’t pull a lot of current. But, for a real-world counterexample, I have an inverter that plugs into the cigarette lighter in my truck that provides 120V power. It uses the same plug as a residential outlet, but that doesn’t mean that it can power whatever device can be physically plugged into it. You’d burn the thing up if you tried to use it to turn your truck into a backup generator to keep your freezer running during a power outage.

                1. evilmrhenry says:

                  20 amp, not 30 amp, I think? (USA-centric, of course.) Even though you could technically feed 30 amps through a standard 120V outlet, in a residential environment nobody runs 30 amp circuits to standard outlets. So, a gizmo maker that needs 30 amps won’t put a standard plug on it because that’s how you get customers complaining about how it tripped the breaker.

                  But that’s not even the analogy. The analogy is that the gizmo maker doesn’t need to care if the customer gets their power from nuclear, coal, or solar, they just need to know the specs of the power as it arrives at the outlet. The specs do not include a perfect sine wave or unlimited power, just as graphics card interfaces are still shackled to the limits of reality, but they don’t need to in order to be useful.

                  1. Bloodsquirrel says:

                    There’s a reason I called it a “pedantic quibble” instead of “Shamus is an idiot because he got this wrong”.

                    But none the less- it is still technically wrong, the outlet is not where even the very loosely guaranteed standard provided by the grid is either transformed to or demarked.

                    The grid is actually a very poor source of technically-defensible analogies for APIs, since there are no “hard break” points where you can divide up parts of the system and treat them like black boxes. System events, overloading, frequency dips, noise, surges, etc can’t be cleanly filtered out or isolated to any part of it. It’s not a modular system. The only reason gizmo manufacturers “don’t have to worry” is because we’re pretty good at keeping it stable, but there’s basically no difference between the AC provided at your house’s receptacle and the AC that comes from a station service transformer that you’ve directly connected to the tertiary on a 500kV autotransformer. Neither is any less separated from what’s going on with the nearest power plant.

                  2. Bloodsquirrel says:

                    Let me actually be even more specific here:

                    .You can’t just wire your gizmo directly into the power grid because that would kill your gizmo, and probably you.

                    Problem is, substations (which are part of the grid) are full of devices that run off of 115/120VAC (lights, heaters, battery chargers, etc). That power, in most cases, comes from the exact same model of transformer that feeds your house, except that it’s hanging off of the medium voltage bus in the substation. If you went to the output of a nuclear power plant, you would find the exact same thing- a medium voltage line/bus with a potential transformer hanging off of it that provides 115/120VAC sensing potential for the substation’s control systems. Your gizmo would run just as reliably off of that power as off of a residential outlet (moreso, actually, since we take the stability of nuclear power plants much more seriously than distribution).

                    The power grid cannot follow whatever set of standards it likes “on its end”. That just isn’t how power distribution works. Every single quality of the power that is provided at the residential outlet except for the voltage level is the exact same on the grid as it is at the outlet, and even the voltage level is going to be a fixed ratio of the grid voltage, and is going to reflect any dips/surges that come along.

                    Saying otherwise is like saying that your faucet provides a “standard” and that the water company can pump whatever liquids it wants through the water mains as long as it converts it to H20 before it gets to your faucet. That’s just not how the whole business works.

    2. Decius says:

      There are fancy things you can do to double or halve frequency. I don’t think there are any commercially available ones that work on line voltage, because I don’t think there’s any purpose to it.

      There’s been some success with narrowing the time and place of sufficiently high-fidelity audio recordings by listening to the 60-cycle hum caused by the electrical grid and comparing small variations with historical variations in grid frequency, but that’s some NSA level spook shit there.

      1. Bloodsquirrel says:

        “Commercially available” and “line voltage” don’t really go together. The way that stuff for idustrial/utility is designed and sold is very different from any sort of consumer product. A lot of it is even custom built for every application- nobody just keeps an 500/129kV autotransformer “on shelf”.

  9. Dreadjaws says:

    Oh, man, and here I was thinking I was finally gonna get that Black Vulcan/Apache Chief slash fiction video I’ve been expecting from you for years.

  10. tmtvl says:

    Typo police:

    In your credits you have “like butten” instead of “like button”.

    1. Blake says:

      Is it a typo?

      (Maybe it is. I dunno. :) )

      1. Lino says:

        YES! I KNEW I wasn’t the only one who knows about the legendary Axman13!!!!

        1. Asdasd says:

          I forgot everything about the video, but that pronunciation of ‘beacuase’ has been rattling around in my head for the best part of a decade.

          1. Rack says:

            But how IS it an RPG if you can do quests and stuff?

    2. RFS-81 says:

      “Read My Words:” has a colon at the end, but none of the other headings in the credit sequence do. Don’t know if that’s intentional.

  11. Bloodsquirrel says:

    So, I haven’t used Vulkan, but I actually wonder whether or not, when it comes to learning how to use it, the additional complexity that it requires is offset by eliminating the mess of trying to figure out how to learn OpenGL when every one of the resources you’re trying to use is based off of a different version trying to do things in a different way.

    Also, does Vulkan provide basic features like exceptions to let you know when things go wrong? Or an API that’s based on standard types? Because those things would also offset the additional complexity.

    1. Geebs says:

      Doubt it. Vulkan is even closer to the metal than OpenGL, which itself mostly deals in memory pointers and can handle buffers of floats and ints, and treat them as vectors and matrices – but you have to arrange your own data structures and god help you if you count the wrong number of bytes.

      Exceptions in OpenGL get handled in one of the following ways:

      1) draws exactly what user was expecting
      2) draws exactly what user expecting most of the time
      3) doesn’t draw part of the scene (user doesn’t notice)
      4) doesn’t draw part of the scene (user notices)
      5) doesn’t draw anything
      6) triangle salad
      7) hard lock the graphics stack
      8) hard lock the entire computer
      9) computer spontaneously powers off

      Debugging OpenGL can get interesting.

      1. Bloodsquirrel says:

        Vulkan is even closer to the metal than OpenGL, which itself mostly deals in memory pointers and can handle buffers of floats and ints, and treat them as vectors and matrices

        You can still make those into types, though. In the end, at least for C/C++, any type is just a compile-time guard around a memory pointer. For reference: Direct X (at least the version that I used) operates at the same level as OpenGL, but provides that kind of typing.

        It’s not so much for reducing the complexity of your code as it is a helpful learning tool that points you in the direction of what you need to be passing to the function. After all, you can either write very simple OpenGL code or very complicated OpenGL code. If the very simple Vulkan code is simpler than the moderately complicated OpenGL code, I could see it being easier to learn, just because of how much of a mess OpenGL and the tutorial environment is.

      2. Will says:

        There was a fantastically hilarious article I read years ago but no longer remember the provenance of (maybe somebody here will…?) which was something along the lines of “here’s some of the reasons you might not see what you expect to see”. Some highlights I still remember include

        Scene has no lights
        Scene has lights, but all polygons are matte black
        Textures failed to load and were replaced by transparency
        Camera is pointed the wrong way
        Camera is in orbit around Mars (and your scene is not similarly astronomical in scale…)
        Camera near plane is a thousand kilometers away
        Camera far plane is two millimeters away
        Back-face culling is backwards
        You divided by zero at literally any point in your physics sim and every point of geometry has collapsed to NaN

        …etc. All of which are totally indistinguishable by looking at visual output. Sometimes a crash is refreshingly straightforward, as you can get a core dump and at least have a starting point where something was wrong in the code.

        1. Kestrellius says:

          So, I was pretty sure that the article you’re talking about was by Shamus, and had something to do with Unity — but when I looked through the Pixel City 2 series, which involved Shamus learning Unity, I didn’t see anything about it. I’m still rather certain the article you’re talking about was one of Shamus’s, though.

  12. Hal says:

    Not related to anything, but that house metaphor hits home (literally!)

    Our house had a security system installed back in . . . I dunno, the 80s? You can see the remnants of it everywhere. There are bits and pieces of it in the walls (including panic buttons), sensors on the windows, and a control box under the stairs. None of it is functional any more, but the thought of trying to unsnarl it from the house gives me hives. The worst part is that the house has nice marble windowsills, and they drilled through them to install the wires for the window sensors. Ugh.

    There’s stuff I appreciate, too. There are nightlights built into the wall that illuminate your way at night. Unfortunately, only one is still functional, and all attempts to deduce the problem have been unfruitful. It’s not even clear if you can open the dang things without destroying the wall and tearing them out. What sadist thought that was a good design?

    And that’s just the inside of the house! The outside is a frustrating mess of wires stapled to the walls and deck resulting from the installation of exterior lighting and switching from phone/cable/satellite providers dozens of times over the years. Half the cables have no discernible purpose. We recently did some yard work; had the state mark all the buried lines . . . still ended up tearing up a bunch of lines, to no noticeable effect.

    In conclusion, old houses are awful and the people who built them in the 70s should be tarred and feathered. However, new houses are expensive, so janky old house it is.

    1. Abnaxis says:

      I dunno, figuring out something useful for all that wiring sounds like a fun hobby…

    2. Nimrandir says:

      While I was in graduate school, we lived in a mobile home with a house-wide music system. Every room (except the bathrooms) had a speaker, tied to a radio/tape deck between the living room and kitchen. If I remember correctly, the bedroom speakers had failed, but the central ones still functioned.

    3. Bloodsquirrel says:

      Some of that stuff you may be able to cover with a simple wall plate. It’s not perfect, but it’s nicer than having a phone hang off of your wall.

      1. Hal says:

        Oh, you’re not wrong. We’ve removed a few of the panic buttons already in the rooms we’ve renovated, and patching those up wasn’t a big deal.

        The one I’m reluctant to mess with is the alarm speaker that’s installed in the ceiling in the center of the house. Ceiling plaster is messy business and I don’t want to pay anyone to deal with that anytime soon.

        1. Bloodsquirrel says:

          Maybe you can hook audio up to it? It probably wouldn’t be very high quality, and it’d only work in mono, but, uh, maybe it’d be good for playing all of your favorite 8-bit remixes!

          1. Hal says:

            Hm, an interesting idea . . . but I wouldn’t even know where to start with that.

            1. Bloodsquirrel says:

              Speakers are pretty simple. There should a wire with two conductors running to it. Those can be run directly into the output of one channel of a lot of sound systems. You could also splice them onto a standard headphone jack.

    4. Joshua says:

      Last week, we just had a Master Electrician come by to check on all of the wiring left over from previous security systems (the original homeowners would just get new ones installed) after my wife ended up cutting the wires, taping them, and tossing the electronics. Turns out she had taped everything up safely and we can just patch up the holes, but I imagine it’s probably a better idea to have the electrician being the one to do all of this in the first place.

      1. Bloodsquirrel says:

        Aren’t security system wires just for the DC signal put out by the alarm system itself? They should never be directly tied into the 120 AC system. Once you pitch the electronics they should be dead wires.

        1. Decius says:

          If there’s 120v ac in wires that aren’t in conduit or romex, you really need an electrician.

          1. Bloodsquirrel says:

            It still wouldn’t really be that hard to yank out (just flip off the breaker that’s feeding it first), but it is sort of a “Someone who really, really had no idea what they were doing was screwing with this and there may be other major serious problems” situation where you just might want a general inspection.

            I’ve found a few WTFs in my electrical system as I’ve been working on my house. I had a 220V circuit being fed from two 120V breakers on opposite sides of the breaker panel. It wasn’t being used, so I was tearing my hair out trying to figure out where those two circuits went, and wound up having to trace out the wires in my attic. My favorite part was that I had the whole electrical panel replaced a couple of years ago (turns out the company that made it had lost their UL rating, and I couldn’t get new breakers for it), and the electrician apparently just hooked it right back up that way instead of saying “Hey… maybe I should fix this while I’ve got it all unwired”.

            My light switches are also all wired backwards… so that’s fun.

            1. Syal says:

              Shadow Switches.

              1. Bloodsquirrel says:

                More like “might kill you switches”.

                The way you’re supposed to wire a lightswitch is by running the hot wire to the switch, then running the output of the switch to the light. That way, when the switch is turned off, the light fixture is completely de-energized, and it’s safe to mess with it.

                The way the geniuses wired up my lights was by running the hot wire to light fixture first, so that the switch just disconnects it from the neutral. So even when the switch is off, the fixture is still hot.

                1. Boobah says:

                  Maybe I’m confused, but aren’t both wires ‘hot?’ You’ve got a positive and a negative, and a common light switch breaks that circuit. When diagramming an electrical circuit, electronics people commonly trace a path from positive to negative, but physicists started doing it the other way ’round when they discovered that the charged particle actually held the negative charge; either way the math works out to the same answers, which is one reason the guys who actually might electrocute themselves never got around to changing their convention.

                  I can get that it’s at least annoying that they didn’t follow convention, but I don’t see how it’s a safety issue before you start rewiring.

    5. Decius says:

      If it’s drywall, patching a hole is a fairly simple process.

      1. Bloodsquirrel says:

        Eh… it can be tricky to match the texture and paint afterwards (especially in an old house).

        Of course, you can always just hang a picture over it or something.

        1. Paul Spooner says:

          Actual antique electronic gizmo: Eyesore.
          Framed picture of antique electronic gizmo hung to cover the hole left when said gizmo was torn out of the wall: Tasteful.
          Empty picture frame hung around existing antique electronic gizmo: Brilliant.

          1. Bloodsquirrel says:

            That reminds me of a Calvin and Hobbes comic…

        2. Decius says:

          Texture is hard. Paint is either easy (repaint the room) or cheap (match the color close enough and feather it in).

    6. Algeh says:

      My garage has a wide variety of lights in it that were installed at various times over many decades, and even a light switch! I have no idea what the light switch turns on or off, but it isn’t any of the lights in the garage or attic. It also has a box from an internet provider I’m not a customer of that beeps every half hour to let me know that it has a dead backup battery. (Trying to call the company to get this dealt with led to a phone tree mess followed by egregious hold times since I do not have an account with them and have never had an account with them, so the phone system doesn’t know what to do with me. I may try again some day when I have an entire day free to sit on musical hold speakerphone with them. No one else will touch the box because it’s the property of that company, which I now associate with ear-piercing beeps and poor customer service, so great potential customer outreach there.) I also have a mystery switch in the back of the hall closet, and at least three distinct sets of HVAC vents (and a bonus chimney with no fireplace from the previous heating system).

      There is also a data collector for a weather station on my roof. I don’t think I have a weather station, but maybe it lives in the attic somewhere and is controlled by one of those switches…

    7. Philadelphus says:

      It’s not even clear if you can open the dang things without destroying the wall and tearing them out. What sadist thought that was a good design?

      “Someone currently employed at Apple” is such low-hanging fruit…

  13. QUESTION: I would like to add my name to the video credits, but Patreon is forcing me to DOWNGRADE my donation to a lesser amount. What should I do?

    1. Bloodsquirrel says:

      He addressed that in the first video post. And it looks like they’re talking about it on his last post on Patreon (“Name in the Credits”). The reason he has a separate tier is to make it opt-in. It might just be easier if he lets people do that with a post. I can’t really be bothered to screw with my donation level, especially since I don’t want to find out 3 months later that Patreon screwed up again and my donation isn’t going through.

    2. Shamus says:

      Just before you hit “confirm” you can click on the dollar amount and change it to whatever suits you. No, it doesn’t LOOK like you can do this, but you can. The interface is atrocious.

      I think I need to do a post on this.

      1. PeteTimesSix says:

        You already have… in the last This Dumb Industry post, no less :]

      2. Simplex says:

        You can solve/work around that problem by offering multiple tiers ($5, $10, $15) that also contain the same reward.

  14. Decius says:

    It seems like video cards are still going to have to be backwards compatible with openGL, for all the same reasons that openGL has to be backwards compatible with itself.

    How is Vulkan abandoning that cruft meaningfully different from an openGL toolset/compiler/development environment that simply deprecates all the stuff that Vulkan doesn’t do and refuses to allow it in new software?

    1. Kai Durbin says:

      I’m pretty sure this is how it works: (If I mess up a few details, please don’t kill me)

      The programmer tells the program ‘I’ll be using OpenGL to interface with graphics. If you don’t recognize anything, check with OpenGL first – which you can find at [location] – before you throw your hands up and give me an error.’ OpenGL is not actually in the source code – the user has it. The user can then update OpenGL, and then every program that supports the new version can immediately begin using it. But if an update REMOVES something, then older programs can no longer run. With Vulkan, older programs can still use the jank-ass OpenGL, while newer ones can use Vulkan.

    2. Moridin says:

      For starters, calling it by a different name makes things much simpler if you have to google an issue or find a tutorial or whatever. I think there should be a rule about having to use a different name if you abandon backwards compatibility.

      Also, as I understand it, Vulcan doesn’t just “abandon the cruft”, it’s its own thing entirely.

      1. tmtvl says:

        There’s a discussion about that going on in Perl6. My stance is: if it’s good enough for Python 3 and Ruby whatever, it’s good enough for us.

        1. Decius says:

          Is there any reason to think that incrementing a number isn’t going to adequately disambiguate? I have no more trouble telling Windows NT 5 from Windows 3.1 than telling them from dosshell or Mac OS 1.

          Keeping the core name seems to signify significant common bases. If 99% of actual lines of code do the same thing, it makes sense to keep the name but acknowledge that you aren’t backwards compatible.

          1. Moridin says:

            Yeah, the thing is that no-one sane checks for the specific version of API(or operating system or whatever – allegedly one of the reasons Microsoft skipped Windows 9 is because there are lots of legacy programs that check for Windows 9* for compatibility mode for Windows 95 and 98 and Linus Torvalds has a very strict rule “Never break the userspace” meaning that any patch that causes userspace programs to not work(assuming, of course, that they were working before the patch) will automatically be rejected) unless they have a good reason to do so. Programmers do things like “Check that OpenGL version is 4.1 or higher” instead of “Check that OpenGL version is 4.1, 4.2 or 4.3”, which means that the moment you break backwards compatibility, you break basically every program ever and all the programmers will hate you. Not only is the latter more work, but it also means that the program has to be updated every time a new OpenGL version comes out(or the programmer has precognitive abilities) or it stops working.

            And as I said before, keeping the same name makes everything a huge pain in the butt when you have to, for example, search for how to do something.

            Oh, and you might not have any trouble telling Windows versions apart(though I doubt you can tell whether you’re using Windows 95 or Windows 98 at a glance), but good luck figuring out whether a game was made using OpenGL 3 or OpenGL 4 by the graphics alone.

            1. Decius says:

              Hmm… Even if I can tell what all current Windows versions are, but there’s no way I could write the rules to compare future Windows versions and tell if they support a given feature.

      2. Decius says:

        Is it a new paradigm of specifying graphics, in the same way that the list of previous advances were new paradigms? Because once OpenGL implements that paradigm, it’s not a thing unto Vulkan anymore.

  15. Wyatt from Colorado says:

    Great video, Shamus.
    One suggestion: when you cut from Rage 2 footage to the black icons on a white background, it’s a little jarring to the eyes because the white is so much brighter (Errant Signal does this too.) I recommend fading to white instead, or maybe swapping the white for something darker. A lot of shows, like Zero Punctuation or Chris Stuckmann’s analysis videos, never step up the brightness abruptly, and it helps make them easy to watch.

    I love the metaphor about the old house having cruft. You have a knack for comparing obscure tech concepts to ordinary stuff we all understand.

    1. Nimrandir says:

      The house analogy is great, but did anyone else miss the car analogy? I kinda missed the car analogy.

  16. Paul Spooner says:

    Personally I think that the entire Vulkan effort is a waste of time. Sure the cruft looks bad when you’re working in OpenGL, but if they put the effort toward clearly documenting best practices instead of making a new API, I think everyone would be better off. Bulldozing the Victorian house seems like a waste.

    1. RFS-81 says:

      I don’t know. I’ve never used OpenGL or Vulkan, so I don’t know how hard it is to find up-to-date information on OpenGL. But generally speaking, you not only need an up-to-date best-practices reference manual, but also up-to-date tutorials for beginners, and all of that won’t do any good anyway if outdated information still takes the top spots in Google.

      And then there are probably some bits in OpenGL that would have been designed differently if the designers could have seen into the future, but that can’t be changed now.

      1. Bloodsquirrel says:

        It’s worse than that: what you get is up-to-date and out-of-date information on OpenGL placed side-to-side, and if you’re a beginner you don’t even know enough to realize that’s what you’re seeing or know how to sort it out. And in addition to the in-date/out-of-date problem, you also have different mixes of extensions and utilities that different people are using, and then you have to also sort out the different versions of the OpenGL shader languages.

    2. Moridin says:

      Well, it’s more like building a new house next to the old one. Not like anyone except Apple is going to be deprecating OpenGL any time soon(and Apple doesn’t even support Vulkan).

  17. Alberek says:

    Kudos for the video, the editing was pretty good.
    Kinda nostalgic having you play Rage on Youtube again…

  18. Paul Spooner says:

    Need a better mirrored “B” in unicode.
    Edit: curses! Special characters get obfuscated!

  19. Thomas says:

    Not a big deal, but I think the still images would look better if the game footage wasn’t running underneath. Perhaps make the screen black or use a low saturation screenshot as a background?

  20. RFS-81 says:

    I’m talking about this Vulkan. With a K for some reason.

    Because the designers are kewl kidz!

    I watched the video. I still don’t get the point of barely-related game footage while someone’s talking, but since Jim Sterling does it too, I guess it’s just a YouTube thing. I got a laugh out of the “backwards compatibility” image! Also, I liked the outro music track much better than the one in the first video!

    1. Shamus says:

      “I watched the video. I still don’t get the point of barely-related game footage while someone’s talking, but since Jim Sterling does it too, I guess it’s just a YouTube thing. ”

      It’s a time/cost saving measure. Having related images and clips for every moment of video would be prohibitively time-consuming. (And a blank screen would annoy people and they’d ask for random game footage.) Searching for a related photo, cropping it, and editing it in isn’t a huge deal if you’re just doing one image. But if I tried to generate a new image for every sentence / concept then these videos would take ages. (And cost a fortune, since I sometimes pay for stock photos when I can’t find images on free sites.)

      1. RFS-81 says:

        Makes sense! I didn’t mean it as a knock on you, sorry if I came across that way. Mostly, I’m just puzzled that this type of content is more popular than podcasts.

      2. Baron Tanks says:

        Think I’ll leave a reply here, rather than starting up a new thread. Enjoying the video’s, here’s some user experience feedback. Not sure how common this is, but I’m at least giving you a single data point:

        The script and edit can be a bit more tight and compact. I enjoy the technical part of the editing. Your argumentation is clear and concise, it is however to the point where you guide the audience along so thoroughly that we know exactly what your next point is. Which you then, after some additional explanation, arrive at. So my experience is knowing what you’ll say next, then waiting for you to get there without the advantage of text, where you can glance at the text and pick up with the author. A bit more faith in the audience will allow you to get to the point a bit faster and keep the attention with the audience. Along with that, slightly speeding up the reading (we’re talking 5-10% here) will go a long way in better keeping the audience attention. You can do this either reading it back faster or maybe slightly speeding up the playback. The editing of ehms and ahhhsss here was good. Again, you’re entering the YouTube arena, so you’re competing with YouTube guys. All in all the video could have been 60-90 seconds tighter, which also eases up on the editing I suppose. We know elaboration and long form are part of the work you’re known for, but it should be a result of the work, not a goal in and of itself. It’s not that length in of itself is a problem (oh hello there Mr. Anderson), but at any point of the video, the play by play, I should be able to get hooked. One last thing, about the game footage. It’s fine that it’s random game footage, but if it’s unrelated to the video it would help if you add another game or two. When it’s only a single game, our pattern addicted brains try to make a connection to the topic and annoyingly trying to constantly predict what the link or bridge is here. I found it quite distracting.

        Sorry for the rant and I hope there’s a couple of helpful points in there. Good for making them a weekly schedule, it’s supposed to work for the metrics? Although any YouTube wisdom I’ve ever seen is all hearsay. I hope you’re keeping an eye on the metrics of the channel and if down the line there’s enough to say about it for an article, I would be very intrigued to read it.

  21. krellen says:

    While I’m sure most people already know this, the “some reason” for weird spellings of words is always the same: Trademarks. A company cannot trademark a common word (see the failed attempt to trademark “scrolls” and “edge”). But if you change the spelling, like with Vulkan or Syfy, suddenly that’s a trademarkable thing.

    It’s marketing and capitalism. As always.

    1. Shamus says:

      Joking aside, I really appreciate the K. If you’re a programmer and you need to search for the docs, it’s really nice to have this unique spelling to help the search engine out.

      1. RFS-81 says:

        Reminds me of all the latex-related adds I encountered during my PhD. And the oxidation-related adds I’m seeing now at work. What’s more annoying though is that Rust is not only a programming language but also a game. I’ve searched for “rust macros” and the first hit was for some cheat thingy that moves your mouse to correct for weapon recoil, so you can keep up with the damn kids who play the game 24/7. (If you think about it, it’s only fair if you cheat!!1!)

        A game called Vulkan seems not very likely in the near future, so that’s good too.

      2. baud says:

        I once had to work with a tool called beaver (why this name? Because it’s dealing with logs!). Searching for the (nearly non-existing) documentation wasn’t very fun.

      3. Wooji says:

        So its great that Vulkan is the swedish word for Vulcano and also the name of a large nordic publishing company =)

    2. Bloodsquirrel says:

      You can trademark a common word (ie, Apple is trademarked for Apple Computers), it’s just harder.

      The thing about trademarks is that, when you register a trademark, you aren’t completely reserving that word for yourself, you’re only reserving it when used in a specific way or in reference to a specific field/product. That’s why you can have Apple Computers and Apple Records, because music and computers are two completely unrelated fields. Until they weren’t. This gets into as hair-splitting territory as Bethesda not being able to trademark “Scrolls”, while Microsoft has “Halo” trademarked, because Microsoft’s game is just called “Halo” while Bethesda’s was “The Elder Scrolls”.

      All of this is also kind of subjectively applied. The point of a trademark is just as the word says- it’s a mark that identifies to the customer who they are trading with. The standard for it, therefore, is “Could the consumer be reasonably confused into thinking that he’s buying from the wrong company”, which allows a lot of leeway, and, on top of that, trademarks are generally only scrutinized when challenged, not when they’re registered.

    3. Will says:

      You can trademark a common word, but the scope of the trademark will be restricted roughly proportionally to the commonality of the word. Apple Inc. obviously has a trademark on the word “Apple”, but only in the context of computing and technology; all these other Apples (and dozens more too small to merit a Wikipedia mention) are therefore not infringing.

      edit: Scooped! With the exact example, even!

      Something relatively unique can be applied broadly, though; “Vulkan-with-a-K” can have basically universal scope because it’s not an extant word or phrase and nobody’s going to (credibly) independently use it for trade.

      (Also, like Shamus, if you name your tech thing I’m going to have to look documentation up for non-uniquely, I’m going to casually entertain fantasies of forcing you to develop all your software in 1960s-era FORTRAN. And for the love of god, don’t give you language a single-letter name. I’m looking at you, Go and D. “Golang” and “dlang” are workarounds that demonstrate that the actual names are stupid.)

      1. Lino says:

        And for the love of god, don’t give you language a single-letter name.

        The only single-letter language I’ve used is R, and although I’m not that advanced in it, I’ve always managed to find help for it…

      2. Matthew Downie says:

        Also, don’t give your language a name containing symbols that might confuse a search engine. I’m pretty sure there was a period when “C++” wasn’t indexed properly.

  22. Timothy Coish says:

    My issue with Vulkan is that what I really want is direct access to the framebuffer. You can get that with Windows, but then you have to do CPU rendering, which is brutally slow. My technically solid but economically/legally impossible solution would require totally changing the underlying hardware.

    My ideal world would be that we get rid of all this complicated and opaque graphics hardware, and go to a heterogenous processor. Give me one or two enormous traditional cores. That means massive and multi-level cache, very high clock rates, Branch Predictors/Speculative Execution, deep pipelining, SuperScalar (duplicate execution resources for ILP). When I want single threaded code to be executed quickly, I want a processor that is really good at that, and that’s this guy.

    Then, on the same chip, give me a few hundred tiny stupid cores with tiny amounts of cache, no branch predictor, no out of order execution, a single ALU, very limited pipelining, very low clock rates, and 4-8x duplicated registers. These processors would collectively be massively faster than the traditional cores for “embarrassingly parallel” tasks, and would be truly capable of general purpose computing, which our current GPU’s suck at, because they do not have access to main memory, so doing little tasks on them is a total waste of time. They also suck because they’re nightmares to program for, but that’s different.

    What we could then do for graphics is just give programmers access to the framebuffer, and they could take it from there. Would be so beneficial for so many different reasons, but it’s probably not going to happen.

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun. Your email address will not be published. Required fields are marked*

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>

Leave a Reply

Your email address will not be published. Required fields are marked *