Kodi Community Forum
[WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer? - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Discussions (https://forum.kodi.tv/forumdisplay.php?fid=222)
+--- Forum: Feature Requests (https://forum.kodi.tv/forumdisplay.php?fid=9)
+--- Thread: [WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer? (/showthread.php?tid=33323)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


- Freddo - 2009-03-11

Isnt that almost exactly what they had to do to get VDPAU off of the weird surface it renders onto and into XBMCs GL enviroment?


- spiff - 2009-03-11

nope, motd2k found a way to do it without the roundtrip. if we have to do the roundtrip we might as well decode using the cpu, as the bus load will be much more of a bottleneck than the decode.

are you absolutely sure you can do that with DXVA render targets? you can't render to general surfaces, you have to either use special dxva created once or a surface flagged as a rendertarget.


- ArtVandelae - 2009-03-11

spiff Wrote:are you absolutely sure you can do that with DXVA render targets? you can't render to general surfaces, you have to either use special dxva created once or a surface flagged as a rendertarget.

Render targets can be copied to a surface via GetRenderTargetData (in D3D9). That surface can then be locked and the data retrieved. Again, it will be slow since it involves copying the image to system memory first.


- spiff - 2009-03-11

rite'o. i yield to the expert Wink


- natethomas - 2009-03-11

out of curiosity, what did motd2k end up doing to work around that problem?


- LaTropa64 - 2009-03-12

motd2k Wrote:There's also the possibility of using a prebuilt XBMCLive to access VDPAU in the future, that might be a reasonable solution, after-all if you want to just 'watch' video on Windows, as you correctly asserted, mp-hc will do it. If you want the UI then you're likely going to be fullscreen, so booting a USB stick to do it isn't the end of world.

I would have been perfectly happy with that back in my Xbox only days but now that I've hooked a full-fledged computer up to my TV, I could never give up the ability to do things like Alt+Tab over to firefox or MCE (for live tv).

Of course, being an end-user, I'll take whatever I can get and be happy enough with it. Smile


- LaTropa64 - 2009-03-12

ashlar Wrote:Also, I wouldn't discount CUDA. CoreAVC seems to be getting great performance out of that (I'm a registered user, will download the latest version and report back first hand experience). For reference: http://forum.corecodec.com/viewtopic.php?f=3&t=1724&st=0&sk=t&sd=a
I was unimpressed with CoreAVC's use of CUDA. While CPU usage stayed nice and low, the quality suffered on some scenes.

CoreAVC with CUDA:
Image


MPC-HC with DXVA:
Image


- fekker - 2009-03-12

The other side of the windows coin, an e5200 (2.5ghz, $72 cpu) will play back 1080p, even the crazy killa sample. Sometimes ya just have to through a bit of hardware under things with windows. Combine that with a decent micro-atx board ($52 gigabyte board with intel g31) and it's a nice quiet htpc that plays everything, even in windows.

Not having hardware decoding isn't the end of the windows version. And for most Hard core gamers that are using the pc for it, also hooked to hd displays, they have much faster cpu's.

If i had any clue how to do directx anything (which I don't) I would gladly write something, but I'm just not that good. At the same time, if someone can write it, i'll gladly test it.


- gstreet - 2009-03-12

fekker Wrote:The other side of the windows coin, an e5200 (2.5ghz, $72 cpu) will play back 1080p, even the crazy killa sample.

and also ive read u can clock that one to ~3.5ghz with ease, and thats with the cooler it ships with and 4 if ur lucky or get a nice cooler. Is there any reason to get a more expensive cpu?


- ashlar - 2009-03-12

LaTropa64 Wrote:I was unimpressed with CoreAVC's use of CUDA. While CPU usage stayed nice and low, the quality suffered on some scenes.

CoreAVC with CUDA:
Image


MPC-HC with DXVA:
Image
I'm hopeful that these problems will be solved in the future. If the CPU usage is indeed low, there is hope.

Edit: from the thread I linked:
- We are aware of an artifacts/blockiness bug and are working on a fix.
- We are aware of the blockiness bug when seeking (this has been fixed internally).

If the performance is there, maybe there's hope for an XBMC version using CUDA. It should not be tied to DirectX, right?



- waldo22 - 2009-03-12

ArtVandelae Wrote:Render targets can be copied to a surface via GetRenderTargetData (in D3D9). That surface can then be locked and the data retrieved. Again, it will be slow since it involves copying the image to system memory first.

Not bad for a burrito...

http://www.moes.com/burritos.aspx

Smile


- mpw222 - 2009-03-12

fekker Wrote:The other side of the windows coin, an e5200 (2.5ghz, $72 cpu) will play back 1080p, even the crazy killa sample. Sometimes ya just have to through a bit of hardware under things with windows. Combine that with a decent micro-atx board ($52 gigabyte board with intel g31) and it's a nice quiet htpc that plays everything, even in windows.

Not having hardware decoding isn't the end of the windows version. And for most Hard core gamers that are using the pc for it, also hooked to hd displays, they have much faster cpu's.

If i had any clue how to do directx anything (which I don't) I would gladly write something, but I'm just not that good. At the same time, if someone can write it, i'll gladly test it.

You can play many 1080p videos at 2.53 GHz, but not all. I've remuxed a number of Blu-Rays and found that I needed to overclock well past 3GHz to get some of the H264 streams to play. Even at 3.5GHz, I drop tons of frames in 1080i 30fps Blu-Ray streams, though everything else plays fine. VC1 remuxes are a bit less demanding, and MPEG2 is trivial.


- ArtVandelae - 2009-03-12

ashlar Wrote:If the performance is there, maybe there's hope for an XBMC version using CUDA. It should not be tied to DirectX, right?
[/COLOR]

No, but the main issue with CUDA is that it is NVidia only.

If we are going to see effort put into making FFMpeg take advantage of the GPU in a cross-platform manner it will probably be via OpenCL, whenever the vendors put out a working implementation.


- EMK0 - 2009-03-12

VDPAU is nvidia only as well


- cold_realms - 2009-03-12

EMK0 Wrote:VDPAU is nvidia only as well

Yes but thats linux and XBMC is really linux first, windows/os X last and xbox? what xbox? hehehe