DX9 to be removed from 2.0 Final proposal

Design / architecture / roadmap discussions related to future of Ogre3D (version 2.0 and above)
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 3736
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 129
Contact:

DX9 to be removed from 2.0 Final proposal

Post by dark_sylinc » Sat Jun 14, 2014 4:34 pm

Some of you may have read my blog post about it a couple months ago.

Before we begin, this discussion is about dropping DX9 from 2.0 Final, not from CTP. DX9 won't be dropped from CPT.

I'm strongly in favour of dropping DX9. Let's see the DX9 renderer:
Pros:
  • Most stable, mature and robust among the RenderSystems. Supports "hard" features like multi-monitor with ease.
  • Best support for Windows XP (still has large market share, specially in China, where we also have a large often-silent Ogre3D user base)
  • As of 1.x and 2.x CTP, the fastest RS.
Cons:
  • Doesn't support new features: Constant Buffers (BIG downside!), Texture Arrays (BIG!), Texture Buffers (needs to be workarounded with VTF), Instancing with instanceCount embedded to the shader, MultiDraw Indirect; compute, geometry and tesselation shaders.
  • Slower compared to DX11 and GL3+ (after the refactoring is complete). A lot of API overhead.
  • Too different compared to the other render systems
In the light of this it would look foolish to drop it. But:
1. WIth HLMS development, I'm fixing many bugs in GL3+. The same will happen to DX11. Not to mention their performance will outmatch DX9. These render systems should be far more stable and usable when 2.0 Final is ready.
With Hlms, there is no more need to worry that you forgot to set some shader or a material to trivial objects (like a debug overlay) or even important objects, which is one of the reasons DX9 looks more stable than the others.

2. OpenGL makes up for Windows XP support. UE4 chose this path. The catch is that users require more up to date drivers than their D3D9 counter parts. Some Ogre3D users may be affected by this (I.e. medical solutions' customers don't tend to care about drivers and stuff) but those specific cases could be (for example) addressed by including modern drivers of the big 3 (Nvidia, Amd & Intel) with the installation package (I ignore the legality of such approach) or recommending Windows Vista/7 (so they can use D3D11 which is guaranteed they will get). It's not really a showstopper.

3. DX9 requires double of man resources. We just don't have enough time to support so many RenderSystems (D3D11+, D3D12 probably, GL3+, GLES 2). You can do most of what you can do in 11, 12 & GL3 in DX9. However much slower, and some stuff needs workarounds. Most of what can be done in GL3+, can be easily ported to D3D11. On DX9, we have to rewrite the whole thing just for it. I fear the community will demand us to keep the feature level of DX9 similar to the others, where this is possible but unreasonable.
ES2 is in a similar position, but we have here the advantage that ES2 is more limited than DX9, and nobody actually expects the feature level of ES2 to barely compare with desktop DX11 or GL3+.

4.The GLSL parser we have allows us, for ES2, to let ES2 behave like if it had uniform buffers support, which makes porting easier. DX9 doesn't have such thing. This could be implemented, but I don't think it's worth our time.

So, any opinions about this?
0 x

User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 1
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by Wolfmanfx » Sat Jun 14, 2014 9:18 pm

Also we should not forget to mention that RTSS is nor working atm. Not in the CTP nor in the final version. The reason is that the userdata feature is removed from OgreCore which were introduced by Nir with RTSS.

I also vote to drop DX9 for 2.X and we should not forget that we have Ogre 1.10 soon released which will have long time support. So 2.x will target the next gen userbase.
0 x

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 3736
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 129
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by dark_sylinc » Sat Jun 14, 2014 10:50 pm

Wolfmanfx wrote:Also we should not forget to mention that RTSS is nor working atm. Not in the CTP nor in the final version. The reason is that the userdata feature is removed from OgreCore which were introduced by Nir with RTSS.
I believe CTP does have RTSS working as I remember using it. But I do not know how well it's working. In final, it's going to be difficult to support it. I would have to check CTP again to see if the RTSS still works.
0 x

TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin

Re: DX9 to be removed from 2.0 Final proposal

Post by TheSHEEEP » Sun Jun 15, 2014 1:29 pm

+1 to this from me.
The fewer systems to maintain, the better.
0 x
My site! - Have a look :)
Also on Twitter - extra fluffy

User avatar
Klaim
Old One
Posts: 2565
Joined: Sun Sep 11, 2005 1:04 am
Location: Paris, France
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by Klaim » Sun Jun 15, 2014 1:52 pm

As a user I have no objection. 1.x versions of Ogre support DirectX9 and are good enough for any user who wants DX9 to be available anyway.
0 x

User avatar
AshMcConnell
Silver Sponsor
Silver Sponsor
Posts: 605
Joined: Fri Dec 14, 2007 11:44 am
Location: Northern Ireland
x 2
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by AshMcConnell » Sun Jun 15, 2014 2:15 pm

Sounds great to me.
0 x

User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm

Re: DX9 to be removed from 2.0 Final proposal

Post by cybereality » Sun Jun 15, 2014 6:57 pm

DX9 is ancient history. I'm totally for dropping it and moving toward modern systems.
0 x

User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4291
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 2
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by spacegaier » Sun Jun 15, 2014 10:22 pm

+1 especially considering Murat's quote regarding the LTS via 1.10. So user can decide on their own which way to go.
0 x
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...

User avatar
Zonder
Gargoyle
Posts: 1098
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 9

Re: DX9 to be removed from 2.0 Final proposal

Post by Zonder » Mon Jun 16, 2014 8:49 am

+1

Ogre 2.0 should be next gen and target that. As long as 1.10 still gets fixes applied it shouldn't matter.
0 x
There are 10 types of people in the world: Those who understand binary, and those who don't...
My Blog - http://www.This post is suspected as SPAM! If you feel otherwise contact a moderator.

al2950
OGRE Expert User
OGRE Expert User
Posts: 1121
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 50

Re: DX9 to be removed from 2.0 Final proposal

Post by al2950 » Mon Jun 16, 2014 10:28 am

It has to happen at some point, might as well be for 2.0!
0 x

drwbns
Orc Shaman
Posts: 777
Joined: Mon Jan 18, 2010 6:06 pm
Location: Costa Mesa, California

Re: DX9 to be removed from 2.0 Final proposal

Post by drwbns » Mon Jun 16, 2014 5:31 pm

I agree. if 1.10 keeps it and continues maintentenance then drop it from 2.0 for sure.
0 x

frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 14

Re: DX9 to be removed from 2.0 Final proposal

Post by frostbyte » Tue Jun 17, 2014 5:11 am

pentium 4+xp forever.... :lol:
kidding aside: as long as opengl implementation keeps improving - drop the damm dx9 renderer!!!
i'll go even further to drop all of directx in favour of better opengl/shading/animation( anyone said ik?...) support....
it's a horrible api just like all of microsoft api's...so....
+1 from small me... :mrgreen:

Edit: mayby xp users can still use gles driver emulation...it maybe slower but xp is mostly coupled with old hardware so xp user shouldn't expect performance anyway....
it also seems like you can still support dx9, dx10 directly from dx11 api...so it may be possible to drop both without realy losing them....http://msdn.microsoft.com/en-us/library ... 85%29.aspx but that will miss the point( extra work... )

Similar discussion( a bit deeper ) here: http://cegui.org.uk/forum/viewtopic.php?f=6&t=6731
Last edited by frostbyte on Wed Jun 18, 2014 12:20 pm, edited 2 times in total.
0 x
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 3736
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 129
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by dark_sylinc » Wed Jun 18, 2014 2:39 am

frostbyte wrote:it also seems like you can still support dx9, dx10 directly from dx11 api...
That's the feature levels. It's meant to target older hardware (i.e. an old GeForce 7800 running on Windows 7 through DirectX 11, or phones using a GPU that has DX8-9ish capabilities, the latter being the most common case).
But it doesn't work on Windows XP.
0 x

frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 14

Re: DX9 to be removed from 2.0 Final proposal

Post by frostbyte » Wed Jun 18, 2014 3:09 am

thanks, i was just checking that but you beat me to it...
thanks for the awsome work.... :P

btw: Angle project( gles emulation through dx9 ) is now merging ES3.0 to the master branch so it may be also a nice escape plan from dx9
for those who realy realy want a dx9 backend.... https://code.google.com/p/angleproject/
0 x
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: DX9 to be removed from 2.0 Final proposal

Post by Transporter » Thu Jun 19, 2014 10:08 am

Hm, this sounds interesting but there is a small problem: DirectX 11 is not working stable at the moment! I have a DX11 graphic card but a lot of samples are not working. DX9 is working fine. I don't know abut you time planning for releasing 2.0 final but please check the DX11 render system is working before! I could do a lot of test with different graphic cards in September.

I'm using Ogre in two main projects:
  1. The driving simulator at the Chair of Mechatronics (University of Duisburg-Essen, Germany)
    To switch from DX9 to DX11 I'll need some help to convert a special shader to a compositor. The shader is part of a modified DX9 render plugin we got by a company.
  2. Industrial visualisation
    Also, I use Ogre 2.0 in a few industrial projects like visualisation of packaging robots, hydraulic processes or kinematics of an excavator. Most of the business computers don't have a DX11 graphic card, only DX9 is working. But I don't want to use Ogre 1.10 because of the performence boost of 2.0.
0 x

User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 1
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by Wolfmanfx » Thu Jun 19, 2014 10:48 am

@Transporter

The plan is first to get Gl3+/gles2 stable with hlms and than DX. As we are working with the new codebase 2.0 on a concrete project (multiplatform) we will hopefully fix many things along the road to make it useable for all users.
Maybe you could contact me over mail / skype I would be interested to use your setups as a more advanced test case.
0 x

frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 14

Re: DX9 to be removed from 2.0 Final proposal

Post by frostbyte » Thu Jun 19, 2014 10:55 am

Transporter, if u realy can't live without DX9 - i guess that according to dark_sylinc plans it will only be removed from final 2.0 so you can still maintain
the DX9 renderer( Share the load.... ) to be compatible with the main branch, as you are a master in doing stuff like that...( much respect... :D )
I think its time to move on, as ogre's team can't handle the workloads and burden Dx9 maintenance produce...and we all want Ogre to be AAA...
Eat the cake and leave it complete problem...
0 x
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: DX9 to be removed from 2.0 Final proposal

Post by Transporter » Thu Jun 19, 2014 2:43 pm

@Wolfmanfx
I'll contact you in September about my pc pool to test Ogre.

@frostbyte
I can live without DX9 if the driving simulator is working fine with DX11. :D But my boss will not be satisfied if all industrial visualisation stuff is only running on my pc. :lol: I'll try to get some Ogre tests running on various business PCs to collect information about hardware and the least common denominator of DX11 features.
0 x

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 3736
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 129
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by dark_sylinc » Thu Jun 19, 2014 7:25 pm

Transporter wrote:Hm, this sounds interesting but there is a small problem: DirectX 11 is not working stable at the moment! I have a DX11 graphic card but a lot of samples are not working. DX9 is working fine. I don't know abut you time planning for releasing 2.0 final but please check the DX11 render system is working before! I could do a lot of test with different graphic cards in September.
I know. It won't happen overnight. However DX11 rendered will receive much more focus (though GL3+ is first).
Basically the current DX11 has to work around the fact Ogre 1.x behaves like a DX9 renderer. There are buffer flags the DX11 renderer can't use (like IMMUTABLE, which is a major flag); and the DX11 has to be looking up cached states from a pool (i.e. rasterizer states, blend states). It also doesn't help that DX11 will fail if a material uses the FF pipeline.
Ogre 2.0 Final addresses these problems: Buffers can now use the immutable flag (the new buffer management system is aware of the new creation patterns) the Hlms is aware of rasterizer and blend states. And the Hlms generates shaders for the materials, no way an object might get rendered without a shader.
  1. Industrial visualisation
    Also, I use Ogre 2.0 in a few industrial projects like visualisation of packaging robots, hydraulic processes or kinematics of an excavator. Most of the business computers don't have a DX11 graphic card, only DX9 is working. But I don't want to use Ogre 1.10 because of the performence boost of 2.0.
I'm interested in hearing more about this. A computer with a DX9 card will most likely not be able to run Ogre 2.0 Final at all (CTP will work). It might be solvable by using the Mobile Hlms generators with OpenGL3, or with GLES2 + Angle to translate to DX9; but it could be nightmarish.
It's rare to see those machines though, considering DX10 cards appeared in ~2006 (GeForce 8000 series and up; ATI Radeon HD 2000 and up; Intel took some time to catch up with their GMA X3500 as their first dx10 gpu IIRC).
A DX10-DX11 card running on Windows XP is ok though (through GL3+)
Note that a machine with a DX9 card doesn't have much more performance to offer than what could be squeezed with 1.10; hence my interested... are those applications heavy or struggling in performance?
0 x

Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany

Re: DX9 to be removed from 2.0 Final proposal

Post by Transporter » Thu Jun 19, 2014 10:16 pm

These computers have been bought for PowerPoint presentations at that time. Nobody knows that eight years later a fair graphic card is required. I'll create a benchmark to measure the power of the target systems. I prefere Ogre 2.0 because of the multithreading capability which increases the power. You did an awesome work!
0 x

User avatar
Jabberwocky
OGRE Moderator
OGRE Moderator
Posts: 2819
Joined: Mon Mar 05, 2007 11:17 pm
Location: Canada
Contact:

Re: DX9 to be removed from 2.0 Final proposal

Post by Jabberwocky » Fri Jun 20, 2014 5:59 pm

It's time to drop DirectX9 support.

For the rare user that needs DirectX9 (and the numbers will rapidly disappear as time moves on), you can use an older version of Ogre.
0 x
Image

User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 238
Joined: Mon Apr 02, 2012 11:07 am

Re: DX9 to be removed from 2.0 Final proposal

Post by robert_sasu » Tue Jun 24, 2014 11:28 am

I am also on the side to drop DirectX9, as DirectX11 has backward compatibility with its feature levels for older and least performant video cards. (level 9.1, 9.2, 9.3)
0 x
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman

TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin

Re: DX9 to be removed from 2.0 Final proposal

Post by TheSHEEEP » Wed Jun 25, 2014 9:28 am

Well that was a one-sided match ;)
0 x
My site! - Have a look :)
Also on Twitter - extra fluffy

User avatar
boyamer
Orc
Posts: 459
Joined: Sat Jan 24, 2009 11:16 am
Location: Italy

Re: DX9 to be removed from 2.0 Final proposal

Post by boyamer » Fri Jun 27, 2014 6:42 am

Agree to drop DX9, DX11 already supports feature levels and its better to focus on future DX11 releases instead of DX9 ones.
0 x

User avatar
luby
Gnoblar
Posts: 3
Joined: Tue Jul 15, 2014 11:15 am

Re: DX9 to be removed from 2.0 Final proposal

Post by luby » Tue Jul 15, 2014 11:21 am

Well, firstly welcome all - my first post :)
I agree with opinion to drop DX9 support. Render system fragmentation is not good thing. Also, I suppose everybody needs to limit their imagination due to dx9 unsupported features.
But then, DX11 support needs to be perfect and solid stable, at least as dx9 is. You shouldn't drop support when there is no very good alternative.

Cheers!
0 x

Post Reply