[GSoC 2012] Complete the DirectX 11 render system

Threads related to Google Summer of Code
Post Reply
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

This is one big commit, 212 files at least.
Before committing - I will cmake, compile all render systems, and see that everything still works.
Watch out for my OGRE related tweets here.
CABAListic
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 2903
Joined: Thu Jan 18, 2007 2:48 pm
x 58
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by CABAListic »

Please try to document the changes and new features on our roadmap for 1.9.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

I will update the windows dependencies - before I will commit.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

CABAListic wrote:Please try to document the changes and new features on our roadmap for 1.9.
ok
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Everything is ready - I am just waiting for cherlix to sign the contributors form and I will commit the code to the trunk.
Here is the text of the commit comment (a patch is attached to this post):
Added Windows 8 Metro Style (WinRT) platform and many improvements to the D3D11 render system part of the GSoC 2012 project.
The work is by By robert_sasu, Eugene, cherlix and Assaf Raman.
This commit is the result of GSoC 2012 titled "Complete the DirectX 11 render system".
This commit includes the following changes to the code:
1. WinRT support - this is a merge of work done by the amazing Eugene and cherlix. This also include "how to build" instructions in BuildingOgreWinRT.txt
2. Code for tessellation that include the following new shader types: Domain, Hull and Compute.
3. A new tessellation sample - currently only works with the d3d11 render system - in the future we should add support for OpenGL as well.
4. The tessellation sample also demonstrates the new dynamic linkage feature added to the d3d11 render system.
5. Support for older cards when you use the d3d11 render system - this way you can run OGRE with d3d11 render system on systems with cards that don't support d3d10 - like VMWare .The support also include fixes to the Cg plugin.
6. The WinRT work includes changes to the input code in the sample browser - for the WinRT platform.
7. Fixes to same samples so they will work with the d3d11 render system. Note - the student didn't get to fix all the samples.
8. There is an open issue after the changes – some new error in the code generated by the RTSS that creates a visual issue visible in the "Facial Animation" sample, this will have to be resolved later.

Here is a list of forum threads relegated to this commit:
1. "Complete the DirectX 11 render system" project thread: http://www.ogre3d.org/forums/viewtopic.php?f=13&t=69655
2. "Ogre's Windows 8 Metro Style port" http://www.ogre3d.org/forums/viewtopic.php?f=4&t=69209
Check out the patch that I want to commit:
src_3736.patch
The project big patch
(774.43 KiB) Downloaded 566 times
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

crashy (Jean-Baptiste Griffo) also have credit for a lot of the WinRT work.
Watch out for my OGRE related tweets here.
Crashy
Google Summer of Code Student
Google Summer of Code Student
Posts: 1005
Joined: Wed Jan 08, 2003 9:15 pm
Location: Lyon, France
x 49
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Crashy »

I've retrieved the final version, and before you merge it to the trunk, there is a small bug I've found:

The OgreD3d11MultipleRenderTarget::mNumberOfViews member is never initialized to 0. That leds the application to crash if it uses a multiple render target.

Fix is obvious, just replace

Code: Select all

//---------------------------------------------------------------------
	D3D11MultiRenderTarget::D3D11MultiRenderTarget(const String &name) :
	//---------------------------------------------------------------------
	MultiRenderTarget(name)
by

Code: Select all

//---------------------------------------------------------------------
	D3D11MultiRenderTarget::D3D11MultiRenderTarget(const String &name) :
	//---------------------------------------------------------------------
	MultiRenderTarget(name),mNumberOfViews(0)
In OgreD3D11MultiRenderTarget.cpp.

By the way, congratulations for your awesome work Robert Sasu :)
Follow la Moustache on Twitter or on Facebook
Image
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Thanks. I will fix what you wrote, I am sure cherlix will sign the form in the next few days - so I can commit it all to the trunk.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

cherlix sent me an e-mail that he is willing to sign the form, I am just waiting for the actual signed form - and I will commit all the code.
Watch out for my OGRE related tweets here.
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Transporter »

Hi!

It would be nice if you can also update the profiling functions.

Replace D3DPERF_BeginEvent, D3DPERF_EndEvent and D3DPERF_SetMarker by ID3DUserDefinedAnnotation.
User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 99
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Wolfmanfx »

When we just replace it we have no prfoling on win7/winvista the functions above are only for win8 and seems that the not supported on winRT.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Watch out for my OGRE related tweets here.
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Transporter »

Wolfmanfx wrote:When we just replace it we have no prfoling on win7/winvista the functions above are only for win8 and seems that the not supported on winRT.
The function supports winRT.
Applies to: desktop apps | Metro style apps
There must be a switch like
#if OGRE_PROFILING == 1
#if WINDOWS8 || WINRT
ID3DUserDefinedAnnotation
#else
DX9
#endif
#endif
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

I guess we could also dynamically load the needed dll and function - based on the OS.
I need to add smiler code to the shader compile dll - that is missing in WinRT.
Watch out for my OGRE related tweets here.
User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 99
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Wolfmanfx »

Dynamic loading would be an awesome solution.

@Transporter
1.8.1 do not have WinRT support also 1.8.1 do not include any platform detection for that platform - i also think you mix up something because this gsoc project and the work from eugene will be merged into 1.9 and not 1.8.1.
So my question in other thread was how useful the DX11 in 1.8.1 is? Maybe you guys (who use DX11) can answer that.
Crashy
Google Summer of Code Student
Google Summer of Code Student
Posts: 1005
Joined: Wed Jan 08, 2003 9:15 pm
Location: Lyon, France
x 49
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Crashy »

Another little thing:

The samplerDesc.ComparisonFunc is set in the call of D3D11RenderSystem::_setTextureUnitCompareFunction, but then it is erased at the line:

Code: Select all

stage.samplerDesc.ComparisonFunc = /*D3D11_COMPARISON_NEVER;//*/D3D11Mappings::get(mSceneAlphaRejectFunc);
In D3D11RenderSystem::_render .

As a result, it is not possible to use SamplerComparisonState in the shaders, and have the right comparison function.
Follow la Moustache on Twitter or on Facebook
Image
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Will be fixed. I am still waiting to the signed compositor form, this is really keeping me from committing - and making me waste hours on merges of the changes that are being done after the merge. I hope cherlix will sign the form soon, I hope tomorrow when he will read my mail with the form attached to it.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

cherlix sent me the signed form.
I just uploaded the code to the trunk. Here is the commit.

Good project, thanks for everyone that helped.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

I will update the road-map tomorrow.
Watch out for my OGRE related tweets here.
User avatar
Xplodwild
Goblin
Posts: 231
Joined: Thu Feb 12, 2009 3:49 pm
Location: France
x 13
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Xplodwild »

Assaf Raman wrote:cherlix sent me the signed form.
I just uploaded the code to the trunk. Here is the commit.

Good project, thanks for everyone that helped.


There is a little mistake in OgreD3D11RenderSystem.cpp, line 1511 and 1534, there are two bodies for destroyRenderTarget(const String& name)
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Where do you see that? How can I see that? What code are you looking at? Where did you get it from? Did you get the latest trunk?
Watch out for my OGRE related tweets here.
User avatar
Xplodwild
Goblin
Posts: 231
Joined: Thu Feb 12, 2009 3:49 pm
Location: France
x 13
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Xplodwild »

I'm on the v1-9 branch - was it only merged to trunk?
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Yes.
Watch out for my OGRE related tweets here.
User avatar
Xplodwild
Goblin
Posts: 231
Joined: Thu Feb 12, 2009 3:49 pm
Location: France
x 13
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Xplodwild »

My bad, I should have looked more closely. I compared https://bitbucket.org/sinbad/ogre/src/3 ... 11/include (v1-9) and https://bitbucket.org/sinbad/ogre/src/2 ... 11/include (default) and saw that the first files had the same last commit... But didn't pay attention to the files at the bottom. It's a bit weird that WinRT support was merged in 1-9 before the D3D11 rendersystem itself.

However, wasn't there plans to bring DX11 rendersystem to 1.9? Also, is it my fault or Cg shaders doesn't seem to compile? (No supported technique)
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Do you use the latest Cg?
Watch out for my OGRE related tweets here.
Post Reply