Kodi Community Forum
Initial native support for DXVA2 in SVN - Time to say goodbye to your firstborns - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Windows (https://forum.kodi.tv/forumdisplay.php?fid=59)
+---- Thread: Initial native support for DXVA2 in SVN - Time to say goodbye to your firstborns (/showthread.php?tid=69306)



- ashlar - 2010-05-01

Just wanted to extend my thanks to CrystalP, as he seems to be really helping elupus. Thanks!!!

If you can, please consider switching refresh rate before starting playback. Smile

http://trac.xbmc.org/ticket/6914


- frotsen - 2010-05-01

Great news! Just did a quick test with svn 29716 and dxva works now with my ait 5540 card, in fake fullscreen. Not in fullscreen. Can post a debug logg if wanted


- chheber - 2010-05-01

.!


- CrystalP - 2010-05-01

Nice series of commits elupus!

I haven't built & run them yet, but there is something that doesn't feel right, although it must work since you committed:
Code:
CHECK(m_service->CreateSurface( (m_format.SampleWidth  + 15) & ~15
                                  , (m_format.SampleHeight + 15) & ~15
                                  , m_context->surface_count - 1 - m_buffer_count
                                  , m_format.Format
                                  , D3DPOOL_DEFAULT
                                  , 0
                                  , DXVA2_VideoDecoderRenderTarget
                                  , m_context->surface + m_buffer_count, NULL ));

It's an allocation with the DXVA2_VideoDecoderRenderTarget surface type, but a comment indicates that the surfaces are for both decoder and processor.
There is a DXVA2_VideoProcessorRenderTarget surface type that seems more appropriate but that would require two separate surface arrays I guess.


On a separate but related note, please have a look at the patch on ticket 9148, as there is a pretty good chance that display mode change (windowed<->true fullscreen<->fake fullscreen) and adjust refresh rate were broken by the D3D9Ex commit. Most cards today support dynamic textures and would be affected.


- elupus - 2010-05-02

It's right, the surfaces is only written by decoder not processor.

Yea I intend to commit it. Just got sidetracked by my dwm queuing patch (which actually works when you use flipex)


- PolliSoft - 2010-05-02

Thanks a lot for your work guys!
With the latest commit (http://trac.xbmc.org/changeset/29717), I am for the first time able to use DXVA2 together with adjust refresh rate!!!

You ruke!

Edit: A bit too quick... After a restart, the old problems reoccured... Too bad, but thanks anyway for your good work!


- CrystalP - 2010-05-02

Thanks for the commit.

At this point, FLIPEX introduces artifacts in the GUI: with a display in 24Hz I can sometimes see partially constructed screens. It's not tearing, but looks like some layers of the GUI are missing. I'm sure it'll work better with DWM tweaking. It happens with the overlays during video playback too, actually.


PolliSoft: adjust refresh rate hasn't been tackled yet but should have improved under Win 7, as a fortunate side effect of other changes.


- Rob79 - 2010-05-02

Okay, Have tried the latest nightly and also the Build r29697, I have a ATI HD3450 and am just wondering if I should still be experiencing the total green screen issue? It seemed that with Catalyst 10.4 this was resolved, but it does not seem to be the case. Please let me know if it is something simple I am missing. So I am on Catalyst 10.4, r29697, Win7 32bit. Should I be able to use DXVA or is it still a known issueHuh Thanks for your help Smile


- steelman1991 - 2010-05-02

Decided to try recent svn build r29717 just to see what, if any improvements had been introduced, particularly with playback of the sample file provided earlier in the thread by SlaveUnit and I. The only change to playback characteristics are that in addition to the heavy pixelation in the sample, the new build has introduced a flashing green screen?

Just thought I would let you guys know - no doubt you are probably aware of it.

Sorry my bad - here's a debug log

http://pastebin.com/8Sz4kSe2

Ignore advancedsettings.xml external player playback is not set-up at this time.


- oldpainless - 2010-05-02

In addition to Steelman's comments - the sample I posted now plays fine (no judder) in normal dxv2 mode - however, if I switch on auto refresh rate change, it switches fine and the gui shows the correct fps, but it LOOKS like it's running at about 15fps.

ION Win7 32bit

K


- joshuass - 2010-05-02

I wonder if it would make sense to have a stickied post with links to special test video snippets? That way, anyone who wants to do testing or debugging is guaranteed a decent video with which to test. It can provide a sort of baseline for making sure newly added functionality works on a wide array of machines too Smile


- Rob79 - 2010-05-02

Anyone have a simples yes or no, or silly xbmc user dxva is for nvidia users onlyHuh Just looking for some of the more experienced users to give a quick opinion. Thanks




Rob79 Wrote:Okay, Have tried the latest nightly and also the Build r29697, I have a ATI HD3450 and am just wondering if I should still be experiencing the total green screen issue? It seemed that with Catalyst 10.4 this was resolved, but it does not seem to be the case. Please let me know if it is something simple I am missing. So I am on Catalyst 10.4, r29697, Win7 32bit. Should I be able to use DXVA or is it still a known issueHuh Thanks for your help Smile



- elupus - 2010-05-02

At this moment, dxva is only known to be working for nvidia users. ATI are hit and miss, the problem is that they often do not support bitstreamtype 1 and the code for bitstreamtype 2 is broken.

Untill that is fixed, only nvidia is known to be working well.


- elupus - 2010-05-02

CrystalP,

Hmm.. that sounds odd. Sounds like it's not swapping front and back buffer at the right time. I suppose it could be that It's such a new feature in windows that the drivers might not be uptodate on it yet. Maybe should be made optional.

Maybe increasing backbuffers would solve the issue. Maybe the DWM queuing too, but i really don't get how that would work with flipex.

With flipex, DWM is supposed to be using the same surface as the app for rendering to screen, ie not copying it to it's own buffer. If we are running with only 1 backbuffer, how the heck should DWM be able to queue up frames for later presentation? The docs doesn't mention it asfar as i've been able to tell.


- vanvonno - 2010-05-02

elupus Wrote:At this moment, dxva is only known to be working for nvidia users. ATI are hit and miss, the problem is that they often do not support bitstreamtype 1 and the code for bitstreamtype 2 is broken.

Untill that is fixed, only nvidia is known to be working well.


How about Intel graphics ?