No, it absolutely does come from designing the API differently.
The key conceptual difference is that in OpenGL, you change state, change state, change state, change state, render, change state, change state, change state, change state, change state, change state, render. You do this every render loop.
In {Vulcan | Direct3D 12 | Metal | Mantle}, you define two states at program launch, then each render loop, you do: bind existing state, render, bind existing state, render.
There's two gains here 1) A small one - you're calling fewer driver functions per frame. Many of these cross the kernel barrier, and as such are actually fairly large performance drags. When you're talking about doing a few thousand renders per frame, cutting out 2 kernel calls per render is a significant win. Cutting out 6 library calls per render is a less-significant, but still reasonable win. 2) The calls to change state can do much less. Like, unbelievable less. In OpenGL, the driver does not know when a render call is going to come, so it has two choices, either 1) it can do all the work for a state update every time a state change call comes in 2) it can cache all the state changes until a render call comes in. In the case of 1, this means it does a lot of duplicated work, in the car of 2, this means render calls lag a really long time. In {Vulcan | Direct3D 12 | Metal | Mantle}, instead, the driver can do all of the state verification and preparation work only once at application launch.
Why is state verification and preparation work so expensive I hear you ask. Well, a state change can have surprisingly large knock on effects. For example, on many graphics cards, blending is implemented as a frame buffer fetch, plus a few instructions at the end of the shader. That means that if you change the blending state, the driver actually has to re-compile the shader. Similarly, if you change the vertex format (e.g. to normalised vertices), again, that's implemented as a few instructions on the front of the vertex shader, so... gotta recompile and relink again.
Basically, a surprising amount of stuff requires a complete recompilation of the shader, and that's really costly. OpenGL makes the driver do this lots of times per frame. {Vulcan | Direct3D 12 | Metal | Mantle} do not.
No, they're not at all obsolete in the 21st Century.
When it comes to graphics programming, at the very low level (i.e. people who are writing the engines, not people who are using the engines), everything is about performance. These people (myself included) absolutely will jump through the hoops of writing 600 lines of setup code if it means I don't end up with half a CPU used up just recompiling shaders and verifying state changes all the time.
Ultimately, this code is written once, by the rendering engine developer, and then used an awful lot, so it being complex code means it's a large up front cost, but a very very low amortised cost. Meanwhile, it's a very very large performance gain.
Uhhh, you realise that it was Valve who wrote the open source Vulcan driver, right?
They're making a shit ton of profit of code they wrote, and happened to be kind enough to open source for you to use.
That, and, if you open source something, you made a conscious decision to allow someone else to use that code, and to make a profit off it. At that point, they have no responsibility to you at all. It was your choice to take your code and open it. It was very nice of you to do that, but you are not buying some kind of "future favours" with it.
Hah, improved productivity from overhearing team conversations? Bullshit. That's the biggest loss of productivity in the world, right there. Everyone ends up spending all their time talking, and not actually doing work.
It's also not even more fun. It's in fact very frustrating to not be able to actually get things done.
I mean, the parent post fails to take into account that when it goes wrong it renders a large area of land uninhabitable, but that's easily dealt with in modern reactor designs.
Actually no, several studies have shown that money isn't the primary driver. Instead, once the cash level hits a certain point (basically, comfortable living), how much people enjoy the job dominates salary increases.
750GB is the amount they can fit one one chip package - i.e. what they could fit on a SD card. A typical gum stick SSD has several of these (usually around 5), hence the 3-4TB per gumstick estimate. A 2.5" drive will typically have more like 12-15 of them, hence the 10TB estimate.
You have a faulty SSD if you've got to 12% worn in 1 month. For a non-faulty 840 EVO 1TB that's a physical impossibility. 12% wear would imply that you've written more than 36TB to the drive already, which implies writing continuously at 833MB/s, which is higher than the drive's maximum write speed.
No, installing dual flush toilets won't help, it'll barely tickle the problem.
Around 80% of all water in california is used for farming. Of the 20% that goes to residences, only about 20% of that is used for flushing toilets. A dual flush toilet saves 50% of the water 50% of the time, so that's 0.0025% of the problem you could solve with dual flush toilets.
In the mean time, our farmers make huge profit off growing ridiculous crops like rice (yes really, they grow rice, a crop that requires flooding the field, in California), and almonds. By stopping subsidising crops that are just insane to grow in an arid area, California could solve it's "drout" issue overnight. We literally could halve the state's water usage utterly trivially.
No, in Europe liberalism tends to refer to social liberalism, not economic liberalism. Liberal policies tend to be centered around equality for every person, not around the american libertarian "just let the free market do it's thing". In general, their policies run completely orthogonally to being left/right wing.
To be fair, the deluxe edition adds a lot more than just 5 buildings, plus, you can import your own 3D models, and get those buildings for free if you want.
Except, if you read even the summary, you'll discover that they're taking half of estimated spending money, not half of your income. Someone living paycheck to paycheck would get an extremely small fine, while someone earning millions will be deprived of nearly half their income.
You may not think it's a good idea, but every single game engine developer on the planet thinks it's a great idea ;).
No, it absolutely does come from designing the API differently.
The key conceptual difference is that in OpenGL, you change state, change state, change state, change state, render, change state, change state, change state, change state, change state, change state, render. You do this every render loop.
In {Vulcan | Direct3D 12 | Metal | Mantle}, you define two states at program launch, then each render loop, you do: bind existing state, render, bind existing state, render.
There's two gains here
1) A small one - you're calling fewer driver functions per frame. Many of these cross the kernel barrier, and as such are actually fairly large performance drags. When you're talking about doing a few thousand renders per frame, cutting out 2 kernel calls per render is a significant win. Cutting out 6 library calls per render is a less-significant, but still reasonable win.
2) The calls to change state can do much less. Like, unbelievable less. In OpenGL, the driver does not know when a render call is going to come, so it has two choices, either 1) it can do all the work for a state update every time a state change call comes in 2) it can cache all the state changes until a render call comes in. In the case of 1, this means it does a lot of duplicated work, in the car of 2, this means render calls lag a really long time. In {Vulcan | Direct3D 12 | Metal | Mantle}, instead, the driver can do all of the state verification and preparation work only once at application launch.
Why is state verification and preparation work so expensive I hear you ask. Well, a state change can have surprisingly large knock on effects. For example, on many graphics cards, blending is implemented as a frame buffer fetch, plus a few instructions at the end of the shader. That means that if you change the blending state, the driver actually has to re-compile the shader. Similarly, if you change the vertex format (e.g. to normalised vertices), again, that's implemented as a few instructions on the front of the vertex shader, so... gotta recompile and relink again.
Basically, a surprising amount of stuff requires a complete recompilation of the shader, and that's really costly. OpenGL makes the driver do this lots of times per frame. {Vulcan | Direct3D 12 | Metal | Mantle} do not.
No, they're not at all obsolete in the 21st Century.
When it comes to graphics programming, at the very low level (i.e. people who are writing the engines, not people who are using the engines), everything is about performance. These people (myself included) absolutely will jump through the hoops of writing 600 lines of setup code if it means I don't end up with half a CPU used up just recompiling shaders and verifying state changes all the time.
Ultimately, this code is written once, by the rendering engine developer, and then used an awful lot, so it being complex code means it's a large up front cost, but a very very low amortised cost. Meanwhile, it's a very very large performance gain.
Uhhh, you realise that it was Valve who wrote the open source Vulcan driver, right?
They're making a shit ton of profit of code they wrote, and happened to be kind enough to open source for you to use.
That, and, if you open source something, you made a conscious decision to allow someone else to use that code, and to make a profit off it. At that point, they have no responsibility to you at all. It was your choice to take your code and open it. It was very nice of you to do that, but you are not buying some kind of "future favours" with it.
Hah, improved productivity from overhearing team conversations? Bullshit. That's the biggest loss of productivity in the world, right there. Everyone ends up spending all their time talking, and not actually doing work.
It's also not even more fun. It's in fact very frustrating to not be able to actually get things done.
How do you know what's typical until you start crashing things into them?
How would you simulate it on a computer when you don't know the internal make up of the asteroid?
I wonder if a cinema owner should be forced to sell tickets to black men.
Oh wait, I don't wonder that at all, because I'm not a bigoted idiot.
Which reactor melt down has killed millions?
I mean, the parent post fails to take into account that when it goes wrong it renders a large area of land uninhabitable, but that's easily dealt with in modern reactor designs.
Right, smart people realise that the real way to get power is to pull the strings on the dumb people
Actually no, several studies have shown that money isn't the primary driver. Instead, once the cash level hits a certain point (basically, comfortable living), how much people enjoy the job dominates salary increases.
750GB is the amount they can fit one one chip package - i.e. what they could fit on a SD card. A typical gum stick SSD has several of these (usually around 5), hence the 3-4TB per gumstick estimate. A 2.5" drive will typically have more like 12-15 of them, hence the 10TB estimate.
You have a faulty SSD if you've got to 12% worn in 1 month. For a non-faulty 840 EVO 1TB that's a physical impossibility. 12% wear would imply that you've written more than 36TB to the drive already, which implies writing continuously at 833MB/s, which is higher than the drive's maximum write speed.
Causing an accident is far from the only negative outcome of speeding.
It also massively increases the severity of accidents (remember, a 40mph crash has 4 times more energy involved than a 30mph crash).
That would be, from the gigantic factory he's building along side Panasonic ;)
No, installing dual flush toilets won't help, it'll barely tickle the problem.
Around 80% of all water in california is used for farming. Of the 20% that goes to residences, only about 20% of that is used for flushing toilets. A dual flush toilet saves 50% of the water 50% of the time, so that's 0.0025% of the problem you could solve with dual flush toilets.
In the mean time, our farmers make huge profit off growing ridiculous crops like rice (yes really, they grow rice, a crop that requires flooding the field, in California), and almonds. By stopping subsidising crops that are just insane to grow in an arid area, California could solve it's "drout" issue overnight. We literally could halve the state's water usage utterly trivially.
Then you can turn up, and make a big scene about spoiling your ballot.
Anyone can read the HTML5, CSS and Javascript specs, and implement them. Only Microsoft can read the ActiveX spec and implement it.
Note, "Mandatory voting" typically means "Mandatory attendance".
In a mandatory voting society, it's entirely reasonable to spoil your ballot, or select RON.
What on earth is "an Uruguay syndrom", and why does google have no idea either.
No, in Europe liberalism tends to refer to social liberalism, not economic liberalism. Liberal policies tend to be centered around equality for every person, not around the american libertarian "just let the free market do it's thing". In general, their policies run completely orthogonally to being left/right wing.
You're right about the conservatives though.
To be fair, the deluxe edition adds a lot more than just 5 buildings, plus, you can import your own 3D models, and get those buildings for free if you want.
To be fair, based on the number of Finnish F1 and WDC champions, they're pretty fucking good at it :P
Except, if you read even the summary, you'll discover that they're taking half of estimated spending money, not half of your income. Someone living paycheck to paycheck would get an extremely small fine, while someone earning millions will be deprived of nearly half their income.
Of course not - that's trivially provable by the fact that for a list of length n, n pointers must be rewritten.