Announcement

Collapse
No announcement yet.

Vulkan 1.3.245 Brings New NVIDIA Vendor Extension To Help Optimize Ray-Tracing

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Quackdoc
    replied
    Originally posted by piotrj3 View Post

    1st. You have normal vulkan version system and Vulkan since 1.1 in base has quite good base what is in core and it works good. Vulkan 1.1 is capable of making entire Wayland compositor including managing all memory etc.
    too bad sway needs DRM format modifers, which is an extension not even in 1.3, so no polaris support there for whatever reason

    Leave a comment:


  • piotrj3
    replied
    Originally posted by Daktyl198 View Post

    The problem isn't that Extensions aren't useful, it's that simply by having them you make it extremely annoying for developers trying to use your API. To the people saying "The engine will support it, so game devs won't care", that's a view that doesn't look at history. Unity and Unreal have a long history of supporting OpenGL alongside DX12 to allow for making cross-platform games, but the engine devs get sick and tired of working with OpenGL, leading to sub-par implementations. This, in turn, leads to game devs not building their game using OpenGL/Vulkan because the resulting build is buggier, and slower. This doesn't even touch on the Driver issues that come with maintaining so many extensions. AMD's driver update on Windows a few months ago that resulted in 30% better OpenGL performance shows that it's not easy.

    Also, as a counterpoint to "anybody can implement a proprietary extesion", as far as I know there's nothing stopping Linux drivers from implementing the DX12 API into their drivers other than hatred for Microsoft. A few years ago, there was already an effort with Gallium Nine to implement DX9 and it worked great, but was platform specific so Wine hated it. There are several tools like DXVK that essentially "implement" the API, from an application's perspective. If AMD and Intel pushed to allow for DX12 APIs into their mainline drivers, then Nvidia would quickly follow given that their userspace driver is pretty much a clone of their Windows driver.

    But god forbid anybody developing Linux software do something useful for the end user, rather than grandstanding their philosophies.
    1st. You have normal vulkan version system and Vulkan since 1.1 in base has quite good base what is in core and it works good. Vulkan 1.1 is capable of making entire Wayland compositor including managing all memory etc.
    2nd. Propertiary extension here means it has public full spec, so it still has very precizly in conformance test defined behaviour. There is nothing preventing AMD implement Nvidia vulkan extension and in fact AMD does implement some of them.
    3rd. Vulkan is VERY precize and has conformance tests in depth from start and since it is low-level API with explicit synchronization model, most stuff are very strongly outlined what they do. OpenGL is very imprecise, has bad documentation and is plagued by undefined behaviour (for example, I remember one bug in KDE when some operation was done and state of something after it was unknown, MESA assumed one thing, Nvidia assumed another - such thing is not possible in Vulkan), and OpenGL is very difficult to optimize (forcing full flush after every operation that could require flush is extremly wasteful, so drivers try to optimize certain things leading to sometimes poor quality).

    By comparison DX12 has certain propertiary bits that are deep in directx kernel driver and has own scheduler and that part is not just propertiary but it is not even outlined exactly how stuff internally work in docs.
    Last edited by piotrj3; 30 March 2023, 10:34 AM.

    Leave a comment:


  • Quackdoc
    replied
    Originally posted by Daktyl198 View Post
    The problem isn't that Extensions aren't useful, it's that simply by having them you make it extremely annoying for developers trying to use your API.
    not really, it's a lot more frustrating when there is no extension that does what you need, we are far better off with them then without them, and have fun trying to mandate all of the extensions into core profile, that will end *very* well im sure.
    To the people saying "The engine will support it, so game devs won't care", that's a view that doesn't look at history. Unity and Unreal have a long history of supporting OpenGL alongside DX12 to allow for making cross-platform games, but the engine devs get sick and tired of working with OpenGL, leading to sub-par implementations.
    I dont think it's accurate or fair to equate this to extensions, opengl is just plain bad for tons of reasons, even core opengl sucks. opengl sucks no matter what you do. vulkan doesn't.
    ​This, in turn, leads to game devs not building their game using OpenGL/Vulkan because the resulting build is buggier, and slower. This doesn't even touch on the Driver issues that come with maintaining so many extensions. AMD's driver update on Windows a few months ago that resulted in 30% better OpenGL performance shows that it's not easy.

    Also, as a counterpoint to "anybody can implement a proprietary extesion", as far as I know there's nothing stopping Linux drivers from implementing the DX12 API into their drivers other than hatred for Microsoft. A few years ago, there was already an effort with Gallium Nine to implement DX9 and it worked great, but was platform specific so Wine hated it. There are several tools like DXVK that essentially "implement" the API, from an application's perspective. If AMD and Intel pushed to allow for DX12 APIs into their mainline drivers, then Nvidia would quickly follow given that their userspace driver is pretty much a clone of their Windows driver.
    their DX12 implementations presumably have proprietary bits in them, in that case no amount of pushing can solve that, the only reason DX9, and 10 exist in mesa is because of third parties, in the case of DX10, it was vmware devs, G9 was volunteers and not backed by any company,
    ​ But god forbid anybody developing Linux software do something useful for the end user, rather than grandstanding their philosophies.
    and god forbid someone stop and think why someone who is developing software stops and think's about why it is. without a walled garden approach, you don't get what you want, Linux software devel needs to cater to too many peoples needs.

    Leave a comment:


  • Daktyl198
    replied
    Originally posted by piotrj3 View Post

    Extension system actually works well in Vulkan as Vulkan extensions initially are propertiary like extensions that gets promoted to standard for all. Vulkan raytracing initially was Nvidia own extension (thanks to that it appeared fast) and based on it other GPU makers submitted feedback and issues that were resolved before it finally became mainstream extention.

    Also other GPU makers are free to implement Nvidia's vulkan extentions, there is 0 blocking here.

    Also that extension system is half the reason why projects like DXVK can work at all. It is obvious why such extensions that are meant only to be used in translation layers shouldn't be mainstream for everyone, but thanks to that it is extention they can appear pretty fast as optional dependency that GPU makers are mostly willing to adopt.

    Meanwhile less known GPU makers especially mobile/embedded ones probably don't care about many extentions DXVK etc uses.
    The problem isn't that Extensions aren't useful, it's that simply by having them you make it extremely annoying for developers trying to use your API. To the people saying "The engine will support it, so game devs won't care", that's a view that doesn't look at history. Unity and Unreal have a long history of supporting OpenGL alongside DX12 to allow for making cross-platform games, but the engine devs get sick and tired of working with OpenGL, leading to sub-par implementations. This, in turn, leads to game devs not building their game using OpenGL/Vulkan because the resulting build is buggier, and slower. This doesn't even touch on the Driver issues that come with maintaining so many extensions. AMD's driver update on Windows a few months ago that resulted in 30% better OpenGL performance shows that it's not easy.

    Also, as a counterpoint to "anybody can implement a proprietary extesion", as far as I know there's nothing stopping Linux drivers from implementing the DX12 API into their drivers other than hatred for Microsoft. A few years ago, there was already an effort with Gallium Nine to implement DX9 and it worked great, but was platform specific so Wine hated it. There are several tools like DXVK that essentially "implement" the API, from an application's perspective. If AMD and Intel pushed to allow for DX12 APIs into their mainline drivers, then Nvidia would quickly follow given that their userspace driver is pretty much a clone of their Windows driver.

    But god forbid anybody developing Linux software do something useful for the end user, rather than grandstanding their philosophies.

    Leave a comment:


  • smitty3268
    replied
    Originally posted by Daktyl198 View Post
    Vulkan is doomed to die the same death as OpenGL due to the extension system. Most people developing for Windows already refuse to use it, and Apple straight up refused to implement it into their new macOS versions because they knew it would be a repeat of OpenGL. The simple reality is that nobody wants to search through 17 miles of documentation to find the correct extension that does what they want to do. Each new extension makes it more annoying to use, especially with the versioning system and having to understand that not every driver supports the extensions you want to use. How many extensions are just "does the same thing, but slightly better"?
    Most people will just use core vulkan and they're done. No need to think about extensions at all.

    The reason they sucked in OpenGL was that they were all enabled by default, and so when you developed your application you would start using them without realizing it, and then end up screwed when you tried to make it work on another driver. With Vulkan, you just get core by default, and if there's something you really care about then you can go to the extra effort of finding the extension you need and enabling it after making sure it's either compatible where you need it, or that you've added a fallback path.

    Leave a comment:


  • piotrj3
    replied
    Originally posted by Daktyl198 View Post
    Vulkan is doomed to die the same death as OpenGL due to the extension system. Most people developing for Windows already refuse to use it, and Apple straight up refused to implement it into their new macOS versions because they knew it would be a repeat of OpenGL. The simple reality is that nobody wants to search through 17 miles of documentation to find the correct extension that does what they want to do. Each new extension makes it more annoying to use, especially with the versioning system and having to understand that not every driver supports the extensions you want to use. How many extensions are just "does the same thing, but slightly better"?
    Extension system actually works well in Vulkan as Vulkan extensions initially are propertiary like extensions that gets promoted to standard for all. Vulkan raytracing initially was Nvidia own extension (thanks to that it appeared fast) and based on it other GPU makers submitted feedback and issues that were resolved before it finally became mainstream extention.

    Also other GPU makers are free to implement Nvidia's vulkan extentions, there is 0 blocking here.

    Also that extension system is half the reason why projects like DXVK can work at all. It is obvious why such extensions that are meant only to be used in translation layers shouldn't be mainstream for everyone, but thanks to that it is extention they can appear pretty fast as optional dependency that GPU makers are mostly willing to adopt.

    Meanwhile less known GPU makers especially mobile/embedded ones probably don't care about many extentions DXVK etc uses.
    Last edited by piotrj3; 28 March 2023, 08:14 PM.

    Leave a comment:


  • Quackdoc
    replied
    Originally posted by Leopard View Post

    That list is balooned by source ports and Linux only releases ( such as some Feral ports that uses Vulkan )

    Even if there was a competition/war on desktop space about graphics api usage at all , D3D12 won it years ago.
    I dont think saying it's a source port as a reason why it should be disregarded as valuable. in the end the game is what matters, if an engine has vulkan, it has vulkan. not every game dev needs to be a vulkan/d3d12 developer.

    as for linux only games I did say it's a terrible metric. but also by the same token, it's not like this is an exhaustive list of vulkan compatible games either, there are d3d12 game and ofc vulkan games that dont make the list

    Leave a comment:


  • Leopard
    replied
    Originally posted by Quackdoc View Post

    I highly doubt it, this is a *terrible* metric, but a metric none the less, there are 307 D3D12 games listed on PC gaming wiki, vulkan has 186 games. this is already a very good amount. if you were to use this metric, but this is hardly bad adoption. that's roughly 1/4 games that choose a lower level API that choose vulkan. and ofc as more and more engines gain good support for vulkan, such as godot. this number could very well increase.

    as for apple, no one cares what they do, they do their own thing in their bubble.
    That list is balooned by source ports and Linux only releases ( such as some Feral ports that uses Vulkan )

    Even if there was a competition/war on desktop space about graphics api usage at all , D3D12 won it years ago.

    Leave a comment:


  • SerialCool
    replied
    Tencent, by far the largest video game company in the world from China, wants/needs to promote Vulkan more because of the Chinese Communist Party and ban DirectX along with Windows from China by 2025. Thus, Vulkan has a safer future than DirectX because of countries like China, Russia and Co. Also, Vulkan finds a much larger worldwide distribution than DirectX because of Linux together with Android.
    Vulkan is not dependent on one company or one country, whereas DirectX is.

    (I am explicitly only talking about the future, distribution and adaptability of Vulkan, not about human rights and so on).

    Leave a comment:


  • mbriar
    replied
    Originally posted by Quackdoc View Post

    I highly doubt it, this is a *terrible* metric, but a metric none the less, there are 307 D3D12 games listed on PC gaming wiki, vulkan has 186 games. this is already a very good amount. if you were to use this metric, but this is hardly bad adoption. that's roughly 1/4 games that choose a lower level API that choose vulkan. and ofc as more and more engines gain good support for vulkan, such as godot. this number could very well increase.

    as for apple, no one cares what they do, they do their own thing in their bubble.
    If you remove every game that is either a source port of an ancient game (Quake 2 is 3 times on the vulkan list) or which has vulkan only for the terrible linux port (all games using UE4 or Unity) the situation looks much worse. Every new game that comes out uses d3d12, and the last big game to release with vulkan was Doom Eternal in 2020 - d3d12 is extremely dominant, but I don't think it has anything to do with vulkan's extension system.

    Leave a comment:

Working...
X