2012-11-03, 01:48
So after a few months on hiatus, I decided to have a look at the current XBMC nightlies and prepared a new build based on 0f6fb94fc7 dated 2012-11-02. Download here.
This build includes the following patches (source included with the download):
However, non-DXVA rendering after DXVA decoding appears to be broken currently, so XBMC will crash unless you turn off DXVA decoding as well. I suppose you have this turned off anyway to get full multithreading support ;-)
This build includes the following patches (source included with the download):
- Re-enable frame based multithreading
Since my previous patch doesn't work on the current tree anymore and while I had SOME free time, I had not A LOT of it, I decided to go for a quick&dirty approach similar to jpsdr's suggestion. If you want to enable full multithreading, you'll have to turn off DXVA2 in the video options when using this build.
- My OGM-packed-bitstream patch that none of the devs seems to care about...
Fixes choppy playback of certain OGMs that contain MPEG4 (Xvid/Divx) streams with packed bitstream encoding. Probably also fixes playback for other files with incorrect frame timestamps.
- Fix DXVA rendering by turning off 10/16bit rendering
Unfortunately, elupus' Play10bit patch broke DXVA rendering for Hi10P files, giving you a pitch black screen instead. I have no idea whether this might be specific to Intel GPUs (I'm using G45), but apparently DXVA scaling/rendering won't work with 10/16bit color spaces (YUV420P10/YUV420P16). Even more unfortunately, the available color formats are defined in CWinRenderer:reInit(), way before it's known whether DXVA rendering is actually chosen or not (CWinRenderer::Configure()). So I disabled rendering these color formats by default - or rather, as soon as there is a chance that DXVA rendering might be chosen. While I was at it, I also fixed a typo in elupus' commit.
- Force DXVA scaling for HD content to fix framedrop issues
Same as in my previous build. My Intel G45 is simply too slow to render Full HD content using pixel shaders without occasional frame drops (resp. a lot, if scaling is involved). So I'm reverting to DXVA rendering for all HD content.
Code:
<advancedsettings>
<video>
<forcedxvarenderer>false</forcedxvarenderer>
</video>
</advancedsettings>