2014-01-30, 21:49
(2014-01-30, 21:34)SSC_Jarod Wrote: Sorry to be prophet of 3D-Doom in autoswitching. But with this build its gone, sadly.
It works with r17171.
Unfortunately I can't explain that, nor can I test it as I have no 3D hardware. The only change in this latest build is to not favour lower refresh frequencies:
Code:
$ diff old3dswitching.patch new3dswitching.patch
1c1
< From a674b64876f81813036485de22fe15de95d5ed58 Mon Sep 17 00:00:00 2001
---
> From 4cb5006af21147d9237e1d2629423c039c461a4c Mon Sep 17 00:00:00 2001
12,13c12,13
< xbmc/cores/VideoRenderers/BaseRenderer.cpp | 51 +++++++++++-------------------
< 1 file changed, 19 insertions(+), 32 deletions(-)
---
> xbmc/cores/VideoRenderers/BaseRenderer.cpp | 48 +++++++++++-------------------
> 1 file changed, 17 insertions(+), 31 deletions(-)
16c16
< index 970b822..1f7843d 100644
---
> index 970b822..d1279d9 100644
31c31
< @@ -237,49 +240,33 @@ RESOLUTION CBaseRenderer::FindClosestResolution(float fps, float multiplier, RES
---
> @@ -237,44 +240,27 @@ RESOLUTION CBaseRenderer::FindClosestResolution(float fps, float multiplier, RES
89,103d88
<
< //distance of refresh to the closest multiple of fps (multiple is 1 or higher), as a multiplier of fps
< +//make higher multiples score slightly worse
< float CBaseRenderer::RefreshWeight(float refresh, float fps)
< {
< float div = refresh / fps;
< @@ -288,7 +275,7 @@ float CBaseRenderer::RefreshWeight(float refresh, float fps)
< if (round < 1)
< return (fps - refresh) / fps;
< else
< - return (float)fabs(div / round - 1.0);
< + return (float)fabs(div / round - 1.0) + round*1e-3f;
< }
<
< RESOLUTION CBaseRenderer::GetResolution() const
The new patch simply doesn't include the change to "make higher multiples score slightly worse". Why that should affect 3D autoswitching I've no idea, unless your 3D TV modes are only available at lower frequencies - frequencies that are no longer being selected because higher frequencies are now favoured?