News for hackers. Stuff that matters.
Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Wednesday January 15, 2020 @07:13AM (#22053555)
> They need to stop only thinking in the ways OGL/D3D taught them to think, and need to also think like a driver developer, or possibly even a compiler developer.

Which is exactly the opposite than anyone that wants to draw something wants to think about.

Also Vulkan is on its merry path to have endless list of extensions, so it will eventually match OpenGL's complexity about what code paths to take, with the required cleverness of having to be a graphics programmer, driver developer and compiler developer at the same time.

No wonder anyone that wants to stay sane rather picks up a middleware engine instead.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by roblabla on Wednesday January 15, 2020 @08:18AM (#22053881)
Vulkan was never meant to be directly used by people who “just want to draw stuff”. It was meant to give engine developers the tools required to squeeze more performance out of the GPUs.

This is a case of working as designed. The people trying to directly use Vulkan in their games without any middleware layer are just generally wrong here.

Regarding extensions, this is just what happens when you specify something that keeps evolving - there’s no getting around this. What you can do to minimise the complexity is decide to require certain extensions once they’ve been around for long enough. That’s what everyone does.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Wednesday January 15, 2020 @09:51AM (#22054596)
It would help if Khronos would promote an API for people who “just want to draw stuff”, given that OpenGL 5.0 will never happen most likely and those people don't want to be stuck with OpenGL 4.6 forever.

That is not what everyone does, because Vulkan gets new extensions updates almost every week.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by loup-vaillant on Wednesday January 15, 2020 @10:19AM (#22054894)
> It would help if Khronos would promote an API for people who “just want to draw stuff”

Would it?

What you really want is a stable API to talk to the hardware. It doesn't really matter if the API is nigh unusable, as long as it is stable. Only when such stability is reached, can we reliably build stuff on top of it. Including a "just draw stuff" engine.

We could for instance re-implement Flash on top of Vulkan. Such a thing wouldn't need a standard body to get done and be usable by a wide range of people. (Though in this particular case, we'd likely have some standard body involved anyway, since there's already so much Flash code out there.)

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Wednesday January 15, 2020 @11:28AM (#22055605)
So where do OpenGL developers move to, when 4.6 moves into "this legacy thing we would like to drop"?
Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by DiabloD3 on Wednesday January 15, 2020 @12:03PM (#22055918)
You implement OpenGL as a middleware that speaks Vulkan.

Basically, ANGLE it, but for desktop OpenGL instead of GLES.

As an aside, Google is adding a Vulkan backend for ANGLE, and Microsoft seems to be adding a DX12 (which is basically DXVulkan) backend (to match the DX11 backend they gave Google) at some point in the future.

So, GLES, in its entirety, is now a community supported, open source, Vulkan middleware. No reason why we can't do that with desktop GL too.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Wednesday January 15, 2020 @01:14PM (#22056723)
So 10 years from now those that don't want to be a mix of graphical developer, driver author and compiler designers, have to keep using a frozen API from 2018, without any access to whatever has changed on their computers during the next decade.

All because providing something like MetalKit or DirectXTK is too much to ask for to Khronos and LunarG.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by DiabloD3 on Wednesday January 15, 2020 @01:49PM (#22057124)
But should it change? There are issues where updating OpenGL support in drivers broke earlier apps due to accidental changes in how existing features were implemented.

Vulkan and DX12 are far less likely to break existing apps i the future due to far fewer core features.

It makes no sense to have what is essentially an entire legacy middleware in the driver when it no longer represents modern hardware.

Unlike GLES, OpenGL basically can never deprecate features, and D3D9 support will never, truly, die. It's a lot easier to just package a universal shim into existing legacy apps than it is to keep mangling drivers over the issue.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Wednesday January 15, 2020 @02:13PM (#22057408)
> It makes no sense to have what is essentially an entire legacy middleware in the driver when it no longer represents modern hardware.

Exactly, but it is the only API that Khronos is offering for those that don't want to be Vulkan experts.

Which leaves middleware engines, something totally unrelated to Khronos APIs, as the only future proof path for accessing GPU features on modern hardware.

As for drivers breaking down, the main reason why Vulkan is now compulsory on Android as of version 10, is because while it was optional, the few OEMs that bothered to support it did a very lousy job, so Google hopes by making it compulsory and part of Android CTS, the situation will improve.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by atq2119 on Wednesday January 15, 2020 @09:37PM (#22061215)
> Vulkan and DX12 are far less likely to break existing apps i the future due to far fewer core features.

This is questionable. Vulkan by definition has basically no error checking in the driver, and while developers are supposed to use the validation layer, they may not do so, and even if they do, there are certain plenty of incorrect things an application can do that won't be caught by validation.

Incorrect programs may still happen to run correctly on existing drivers, but then fail with a driver update that happens to change the undefined behavior.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by loup-vaillant on Thursday January 16, 2020 @02:31AM (#22062361)
C compiler writers have answered that conundrum a long time ago: "if you (even accidentally) rely on undefined behaviour, the warranty is void".

I don't necessarily agree, but if we have a way to avoid undefined behaviour (and at least in C there are ways to make pretty thorough checks), then it works in practice.

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by pjmlp on Thursday January 16, 2020 @03:12AM (#22062549)
The checks that according to most surveys and security reports are used by a tiny part of the C community?

If it doesn't work for C regarding mainstream adoption, how come it will work for Vulkan?

Re:Patch Critical Cryptographic Vulnerability in Microsoft W... by loup-vaillant on Thursday January 16, 2020 @07:56PM (#22070791)
It won't, unless only a fairly small elite ends up using Vulkan. And I believe that's what will happen indeed: Vulkan is low level enough that most likely, only engine devs and middleware devs will touch it.

You will of course have the occasional cowboy (which I personally am, though in a different domain), but that shouldn't matter that much in the grand scheme of things.

Now if you ask me, Vulkan is not enough. What we really want is a stable, usable hardware interface. Basically an ISA. The thing will have close to zero bug, because hardware folks know how to properly test their designs. Undefined behaviour is likely unavoidable, but I believe it can be reduced to a reasonable minimum.

If AMD and NVidia started something like RISC-V, except for graphics cards, it will likely have a greater impact than RISC-V itself.