Finally, a DirectX 10 video driver for Irrlicht

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Fri Jan 29, 2016 11:50 am

Good news!

Is there much structural changes to support DX11 or even 12? Its always such a pain when MS change things by breaking compatibility.
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Mel » Mon Apr 04, 2016 1:52 am

For DX11, i don't think so. But DX12/Vulkan are radically diferent and you better think of new methods for the video driver. Calls like "setRendertarget", "set/getTransform" or even "setMaterial" rely on a model that is no longer valid under those API. I mean, it is still perfectly feasible to create DX12/VK drivers for Irrlicht as it is right now, and might provide better performance than the current APIs on some scenarios, but with the current set up you're very likely losing their greatest potential. The problem with DX12/VK is that they don't rely on global states in the video driver anymore, but on pipelines.

Think of a pipeline as a snapshot of the current driver state, including shaders, blending states, texture sampling states and so on. and that anything that uses a pipeline will get rendered using that style. It is like a material, but with extended capabilities, that you can't change during the rendering, save, obviously, the used texture maps, and that can be reutilized once and again without change. So, basicly, you use each pipeline for each type of render you want, this is a bit less flexible than a dynamic state model, but the gain is important, compared, there is no need for state caches anymore, because the state changes are not possible during the render and you still can define and use an array of pipelines. Actually, even if many renderstate changes may happen during the running of a program, these use to be on very few options, so the potential combinatory explosion that using an array of pipelines may cause is greatly reduced because of this and thus, makes sense to use them. And anyway, in Vulkan, at least, it is possible to define derivative pipelines, so you might have a master pipeline and derive others from it. I still have to check how goes that, but on the paper, it is possible.

As the pipelines are static objects, they can be referenced on multiple threads, and there is no need to worry about modifying them accidentally, or perhaps, you can, but you have to understand that changing a pipeline will change any rendering that takes place using it. The multiple threads are meant to build the draw calls and record them, and the actual rendering is deferred until the moment all the draw calls have been recorded, and takes place after, and only after, you tell the API to start. You can establish rendering dependences, at least on Vulkan, to make sure some renders take place before others, and that's it. Anything that sets a global parameter (a model/view/projection transform, a rendering material on the driver or a rendertarget...) that can't be shared among all the API calls you send is a rendering dependance that may prevent other tasks to run in parallel. So any new structure for those new APIs, should keep in mind the problem of the parallelism to make sure you use them the most efficiently way possible.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 2175
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Mon Apr 04, 2016 9:45 am

I thought that DX10 and DX11 were similar, just with 11 have extra features. Is the jump to 12 really that radical?

Each material must still have its own properties of course, but general render states for each pipe is nothing too complex.

Parallel processing would be good, but requires that the GPU readily supports mutliple rendering requests, which must get quiote complicated to say the least.

Is there any news from Grantye on his DX10 driver?
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Mel » Mon Apr 04, 2016 10:49 am

It is what i am finding in Vulkan, and from what i read about DX12, seems their approach is similar. It isn't that complex to support diferent rendering request, think of a MRT setup, actually you're telling the GPU to render 4 rendertargets at a time, who says that setup isn't done in the API runtime? Although, for instance, NVidia supports Vulkan only from their 600 series and above, so i don't know to what extent those capabilities are tied to the hardware.

I don't say it is complex, what i mean is that, for instance, setting a model/world transform only serves for a single object, and currently, that is done as a general state. To support multiple rendering processes, a global state isn't useful. To provide simultaneous renderings, Vulkan devices expose a number of queues where you can send the drawing commands. You can send any amount of commands to any queue, and they're processed at the same time when the render begins
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 2175
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Mon Apr 04, 2016 11:08 am

Well, they will be processed at the same time if a rendering core is available, otherwise the calls will be held in wait.

Of course the problem isn´t rendering textures to different objects, its rendering complex models to the frame buffer in parallel!

To make that truly parallel possible, we'd need a sort of sprite-based frame buffer, where depth issues would be automatically resolved not at render time, but at draw time.
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Mel » Mon Apr 04, 2016 2:26 pm

There are many issues to be solved before a render even begins, but i guess the API design has been made to take full advantage of the parallelism the GPU can give you, so it doesn't matter the complexity of the model, or it is something secondary. One complex model may run on a queue while the other queues can be used for less complex stuff. Queues might at most, wait for results from other queues, BUT something positive is that this something that falls on the hands of the application programmer now, not in the hands of the API, if you want, you may reserve always a queue for light operations. At least, in Vulkan, i don't know how would DX12 behave, but i think it is something similar.

This NVidia article talks about the dos and donts of DX12, it may help to get more insight of how it works
https://developer.nvidia.com/dx12-dos-and-donts
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 2175
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Mon Apr 04, 2016 2:36 pm

thanks, I´ll take a look at that!
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Mel » Mon Apr 04, 2016 2:47 pm

I find kind of sad though that currently a DX10/DX11 driver for Irrlicht is openly outdated :( Even if it finally works, it is already superseeded by more advanced tech.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 2175
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Mon Apr 04, 2016 4:09 pm

Looking at those nVidia notes on DX12 and Vulcan, I wouldn't be surprised if they never go mainstream.

There is more load on the CPU than before, requiring multicore processor support, more complexity, less error protections... and all this adds up to more development costs, and more expensive hardware, which is only good news for Intel and Microsoft; as usual comercial interests are over user interests.

I think we will be better off with a good DX10/11 driver, which will do us for years to come, and forget about these new drivers at least for a few years.
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Granyte » Mon Apr 04, 2016 4:25 pm

robmar wrote:Is there any news from Grantye on his DX10 driver?


I'm still working on it almost everything work the last issue i have with it is the text scenenode is aparently zwriting or something


Mel wrote:I find kind of sad though that currently a DX10/DX11 driver for Irrlicht is openly outdated :( Even if it finally works, it is already superseeded by more advanced tech.


It somewhat is but considering the dx11 driver is now a 5 years old project and not yet integrated into the trunk how long do you think it will take for DX12/Vulkan to make it there
Granyte
 
Posts: 845
Joined: Tue Jan 25, 2011 11:07 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby robmar » Mon Apr 04, 2016 4:33 pm

DX11 will be supported and in use by many games for years to come, and the benefits of DX12 are very uncertain, and probably not worth the effort.

In a few years time we´ll have new super GPUs, or APUs, and maybe DX20 will be out and we can look at that! :)
robmar
 
Posts: 981
Joined: Sun Aug 14, 2011 11:30 pm

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Nadro » Mon Apr 04, 2016 4:35 pm

Granyte wrote:It somewhat is but considering the dx11 driver is now a 5 years old project and not yet integrated into the trunk how long do you think it will take for DX12/Vulkan to make it there

I know that it may be frustrating, but It's related to a long period of v1.9 release (merge with ogl-es branch). I should release new FVF branch soon and of course I'll move D3D11 from shader-pipeline to the new branch. If this combo will work fine IMO we should quickly merge them to trunk (branches with a very long lifecycle like ogl-es or even shader-pipeline are problematic).
Nadro
 
Posts: 1643
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby Mel » Tue Apr 05, 2016 1:53 am

Good luck with all that, and i will stop hijacking this thread XD
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 2175
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby devsh » Tue Apr 05, 2016 10:14 am

Maybe someone wants to branch my irrlicht GL 3.3+ version and add the support there?
We chose to stream mesh data from Multiple OpenGL Contexts in many threads and do the other things, not because they are easy, but because they are hard! - JFK
User avatar
devsh
Competition winner
 
Posts: 1731
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK

Re: Finally, a DirectX 10 video driver for Irrlicht

Postby airc » Thu Apr 07, 2016 11:02 am

Pro Evolution Soccer 2016 still using the legacy directx9 , which is 15 years old .
airc
 
Posts: 25
Joined: Wed Jan 08, 2014 8:17 am

PreviousNext

Return to Project Announcements

Who is online

Users browsing this forum: No registered users and 1 guest