Originally posted by piotrj3
View Post
Announcement
Collapse
No announcement yet.
Vulkan 1.3.245 Brings New NVIDIA Vendor Extension To Help Optimize Ray-Tracing
Collapse
X
-
-
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.
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:
-
Originally posted by Daktyl198 View PostThe 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:
-
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.
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:
-
Originally posted by Daktyl198 View PostVulkan 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"?
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.
- Likes 1
Leave a comment:
-
Originally posted by Daktyl198 View PostVulkan 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"?
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.
- Likes 2
Leave a comment:
-
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.
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:
-
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.
Even if there was a competition/war on desktop space about graphics api usage at all , D3D12 won it years ago.
- Likes 1
Leave a comment:
-
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:
-
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.
- Likes 1
Leave a comment:
Leave a comment: