Planning on removing the D3D10 and D3D9 Renderers in 1.0

Official announcements from the CEGUI project.

Moderator: CEGUI Team

User avatar
Ident
CEGUI Team
Posts: 1836
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Planning on removing the D3D10 and D3D9 Renderers

Postby Ident » Sun Apr 20, 2014 18:46

superpws wrote:By 9_1 and 9_3 did you mean Direct3D9a and Direct3D9c respectively?

I use their terminology. I have no idea but i assume it could be like you said. You could probably look it up if you wanted.
superpws wrote:I think it's not a big deal to remove it (which you already did anyway) as it seems people didn't take interest in it (both in this forum and in Ogre forums). They can still use 0.8.x branch if they desperately need Direct3D9.

You are right. And it is removed now anyways. Two renderers less that we need to maintain!
CrazyEddie: "I don't like GUIs"

User avatar
Mikademus
CEGUI MVP
CEGUI MVP
Posts: 130
Joined: Wed Mar 18, 2009 19:14

Re: Planning on removing the D3D10 and D3D9 Renderers

Postby Mikademus » Sun Nov 30, 2014 13:59

Ident wrote:What I can do is to add an enumerator specifying D3D feature set to be used to the constructor/bootstrap of the D3D11 renderer. This would allow to support D3D9 hardware using the featureset. [...] Whenever there are features that require different handling then if/else section can be used. Seems better to me than having entirely different Renderers.


Does this mean that D3D9 platforms can use the CEGUI D3D11 renderer if the project is compiled with D3D9-compatible feature set, and that it is reasonably simple (like a #define or similar) to set the compatibility mode? If so, there is no reason whatsoever to retain a special D3D9 renderer.

User avatar
Ident
CEGUI Team
Posts: 1836
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Planning on removing the D3D10 and D3D9 Renderers

Postby Ident » Sun Nov 30, 2014 20:22

Mikademus wrote:Does this mean that D3D9 platforms can use the CEGUI D3D11 renderer if the project is compiled with D3D9-compatible feature set, and that it is reasonably simple (like a #define or similar) to set the compatibility mode? If so, there is no reason whatsoever to retain a special D3D9 renderer.

Yes. D3D9 hardware will work using D3D11 Renderer using one of the D3D9 feature sets if specified on construction. Official info here: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Feature levels: http://msdn.microsoft.com/en-us/library ... x#Overview

I read some complaints of people on forums saying that this feature set is not 100% equivalent to the old D3D9 and there are some issues with trying old D3D9 stuff with that setup. But too be honest this argument does not really hold for me. D3D11 and D3D10 are almost equivalent and there is no reason to work on a new project in D3D9. XP is unsupported by Microsoft and I doubt people will still be using it much when CEGUI 1.0 is released, which will be in about 1 year. For Vista and later platforms, D3D11 works fine and also with any old D3D9 hardware. If someone really needs direct D3D9 support, they could probably modify the old renderer to work with 1.0 code but I honestly do not see a reason for us to support Direct3D 9.X directly anymore.
More info: http://www.gamedev.net/topic/648644-dir ... -hardware/

Imo it is fine to drop D3D9 in default branch.
If someone /really/ needs this legacy support they can either update the D3D9 renderer to the latest version themselves or ask us for paid support because it really doesn't make sense to update AND MAINTAIN this legacy renderer after all the huge changes the default branch has gone through. Especially because D3D11 allows us to share a lot of code with the OpenGL Renderers, which wasn't possible before (with D3D9 Renderers).
CrazyEddie: "I don't like GUIs"

Montred
Not too shy to talk
Not too shy to talk
Posts: 42
Joined: Sat Nov 10, 2012 06:45

Re: Planning on removing the D3D10 and D3D9 Renderers

Postby Montred » Thu Dec 18, 2014 12:35

This makes a lot of sense, nobody is really targetting a D3D9 api anymore, nowadays you just target old D3D9 hardware through the D3D11 API, as you explained, so I welcome the removal of the D3D10 and D3D9 renderers.

Speaking of the Direct3D renderer, in my project I had to roll my own renderer because CEGUI's renderer still relies on D3DCompiler. In my project I don't want that dependency.

I already asked CE about this once a long time ago, but since you seem to be the person in charge of DirectX integration I'll check with you. Would you welcome a patch that optinally removes the dependency on D3DCompiler so that the user can use their own precompiled shader?

Ideally no assumption would be made about the origin of the shader (no reading from the filesystem). The Renderer simply would not activate any shader at all, and the library user would be responsible of activating their own pixel and vertex shaders before invoking cegui renderer.

This would be controlled by a define that the developer can enable with CMAKE.

User avatar
Ident
CEGUI Team
Posts: 1836
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Planning on removing the D3D10 and D3D9 Renderers

Postby Ident » Thu Dec 18, 2014 12:56

We would have to look at the specifics of your patch, but generally: yes, we very much welcome such changes.
The new Renderer for Direct3D11 still requires D3DCompile. I have removed a lot of other dependencies though, basically the entire effects library and associated libraries. I really cut it down to the most basic libraries possible. If you manage to make this even less, sure, why not.

The shader code can be found in the Direct3D11 Renderer's files. Making the adjustments you want to the Renderer should be relatively easy, I mean: you seem to know what you are doing. Adding an option for this in CMake is a good idea.

Do you want to make this changes to default branch?
CrazyEddie: "I don't like GUIs"

raptorfactor
Just popping in
Just popping in
Posts: 4
Joined: Wed Nov 18, 2015 13:13

Re: Planning on removing the D3D10 and D3D9 Renderers in 1.0

Postby raptorfactor » Wed Nov 18, 2015 17:38

Sorry to bump such an old thread, but I feel compelled to point out that this breaks use cases where CEGUI is being injected into a 3rd party application for the purposes of rendering an overlay (e.g. things like Steam, Overwolf, etc.). In those cases, the rendering API being targeted is at the discretion of the application, and there are plenty which are massively popular to this day and still using DX9. I took at look at the 1.0 branch and it appears that the DX9/DX10 renderers are indeed long gone... Given that's the case, and I assume there are no plans to bring back the old renderers, how long is 0.8.x support expected to continue for?

User avatar
Ident
CEGUI Team
Posts: 1836
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Planning on removing the D3D10 and D3D9 Renderers in 1.0

Postby Ident » Wed Nov 18, 2015 19:19

raptorfactor wrote:Sorry to bump such an old thread, but I feel compelled to point out that this breaks use cases where CEGUI is being injected into a 3rd party application for the purposes of rendering an overlay (e.g. things like Steam, Overwolf, etc.). In those cases, the rendering API being targeted is at the discretion of the application, and there are plenty which are massively popular to this day and still using DX9. I took at look at the 1.0 branch and it appears that the DX9/DX10 renderers are indeed long gone... Given that's the case, and I assume there are no plans to bring back the old renderers, how long is 0.8.x support expected to continue for?


0.8.X will be supported for quite a while. In any case, it would not be too difficult to take the Direct3D 9 Renderer from 0.8.X and update it for 1.0 usage. For an advanced programmer this should be a task for a day or two, given that there is already a Direct3D 11 implementation to compare with.

Additionally I want to point out that adding a Direct3D9 Renderer to 1.0.X would not be a bad idea and would be welcomed. So if there is a contribution in form of a pull request, containing the changes, made then we will merge it. If there is enough demand or a contribution in the form of a donation to a developer made to equate the necessary efforts, then this will also be done.

For new projects it makes little sense to use Direct3D9 since Direct3D11 is backwards compatible to the hardware and available everywhere except Windows XP which itself is unsupported by now. That is why we dropped Direct3D9 on default branch.
CrazyEddie: "I don't like GUIs"

timotei
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Mon Apr 29, 2013 14:17

Re: Planning on removing the D3D10 and D3D9 Renderers in 1.0

Postby timotei » Wed Nov 18, 2015 19:57

Hmm, why is a D3D9 render *added back to 1.0.x (default)* a welcome addition if we removed it in the first place?

User avatar
Ident
CEGUI Team
Posts: 1836
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Planning on removing the D3D10 and D3D9 Renderers in 1.0

Postby Ident » Wed Nov 18, 2015 20:18

timotei wrote:Hmm, why is a D3D9 render *added back to 1.0.x (default)* a welcome addition if we removed it in the first place?

We removed it because it is not worth creating and maintaining. I changed the interface a lot.
CrazyEddie: "I don't like GUIs"

raptorfactor
Just popping in
Just popping in
Posts: 4
Joined: Wed Nov 18, 2015 13:13

Re: Planning on removing the D3D10 and D3D9 Renderers in 1.0

Postby raptorfactor » Wed Nov 18, 2015 23:46

Ident wrote:
raptorfactor wrote:Sorry to bump such an old thread, but I feel compelled to point out that this breaks use cases where CEGUI is being injected into a 3rd party application for the purposes of rendering an overlay (e.g. things like Steam, Overwolf, etc.). In those cases, the rendering API being targeted is at the discretion of the application, and there are plenty which are massively popular to this day and still using DX9. I took at look at the 1.0 branch and it appears that the DX9/DX10 renderers are indeed long gone... Given that's the case, and I assume there are no plans to bring back the old renderers, how long is 0.8.x support expected to continue for?


0.8.X will be supported for quite a while. In any case, it would not be too difficult to take the Direct3D 9 Renderer from 0.8.X and update it for 1.0 usage. For an advanced programmer this should be a task for a day or two, given that there is already a Direct3D 11 implementation to compare with.

Additionally I want to point out that adding a Direct3D9 Renderer to 1.0.X would not be a bad idea and would be welcomed. So if there is a contribution in form of a pull request, containing the changes, made then we will merge it. If there is enough demand or a contribution in the form of a donation to a developer made to equate the necessary efforts, then this will also be done.

For new projects it makes little sense to use Direct3D9 since Direct3D11 is backwards compatible to the hardware and available everywhere except Windows XP which itself is unsupported by now. That is why we dropped Direct3D9 on default branch.


Understood. I'm going to stick with 0.8.x until I reach a reasonable level of maturity with my project, at which point I'll probably look into porting the renderer. Thanks for taking the time to respond.


Return to “Official Announcements, Works in Progress, and Future Directions”

Who is online

Users browsing this forum: No registered users and 1 guest