Did you know we have a Forum? Come and say hi to the wider community!
Latest Comments by ShabbyX
Vulkan API 1.3 released, new roadmap and profiles feature
26 Jan 2022 at 5:22 pm UTC

Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: marshmallow_madman
Quoting: Guest
Quoting: PeakHopefully the dynamic rendering extension means we will finally be able to get Halo Infinite running.
Not sure what one has to do with the other?
Halo Infinite, being a flagship Microsoft product built on a new game engine, acts as sort of a tech demo for Microsoft to show off new features in DirectX12 Ultimate/Xbox Series consoles. In other words, they get deep in the DX12 API and use features most other games haven't adopted yet. Some of those more obscure, less used DX12 Ultimate features don't have trivial or straightforward analogs in the current version of Vulkan, which makes the game challenging to support flawlessly with DXVK.

A new version of Vulkan with new features means that some of those DX12 features now do have straightforward Vulkan equivalents, which means that DXVK can better support them and games like Halo Infinite might work a little better. Dynamic rendering sounds like it's one of those features.
I see where you're coming from, but no, dynamic rendering is nothing to do with that. It relates more dynamic usage (hence the name) of the default framebuffer for rendering output. In essence is allows a lot of framebuffer and renderpass setup to be simplified when interacting with Vulkan, for certain use cases.

Actually it's probably more useful for handling things like DX9 or OpenGL over Vulkan.
It's more than for _certain_ use cases and GL emulation. The dynamic rendering extension dispenses with framebuffers and render pass objects altogether, which have been a constant source of pain for developers. In truth, render passes are still _the_ optimal way for tile-based renderers, but dynamic rendering makes things much simpler for apps targeted at desktop.
If you want to get picky, be my guest, but I'll feel obliged to point out simpler for apps targeted at desktop that don't use render sub-passes (for example, if an initial colour pass is also calculating normal values and feeding them along with depth values directly into a lighting pass, then that can be optimised greatly using a sub-pass even on desktop). Once any particular sub-pass is desired, then the benefits of the dynamic rendering extension are limited somewhat and may as well not be used.
Are you suggesting the driver merges the two subpasses' fragment shaders in one in that case? I guess that's doable, though I haven't heard of any driver doing that. Why would an app use two subpasses in that case when they can just do the whole thing in one pass?

Subpasses shine on TBR hardware because an app can do all sorts of stuff in one pass (blend, overdraw etc), then use the results in the second pass without the framebuffer data leaving tile memory. On IMR hardware the draw results end up reaching the memory during the first pass anyway (yes, there's some cache), there's really no benefit to one render pass with two subpasses compared with two render passes as far as I know.

If you know something about this I don't know, I'd be very keen to learn :)
Lighting (specifically deferred lighting) I mentioned because it's the one case I've found where a sub-pass has given good performance boosts: it's the same framebuffer size, and is a distinct pass (intervening geometry means you can't simply incorporate it into the colour/normal/depth pass). Deferred lighting of this fashion is falling out of favour because of newer techniques that handle transparency better though.

Anyway, performance improvements were seen even on desktop GPUs, which from a hardware perspective I believe use a kind of tile-based immediate mode these days (though to be honest I've not kept track with the latest desktop or mobile GPU architectures, which might have diverged again), and the driver can definitely take hints from the program to setup that nicely (even if just for caching). My limits of knowledge on the matter end there - I know the driver can optimise sub-passes even on desktop, but exactly what it does I've never bothered to look into detail at (and it'd change between hardware anyway).

All that being said, I'm also aware that many (myself included) don't like the render pass interface (it's a bit of a pain to setup) and I'm sure there are hints elsewhere that a driver can use (or that Khronos will introduce) just so that the benefits of sub-passes can be used (where applicable) without annoying the developer.
Interesting, my team (ANGLE) is dedicated to TBRs right now, and I never thought to measure on IMR, but I'm still a bit surprised you could measure anything noticeable. I guess I need an arch update too.
You'll have to tell me if the new extensions make life easier at all, because I'm insatiably curious about such things!
Hah, it'll be years before we can use anything shiny on Android (at which point they are not shiny anymore). More importantly, no, it's known that dynamic rendering on TBR is actually less optimal than explicit subpasses. It may one day be better though.

That said, yes it would have made things easier if we didn't have framebuffer objects etc, though some existing extensions do alleviate the pain already (like imageless framebuffers)

Vulkan API 1.3 released, new roadmap and profiles feature
26 Jan 2022 at 6:00 am UTC

Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: marshmallow_madman
Quoting: Guest
Quoting: PeakHopefully the dynamic rendering extension means we will finally be able to get Halo Infinite running.
Not sure what one has to do with the other?
Halo Infinite, being a flagship Microsoft product built on a new game engine, acts as sort of a tech demo for Microsoft to show off new features in DirectX12 Ultimate/Xbox Series consoles. In other words, they get deep in the DX12 API and use features most other games haven't adopted yet. Some of those more obscure, less used DX12 Ultimate features don't have trivial or straightforward analogs in the current version of Vulkan, which makes the game challenging to support flawlessly with DXVK.

A new version of Vulkan with new features means that some of those DX12 features now do have straightforward Vulkan equivalents, which means that DXVK can better support them and games like Halo Infinite might work a little better. Dynamic rendering sounds like it's one of those features.
I see where you're coming from, but no, dynamic rendering is nothing to do with that. It relates more dynamic usage (hence the name) of the default framebuffer for rendering output. In essence is allows a lot of framebuffer and renderpass setup to be simplified when interacting with Vulkan, for certain use cases.

Actually it's probably more useful for handling things like DX9 or OpenGL over Vulkan.
It's more than for _certain_ use cases and GL emulation. The dynamic rendering extension dispenses with framebuffers and render pass objects altogether, which have been a constant source of pain for developers. In truth, render passes are still _the_ optimal way for tile-based renderers, but dynamic rendering makes things much simpler for apps targeted at desktop.
If you want to get picky, be my guest, but I'll feel obliged to point out simpler for apps targeted at desktop that don't use render sub-passes (for example, if an initial colour pass is also calculating normal values and feeding them along with depth values directly into a lighting pass, then that can be optimised greatly using a sub-pass even on desktop). Once any particular sub-pass is desired, then the benefits of the dynamic rendering extension are limited somewhat and may as well not be used.
Are you suggesting the driver merges the two subpasses' fragment shaders in one in that case? I guess that's doable, though I haven't heard of any driver doing that. Why would an app use two subpasses in that case when they can just do the whole thing in one pass?

Subpasses shine on TBR hardware because an app can do all sorts of stuff in one pass (blend, overdraw etc), then use the results in the second pass without the framebuffer data leaving tile memory. On IMR hardware the draw results end up reaching the memory during the first pass anyway (yes, there's some cache), there's really no benefit to one render pass with two subpasses compared with two render passes as far as I know.

If you know something about this I don't know, I'd be very keen to learn :)
Lighting (specifically deferred lighting) I mentioned because it's the one case I've found where a sub-pass has given good performance boosts: it's the same framebuffer size, and is a distinct pass (intervening geometry means you can't simply incorporate it into the colour/normal/depth pass). Deferred lighting of this fashion is falling out of favour because of newer techniques that handle transparency better though.

Anyway, performance improvements were seen even on desktop GPUs, which from a hardware perspective I believe use a kind of tile-based immediate mode these days (though to be honest I've not kept track with the latest desktop or mobile GPU architectures, which might have diverged again), and the driver can definitely take hints from the program to setup that nicely (even if just for caching). My limits of knowledge on the matter end there - I know the driver can optimise sub-passes even on desktop, but exactly what it does I've never bothered to look into detail at (and it'd change between hardware anyway).

All that being said, I'm also aware that many (myself included) don't like the render pass interface (it's a bit of a pain to setup) and I'm sure there are hints elsewhere that a driver can use (or that Khronos will introduce) just so that the benefits of sub-passes can be used (where applicable) without annoying the developer.
Interesting, my team (ANGLE) is dedicated to TBRs right now, and I never thought to measure on IMR, but I'm still a bit surprised you could measure anything noticeable. I guess I need an arch update too.

SUPERHOT: MIND CONTROL DELETE fixes up Steam Deck support
26 Jan 2022 at 5:55 am UTC Likes: 1

Quoting: Purple Library Guy
Quoting: ShabbyX
Quoting: Eike
unified save names for PC - MAC/Linux
Yes please!

I mostly play on my Linux box, but sometimes also on my wife's Windows :sad: PC and my father-in-law's gaming box, so that's very handy.
Finally, the cool future has come when someone can play on their *father in-law's* gaming box!
Oh, that's it! Now I have to get my grandson or granddaughter to play a game on my computer.
Amazing!

Also, if that means they will experience Linux now, by all means!

SUPERHOT: MIND CONTROL DELETE fixes up Steam Deck support
26 Jan 2022 at 12:51 am UTC Likes: 2

Quoting: Eike
unified save names for PC - MAC/Linux
Yes please!

I mostly play on my Linux box, but sometimes also on my wife's Windows :sad: PC and my father-in-law's gaming box, so that's very handy.
Finally, the cool future has come when someone can play on their *father in-law's* gaming box!

Vulkan API 1.3 released, new roadmap and profiles feature
26 Jan 2022 at 12:46 am UTC

Quoting: Guest
Quoting: ShabbyX
Quoting: Guest
Quoting: Guest
Quoting: Guest
Quoting: PeakHopefully the dynamic rendering extension means we will finally be able to get Halo Infinite running.
Not sure what one has to do with the other?
Halo Infinite, being a flagship Microsoft product built on a new game engine, acts as sort of a tech demo for Microsoft to show off new features in DirectX12 Ultimate/Xbox Series consoles. In other words, they get deep in the DX12 API and use features most other games haven't adopted yet. Some of those more obscure, less used DX12 Ultimate features don't have trivial or straightforward analogs in the current version of Vulkan, which makes the game challenging to support flawlessly with DXVK.

A new version of Vulkan with new features means that some of those DX12 features now do have straightforward Vulkan equivalents, which means that DXVK can better support them and games like Halo Infinite might work a little better. Dynamic rendering sounds like it's one of those features.
I see where you're coming from, but no, dynamic rendering is nothing to do with that. It relates more dynamic usage (hence the name) of the default framebuffer for rendering output. In essence is allows a lot of framebuffer and renderpass setup to be simplified when interacting with Vulkan, for certain use cases.

Actually it's probably more useful for handling things like DX9 or OpenGL over Vulkan.
It's more than for _certain_ use cases and GL emulation. The dynamic rendering extension dispenses with framebuffers and render pass objects altogether, which have been a constant source of pain for developers. In truth, render passes are still _the_ optimal way for tile-based renderers, but dynamic rendering makes things much simpler for apps targeted at desktop.
If you want to get picky, be my guest, but I'll feel obliged to point out simpler for apps targeted at desktop that don't use render sub-passes (for example, if an initial colour pass is also calculating normal values and feeding them along with depth values directly into a lighting pass, then that can be optimised greatly using a sub-pass even on desktop). Once any particular sub-pass is desired, then the benefits of the dynamic rendering extension are limited somewhat and may as well not be used.
Are you suggesting the driver merges the two subpasses' fragment shaders in one in that case? I guess that's doable, though I haven't heard of any driver doing that. Why would an app use two subpasses in that case when they can just do the whole thing in one pass?

Subpasses shine on TBR hardware because an app can do all sorts of stuff in one pass (blend, overdraw etc), then use the results in the second pass without the framebuffer data leaving tile memory. On IMR hardware the draw results end up reaching the memory during the first pass anyway (yes, there's some cache), there's really no benefit to one render pass with two subpasses compared with two render passes as far as I know.

If you know something about this I don't know, I'd be very keen to learn :)

Vulkan API 1.3 released, new roadmap and profiles feature
26 Jan 2022 at 12:16 am UTC

Quoting: Guest
Quoting: Guest
Quoting: Guest
Quoting: PeakHopefully the dynamic rendering extension means we will finally be able to get Halo Infinite running.
Not sure what one has to do with the other?
Halo Infinite, being a flagship Microsoft product built on a new game engine, acts as sort of a tech demo for Microsoft to show off new features in DirectX12 Ultimate/Xbox Series consoles. In other words, they get deep in the DX12 API and use features most other games haven't adopted yet. Some of those more obscure, less used DX12 Ultimate features don't have trivial or straightforward analogs in the current version of Vulkan, which makes the game challenging to support flawlessly with DXVK.

A new version of Vulkan with new features means that some of those DX12 features now do have straightforward Vulkan equivalents, which means that DXVK can better support them and games like Halo Infinite might work a little better. Dynamic rendering sounds like it's one of those features.
I see where you're coming from, but no, dynamic rendering is nothing to do with that. It relates more dynamic usage (hence the name) of the default framebuffer for rendering output. In essence is allows a lot of framebuffer and renderpass setup to be simplified when interacting with Vulkan, for certain use cases.

Actually it's probably more useful for handling things like DX9 or OpenGL over Vulkan.
It's more than for _certain_ use cases and GL emulation. The dynamic rendering extension dispenses with framebuffers and render pass objects altogether, which have been a constant source of pain for developers. In truth, render passes are still _the_ optimal way for tile-based renderers, but dynamic rendering makes things much simpler for apps targeted at desktop.

Steam broke its own record for online users once again, hitting 29 million
24 Jan 2022 at 2:52 pm UTC Likes: 3

This must be the first article that doesn't include an intro and link to Steam Deck. Liam thinks we finally know what it is by now :D

Valve sponsors more work to improve Linux graphics drivers
24 Jan 2022 at 2:48 pm UTC Likes: 4

Quoting: Liam Dawe
Quoting: ShabbyXFYI, dEQP is the original name of the OpenGL CTS, before Google bought the company and donated it to Khronos. The correct name now is VK-GL-CTS.

Also, lol, I didn't remember what it stood for.
Heh, interesting, even the official GitHub ReadMe still calls it dEQP though https://github.com/KhronosGroup/VK-GL-CTS [External Link]
Yeah, and so do the command line options. Despite all the work that's continuously done to add tests, there is no one actually cleaning anything up there :D

Valve sponsors more work to improve Linux graphics drivers
24 Jan 2022 at 12:44 pm UTC Likes: 6

FYI, dEQP is the original name of the OpenGL CTS, before Google bought the company and donated it to Khronos. The correct name now is VK-GL-CTS.

Also, lol, I didn't remember what it stood for.

Microsoft to acquire Activision Blizzard
18 Jan 2022 at 6:10 pm UTC

I haven't touched a blizzard game since the CEO's now-long-ago response to the petition to bring their games to Linux. Given how everything microsoft touches goes to sh*t, I'd say ...

Whatever.