home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 2
General
Concept: Switch MP2 to D3D11/D2D rendering
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="morpheus_xx" data-source="post: 1115068" data-attributes="member: 48495"><p>This thread is about discussion of the idea to switch MP2 rendering to a newer DX version.</p><p></p><p><u><strong>The current situation (as of 12/2014) is:</strong></u></p><ul> <li data-xf-list-type="ul">MP2 SkinEngine uses D3D9Ex for all rendering (SharpDX 2.6.2)<br /> </li> <li data-xf-list-type="ul">Video playback uses DirectShow (incl. DXVA) with a "Custom EVR Presenter". This requires a D3D9(Ex) device.</li> <li data-xf-list-type="ul">Visuals (controls), Brushes (SolidColor, LinearGradient, RadialGradient), Paths and Geometries are all created and rendered manually (software based triangulation)</li> </ul><p>[ATTACH]158971[/ATTACH]</p><p><u><strong></strong></u></p><p><u><strong>There are a number of limitations:</strong></u></p><ol> <li data-xf-list-type="ol">Own implementation of many code parts are not fully compatible to the WPF known controls (i.e. Path syntax limited, line join modes not fully implemented)</li> <li data-xf-list-type="ol">Text rendering is not as flexible as required (only simple font, no switch between normal, italic, bold), features missing like line height adjustment. Right-to-left support is WiP (based already partly on D2D techology)<br /> </li> <li data-xf-list-type="ol">Control rendering (lines) is aliased. The available MultiSampling-AntiAliasing (MSAA) has some own propblems and performance drops<br /> </li> <li data-xf-list-type="ol">Often requested rendering effects are not available (mostly blur and shadows)</li> </ol><p></p><p><u><strong>Proposal</strong></u></p><p>I'd like to switch MP2 rendering to Direct3D<strong>11</strong>(.1). This allows us to use Direct2D for rendering of visuals and effects. Video playback will still require a Direct3D<strong>9</strong>(Ex) device.</p><p></p><p>Both D3D APIs can interoperate with each other. As we are already copying the Video frame as texture into our VideoBrush, the technology chain won't change so much.</p><p></p><p>Compatibility with Windows 7 (with platform update) is mandatory in the design decision.</p><p></p><p>The switch could solve all the limitations listed above. We would get a lot more features (effects), a better rendering quality (per-primitive anti aliasing), maybe(!) better performance (hardware tesselation vs. software triangulation), a better compatibility with other tools (see WPF, D2D) and more.</p><p></p><p>The proposed archtitecture looks like:</p><p>[ATTACH]158972[/ATTACH]</p><p></p><p>The work on this project has a quite big impact on SkinEngine and will take a lot of development, testing and bugfixing until we get the same features as we have now.</p><p></p><p>I'd like to put this idea to discussion, what other things need to be considered, what other concerns exists?</p><p></p><p>[USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39]@Developers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP] [USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40]@Testers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP] [USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38]@Designers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP]</p><p></p><p><u><span style="font-size: 18px"><span style="color: #00b300"><strong>Download:</strong></span></span></u></p><p>[SPOILER]<span style="color: #808080"><strong>2015-01-02 Testbuild 1:</strong></span></p><p><span style="color: #808080">Attached testbuilds are using DX11 + D2D rendering and included changes from latest weekly build. There are some things still missing like:</span></p><ul> <li data-xf-list-type="ul"><span style="color: #808080">Effects (GUI, no filter in video rendering)</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Image transition rendering (i.e. ImagePlayer slideshow)</span></li> </ul><p><span style="color: #808080"><strong>2015-01-03 Testbuild 2:</strong></span></p><ul> <li data-xf-list-type="ul"><span style="color: #808080">New: Effects (Shadow, Blur), used in Apollo One</span></li> <li data-xf-list-type="ul"><span style="color: #808080">New: Quality settings (Settings->Appearance: Antialiasing, Image scaling, Video scaling)</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Broken: Image player</span></li> </ul><p><span style="color: #808080"><strong>2015-01-06 Testbuild 3:</strong></span></p><ul> <li data-xf-list-type="ul"><span style="color: #808080">Bugfix and optimization of Effects rendering: enabling caching improves performance a lot (only for static content!)</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Changed visuals: a rounded Rectangle filled by a VisualBrush is faster than an OpacityMask applied to a Grid.</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Still broken: Image player</span></li> </ul><p><span style="color: #808080"><strong>2015-03-06 Testbuild 4:</strong></span></p><ul> <li data-xf-list-type="ul"><span style="color: #808080">Restored effects based video rendering (using custom SharpDX build now)</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Image rendering working in general, few bugs expected though</span></li> <li data-xf-list-type="ul"><span style="color: #808080">ImagePlayer works, but transitions between images are not yet working again</span></li> <li data-xf-list-type="ul"><span style="color: #808080">Note to Windows 7 users: please extract the additional plugin (20150306-Win7_Compatibility) the MP2-Client folder of this testbuild. It contains a renamed D3DCompiler_43.dll to match Win8 SDK requirements (_47.dll, but this is Win8 only <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite3" alt=":(" title="Frown :(" loading="lazy" data-shortname=":(" />)</span></li> </ul><p><span style="color: #808080"><strong>2015-05-02 Testbuild 5: <em>(Updated 2015-05-06)</em></strong></span></p><ul> <li data-xf-list-type="ul"><span style="color: #808080">ImagePlayer works, but <u>transitions between images are still not working</u></span></li> <li data-xf-list-type="ul"><span style="color: #808080">Note to Windows 7 users: please extract the additional plugin (20150306-Win7_Compatibility) the MP2-Client folder of this testbuild. It contains a renamed D3DCompiler_43.dll to match Win8 SDK requirements (_47.dll, but this is Win8 only <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite3" alt=":(" title="Frown :(" loading="lazy" data-shortname=":(" />)</span></li> <li data-xf-list-type="ul"><span style="color: #808080">BlueVision skin D2D build added</span></li> </ul><p>[/SPOILER]</p><p><strong>2017-03-29 Testbuild 6, based on MP2.1 pre2</strong></p><ul> <li data-xf-list-type="ul">All changes from the MP2.1 pre 2 release are now included in this snapshot.</li> </ul><p><u><strong>References:</strong></u></p><ul> <li data-xf-list-type="ul"><a href="https://forum.team-mediaportal.com/threads/wip-adding-support-for-direct2d-effects.128634/" target="_blank">WiP: Adding support for Direct2D effects</a><br /> </li> <li data-xf-list-type="ul"><a href="https://forum.team-mediaportal.com/threads/wip-adding-design-time-support-for-mpf-xaml.128516/" target="_blank">WiP: Adding design time support for MPF-XAML</a></li> <li data-xf-list-type="ul"><a href="https://forum.team-mediaportal.com/threads/adding-support-for-right-to-left-languages-hebrew-arabic.128061/" target="_blank">[WiP] - Adding support for Right-to-left languages (Hebrew, Arabic...)</a></li> <li data-xf-list-type="ul">Direct2D overview: <a href="http://en.wikipedia.org/wiki/Direct2D" target="_blank">Direct2D - Wikipedia</a></li> <li data-xf-list-type="ul">DX feature level: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx</a><br /> </li> <li data-xf-list-type="ul">Win7 D2D: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/jj863687%28v=vs.85%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/windows/desktop/jj863687(v=vs.85).aspx</a><br /> </li> <li data-xf-list-type="ul"><a href="https://github.com/AvengerDr/Odyssey" target="_blank">GitHub - AvengerDr/Odyssey: Odyssey Engine Repository</a>, <a href="http://www.iterastris.uk/" target="_blank">http://www.iterastris.uk/</a> (example D2D based engine)</li> </ul></blockquote><p></p>
[QUOTE="morpheus_xx, post: 1115068, member: 48495"] This thread is about discussion of the idea to switch MP2 rendering to a newer DX version. [U][B]The current situation (as of 12/2014) is:[/B][/U] [LIST] [*]MP2 SkinEngine uses D3D9Ex for all rendering (SharpDX 2.6.2) [*]Video playback uses DirectShow (incl. DXVA) with a "Custom EVR Presenter". This requires a D3D9(Ex) device. [*]Visuals (controls), Brushes (SolidColor, LinearGradient, RadialGradient), Paths and Geometries are all created and rendered manually (software based triangulation) [/LIST] [ATTACH]158971[/ATTACH] [U][B] There are a number of limitations:[/B][/U] [LIST=1] [*]Own implementation of many code parts are not fully compatible to the WPF known controls (i.e. Path syntax limited, line join modes not fully implemented) [*]Text rendering is not as flexible as required (only simple font, no switch between normal, italic, bold), features missing like line height adjustment. Right-to-left support is WiP (based already partly on D2D techology) [*]Control rendering (lines) is aliased. The available MultiSampling-AntiAliasing (MSAA) has some own propblems and performance drops [*]Often requested rendering effects are not available (mostly blur and shadows) [/LIST] [U][B]Proposal[/B][/U] I'd like to switch MP2 rendering to Direct3D[B]11[/B](.1). This allows us to use Direct2D for rendering of visuals and effects. Video playback will still require a Direct3D[B]9[/B](Ex) device. Both D3D APIs can interoperate with each other. As we are already copying the Video frame as texture into our VideoBrush, the technology chain won't change so much. Compatibility with Windows 7 (with platform update) is mandatory in the design decision. The switch could solve all the limitations listed above. We would get a lot more features (effects), a better rendering quality (per-primitive anti aliasing), maybe(!) better performance (hardware tesselation vs. software triangulation), a better compatibility with other tools (see WPF, D2D) and more. The proposed archtitecture looks like: [ATTACH]158972[/ATTACH] The work on this project has a quite big impact on SkinEngine and will take a lot of development, testing and bugfixing until we get the same features as we have now. I'd like to put this idea to discussion, what other things need to be considered, what other concerns exists? [USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39][USERGROUP=39]@Developers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP] [USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40][USERGROUP=40]@Testers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP] [USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38][USERGROUP=38]@Designers[/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP][/USERGROUP] [U][SIZE=5][COLOR=#00b300][B]Download:[/B][/COLOR][/SIZE][/U] [SPOILER][COLOR=#808080][B]2015-01-02 Testbuild 1:[/B] Attached testbuilds are using DX11 + D2D rendering and included changes from latest weekly build. There are some things still missing like:[/COLOR] [LIST] [*][COLOR=#808080]Effects (GUI, no filter in video rendering)[/COLOR] [*][COLOR=#808080]Image transition rendering (i.e. ImagePlayer slideshow)[/COLOR] [/LIST] [COLOR=#808080][B]2015-01-03 Testbuild 2:[/B][/COLOR] [LIST] [*][COLOR=#808080]New: Effects (Shadow, Blur), used in Apollo One[/COLOR] [*][COLOR=#808080]New: Quality settings (Settings->Appearance: Antialiasing, Image scaling, Video scaling)[/COLOR] [*][COLOR=#808080]Broken: Image player[/COLOR] [/LIST] [COLOR=#808080][B]2015-01-06 Testbuild 3:[/B][/COLOR] [LIST] [*][COLOR=#808080]Bugfix and optimization of Effects rendering: enabling caching improves performance a lot (only for static content!)[/COLOR] [*][COLOR=#808080]Changed visuals: a rounded Rectangle filled by a VisualBrush is faster than an OpacityMask applied to a Grid.[/COLOR] [*][COLOR=#808080]Still broken: Image player[/COLOR] [/LIST] [COLOR=#808080][B]2015-03-06 Testbuild 4:[/B][/COLOR] [LIST] [*][COLOR=#808080]Restored effects based video rendering (using custom SharpDX build now)[/COLOR] [*][COLOR=#808080]Image rendering working in general, few bugs expected though[/COLOR] [*][COLOR=#808080]ImagePlayer works, but transitions between images are not yet working again[/COLOR] [*][COLOR=#808080]Note to Windows 7 users: please extract the additional plugin (20150306-Win7_Compatibility) the MP2-Client folder of this testbuild. It contains a renamed D3DCompiler_43.dll to match Win8 SDK requirements (_47.dll, but this is Win8 only :()[/COLOR] [/LIST] [COLOR=#808080][B]2015-05-02 Testbuild 5: [I](Updated 2015-05-06)[/I][/B][/COLOR] [LIST] [*][COLOR=#808080]ImagePlayer works, but [U]transitions between images are still not working[/U][/COLOR] [*][COLOR=#808080]Note to Windows 7 users: please extract the additional plugin (20150306-Win7_Compatibility) the MP2-Client folder of this testbuild. It contains a renamed D3DCompiler_43.dll to match Win8 SDK requirements (_47.dll, but this is Win8 only :()[/COLOR] [*][COLOR=#808080]BlueVision skin D2D build added[/COLOR] [/LIST] [/SPOILER] [B]2017-03-29 Testbuild 6, based on MP2.1 pre2[/B] [LIST] [*]All changes from the MP2.1 pre 2 release are now included in this snapshot.[B][/B] [/LIST] [U][B]References:[/B][/U] [LIST] [*][URL="https://forum.team-mediaportal.com/threads/wip-adding-support-for-direct2d-effects.128634/"]WiP: Adding support for Direct2D effects[/URL] [*][URL="https://forum.team-mediaportal.com/threads/wip-adding-design-time-support-for-mpf-xaml.128516/"]WiP: Adding design time support for MPF-XAML[/URL] [*][URL="https://forum.team-mediaportal.com/threads/adding-support-for-right-to-left-languages-hebrew-arabic.128061/"][WiP] - Adding support for Right-to-left languages (Hebrew, Arabic...)[/URL] [*]Direct2D overview: [URL="http://en.wikipedia.org/wiki/Direct2D"]Direct2D - Wikipedia[/URL] [*]DX feature level: [URL='http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx']http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx[/URL] [*]Win7 D2D: [URL='http://msdn.microsoft.com/en-us/library/windows/desktop/jj863687%28v=vs.85%29.aspx']http://msdn.microsoft.com/en-us/library/windows/desktop/jj863687(v=vs.85).aspx[/URL] [*][URL="https://github.com/AvengerDr/Odyssey"]GitHub - AvengerDr/Odyssey: Odyssey Engine Repository[/URL], [URL]http://www.iterastris.uk/[/URL] (example D2D based engine) [/LIST] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 2
General
Concept: Switch MP2 to D3D11/D2D rendering
Contact us
RSS
Top
Bottom