Vulkan

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Post Reply
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Vulkan

Post by Thyrion »

I've just read the article at the godot site ...
Waiting for Vulkan

As many of you know, Vulkan will be the next open and multi platform rendering 2D and 3D API. While many claim it will just be an additional API, those of us who have been in the industry for long enough know well that Vulkan will make other APIs obsolete.

CAD and 3D DCC applications will most likely continue to using OpenGL, but for anything related to games OpenGL will be no more.

Vulkan will work on all PC platforms: Windows, OSX and Linux. It will also work on any modern mobile devices, iOS and Android. Vulkan will run in so many platforms that even the idea of using DirectX in the future is starting to look unfamiliar for large studios. It also fixes most of the gripes everyone has with modern OpenGL: Better drivers (due to much less intrinsic complexity) and much larger industry backing. Industry backing for Vulkan is, in fact, so big that everyone but Microsoft is on board.

As this will be undoubtedly the new, de facto, 3D API for games, all work on improving the current 3D renderer has been halted until drivers and API reference are published (which will be this year at some point).

Godot developers love 3D programming, and can’t wait to begin working on a new, awesome backend, with support for physically based rendering, modern global illumination, etc. But this will have to be sometime later this year or beginning of next, otherwise all the work will go to the trashbin once Vulkan comes out.
what does that mean for ogre? the new gl3 system into the bucket? One renderer for all systems? Even for mobile? Any plans? :)
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Vulkan

Post by al2950 »

As far as I am aware there will be another render system, actually probably 2 as there will be one for DirectX12. The ogre team, especially dark_sylinc, are well versed on the new rendering APIs and the new changes in 2.1 are all done with them in mind.
white_waluigi
Goblin
Posts: 253
Joined: Sat Sep 28, 2013 3:46 pm
x 10

Re: Vulkan

Post by white_waluigi »

Glad to hear that. Nice to hear Ogre3d keeps up with technology
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Vulkan

Post by dark_sylinc »

Regarding the subject:

Pretty much what the Godot guys say, with a couple remarks:
  • Significant work is being done in the 2.1-uav branch to support asynchronous shaders and resource transitions in an efficient manner that are required by both D3D12 & Vulkan.
  • I'm not so confident about Vulkan on the Apple ecosystems, because they've been very clearly showing in the open they want to force everyone into using Metal for their own closed system; just the same business moves they do on everything else. I hope I'm wrong.
  • We won't move to Vulkan/D3D12 right away just for the sake of moving or putting a 12 stamp instead of 11 (because you know, 12 is bigger than 11!). The main benefits from using these new APIs is lower API overhead, and since Ogre 2.1 used an AZDO approach, we're now severely GPU bound. We also don't have infinite man power.
  • Nonetheless, the main reasons to support Vulkan/D3D12 is because they're the best way to get mobile support (Android, Win Phone), GLES just sucks for AZDO or any sort of low level overhead rendering; and there are a few GPU performance enhancements that can be taken advantage once you code for them, like asynchronous shaders and cross-GPU talk e.g. do the rendering on dedicated GPU, postprocessing on the integrated GPU (note I made a comment and I was wrong, the other guy was right: there is an extra frame of latency introduced by this technique); render 3 shadow maps in the dedicated GPU, while the integrated GPU renders 1 shadow map; render 4 faces of an env. map on the dGPU while the iGPU renders 2 faces, etc.
  • Update: I disagree that they should halt work until on their renderer until the new APIs are revealed (unless of course they have other things in their TODO list). Vulkan is similar Mantle with a few twists, and the manual is already there in the open and the API reverse engineered. Also D3D12's docs have already been published. OpenGL with persistent mapping + MultiDrawIndirect rendering and a command buffer rendering model mimics a lot how these new APIs will work (because you write the commands directly to GPU memory and you have to synchronize explicitly). While you may not be able to fully test your changes until the API is made public, you can do a lot of architecture changes in your codebase to be ready when it's out, just like we're doing with the 2.1-uav branch. I keep repeating this a lot but a lot of people keep ignoring it: These new APIs are very different. They drastically modify how the GPU is being treated, most existing engine architectures need important changes to actually take advantage of them (without doing the work D3D11 & GL were doing under the hood for us) and they place a lot of responsibility on us, the devs. You can crash the GPU very easily! I see a lot of people underestimating the amount of work required (except for the console guys). If you aren't careful, you will find yourself hitting the reset button a lot.
Ogre 2.1 has been built around explicit buffer management so it's a good fit for D3D12 & Vulkan. The only missing bits are the resource transitions (which are being worked on in the 2.1-uav branch), but probably the most challenging aspect will be getting the old interfaces to work that we still use(Textures, RenderTarget *ahem*) whose Ogre design is aging and doesn't really map well to the new APIs (on our advantage, probably nobody's engine does, unless you're a console dev) and also the legacy interfaces (v1::Entity, v1::HardwareBuffer, etc)

We have a news post coming about the uav branch so stay tuned on the main page.
iblues1976
Gnome
Posts: 379
Joined: Fri Sep 16, 2011 4:54 pm
x 10

Re: Vulkan

Post by iblues1976 »

I sow Vulkan in action at SigGraph in two separate occasions. It looks very impressing.
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Vulkan

Post by Thyrion »

xrgo
OGRE Expert User
OGRE Expert User
Posts: 1148
Joined: Sat Jul 06, 2013 10:59 pm
Location: Chile
x 168

Re: Vulkan

Post by xrgo »

OMG! amazing! I hope we get vulkan in Ogre soon =D!
Image
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Vulkan

Post by Thyrion »

^ is that you in real? :mrgreen:
xrgo
OGRE Expert User
OGRE Expert User
Posts: 1148
Joined: Sat Jul 06, 2013 10:59 pm
Location: Chile
x 168

Re: Vulkan

Post by xrgo »

Thyrion wrote:^ is that you in real? :mrgreen:
hell no xD thats jonah hill, I am super skinny more like this:
Image

I hope dark_sylinc is also excited for this news.. since he's da man! :D
Oogst
OGRE Expert User
OGRE Expert User
Posts: 1067
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
x 43
Contact:

Re: Vulkan

Post by Oogst »

Really curious to see how good driver and platform support for Vulkan will truly be. Support for OpenGL is currently so bad that doing a PC game OpenGL-only is begging for support problems: we ended up adding a DirectX renderer to the Awesomenauts engine just because of all the crappy OpenGL drivers that people have. :( If Microsoft still isn't on board with Vulkan then it might become similarly problematic.

Anyway, excited to try out this new API!
dark_sylinc wrote:... doesn't really map well to the new APIs (on our advantage, probably nobody's engine does, unless you're a console dev) ...
I'm a console dev but our in-house console engine definitely doesn't map well to the new APIs. Maybe that's because the main inspiration for our core architecture was Ogre... ;)
My dev blog
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/X1/PS3/PS4)
Blightbound: coop online dungeon crawler (PC)
Swords & Soldiers: side-scrolling RTS (Switch/PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance
The Ageless Gate: cello album
xrgo
OGRE Expert User
OGRE Expert User
Posts: 1148
Joined: Sat Jul 06, 2013 10:59 pm
Location: Chile
x 168

Re: Vulkan

Post by xrgo »

Oogst wrote:If Microsoft still isn't on board with Vulkan then it might become similarly problematic.
I have faith in valve/steamOS, if they made the right moves we will soon get more linux gaming, and probably using vulkan. Sadly I was hopping steam machines where cheaper, they are very expensive, at least in Chile. So that's not a right move
Oogst
OGRE Expert User
OGRE Expert User
Posts: 1067
Joined: Mon Mar 29, 2004 8:49 pm
Location: the Netherlands
x 43
Contact:

Re: Vulkan

Post by Oogst »

xrgo wrote:I have faith in valve/steamOS, if they made the right moves we will soon get more linux gaming ...
Less than 1% of all Steam users play on Linux (source). SteamOS is still relatively new so this might change, but so far it isn't making much of a dent yet.
My dev blog
Awesomenauts: platforming MOBA (PC/Mac/Linux/XBox360/X1/PS3/PS4)
Blightbound: coop online dungeon crawler (PC)
Swords & Soldiers: side-scrolling RTS (Switch/PS3/Wii/PC/Mac/Linux/iPhone/iPad/Android)
Proun: abstract racing game (PC)
Cello Fortress: mixing game and live cello performance
The Ageless Gate: cello album
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Vulkan

Post by dark_sylinc »

xrgo wrote:OMG! amazing! I hope we get vulkan in Ogre soon =D!
If you pay close attention the UAV branch with its resource transition has the notion of separate read & write access bits to be prepared for Vulkan.

However we have two issues before going for DX12 & Vulkan:
  • Textures need a refactor because their weird separation & relationship with "RenderTargets" and "HardwarePixelBuffer" is orthogonal to how Vulkan & DX12 treat them (they just interpret them as reinterpret_cast'ed regions of memory via resource transition barriers)
  • Our main bottleneck right now is the GPU. Vulkan mostly reduces CPU overhead (though GPU side improvements include async shader and cross vendor communication for multi-GPU)
Despite that, we're very interested in Vulkan because of its 100x superiority against GLES 3. But on desktop there won't be much to gain.

However I don't think we'll support it soon unless we get a massive boost in resources (in other words, time and money).
Sadly I was hopping steam machines where cheaper, they are very expensive, at least in Chile
Steam machines are nothing more than regular PCs. If Valve at least had been selling exactly the same hardware or at least tier configurations, it would've made sense. But honestly they're just selling arbitrary custom-build PCs with SteamOS preinstalled.

Vulkan does play a big role in Linux gaming though. And btw X11 needs to die in a fire. It's causing a huge load of problems that Wayland doesn't have (bad VSync, skipped frames, high latency, framerate stutter, framerate slowdown, inaccurate GPU profiling).
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Vulkan

Post by c6burns »

lol steam machines. It went from "omg valve is making their own console that's linux based" and then years later ended up being "3rd party hardware vendors sell you a regular PC without windows on it". What a revolution in gaming :lol:
NotCamelCase
Greenskin
Posts: 140
Joined: Sun Feb 03, 2013 6:32 pm
x 8

Re: Vulkan

Post by NotCamelCase »

I think that Vulkan's future success can come to exist if either Apple supports it own their platforms or current consoles support it (one of them is owned by MS that owns D3D though). I'm not so cynical about Apple right now but otherwise politically Vulkan will just be a renovated OpenGL.
Check out my projects: https://github.com/NotCamelCase
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Vulkan

Post by dark_sylinc »

As with all technology, what really will define the success of Vulkan is the entire ecosystem. Valve is pouring a lot of money into it which helps a lot.

Right now:
  • The debug layer is open sourced.
  • RenderDoc supports Vulkan (a HUGE plus)
  • Its performance against GLES in mobile is orders of magnitude apart
The more tools begin to appear with Vulkan, the bigger the chances of success. Proficiently debugging a 3D API is far more important than widespread adoption. It's what made DX9, 10 & 11 so great when compared with OpenGL during the last decade. Of course support on OSX & iOS would help a lot, but it's not the only factor.

Unfortunately right now to target all platforms, you still need to write for D3D11/12, OpenGL, GLES, Metal, & Vulkan. It's a headache.
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Vulkan

Post by Thyrion »

So Vulkan isn't supported on OSX, will there be a Metal Renderer for Ogre? Is one in the making?
xrgo
OGRE Expert User
OGRE Expert User
Posts: 1148
Joined: Sat Jul 06, 2013 10:59 pm
Location: Chile
x 168

Re: Vulkan

Post by xrgo »

dark_sylinc wrote: But on desktop there won't be much to gain.
dark_sylinc wrote:However I don't think we'll support it soon unless we get a massive boost in resources (in other words, time and money).
T____T
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Vulkan

Post by Thyrion »

Vulkan on mac/ios comming soon!
https://moltengl.com/

seem's to be just a wrapper around metal -_-
OliverK1
Gnoblar
Posts: 2
Joined: Wed May 18, 2016 8:21 pm
Location: Germany

Re: Vulkan

Post by OliverK1 »

[quote="dark_sylinc"]

Well, OpenGL and GLES is not really needed, in some way, cause if my thoughts are right u can target Vulkan to those APIs, ifim not wrong!?

So it will be just Two API's in summary DX 11/12 & Vulkan, right?!
OliverK1
Gnoblar
Posts: 2
Joined: Wed May 18, 2016 8:21 pm
Location: Germany

Re: Vulkan

Post by OliverK1 »

What about a new branch for a Ogre Version 3.x version?

Let's say it is:

+ completely based on Vulkan, MetalAPI & DirectX 12
+

so we have two of them a old Version and a new Version! Maybe completely overhault!
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Vulkan

Post by dark_sylinc »

OliverK1 wrote:Well, OpenGL and GLES is not really needed, in some way, cause if my thoughts are right u can target Vulkan to those APIs, ifim not wrong!?
No. Many GLES3 devices can't do Vulkan. And a lot of GLES3 devices that could do Vulkan will never really support Vulkan because there will be no official OS/driver update due to how most Android business models work (ie. Samsung sells a new device, supports it for 6 months, drops it; then focus on a new model which is mostly a rebranded version of the previous one).

We can still use OpenGL to target DX10 hardware (i.e. GeForce 8000-280). Vulkan is not supported there.
OliverK1 wrote:So it will be just Two API's in summary DX 11/12 & Vulkan, right?!
No. That's 3 APIs. DX11 is nothing like 12.
OliverK1 wrote:What about a new branch for a Ogre Version 3.x version?
+ completely based on Vulkan, MetalAPI & DirectX 12
2.1 isn't finished yet and you're thinking on 3.x? :lol:
Anyway, 2.1 was thought to be ready for those APIs; but we're not focusing on those APIs because it is a lot of work and there is very little to gain.
Focusing on stability and support on our existing codepaths (DX11 & GL) takes priority; then Metal & GLES3; then GLES2; then Vulkan & DX12.
Post Reply