Flickering Tv-guide and other overlays with EVR enabled (1 Viewer)

Nobleware

Portal Member
March 5, 2008
36
1
Rockingham, WA
Home Country
In addition, I changed my decoder from Powerdvd to MPV and now no flicker... probably been covered already...
 

Eabin

Retired Team Member
  • Premium Supporter
  • September 18, 2006
    465
    43
    it only seems to happen when DXVA is active. i still blame the driver, unfortunately 8.4 doesn't help.

    edit: btw. it's much worse with HD channels than with SD channels.
     

    tourettes

    Retired Team Member
  • Premium Supporter
  • January 7, 2005
    17,301
    4,800
    I'm pretty sure that the bug is related to MP GUI engine. I did found some interesting stuff yesterday evening at least it cured my EPG screen flickering. I'll upload the modified core.dll later this evening.
     

    tourettes

    Retired Team Member
  • Premium Supporter
  • January 7, 2005
    17,301
    4,800
    Here's the promised core.dll and changed code for GUIButton3PartControl.cs

    Code:
        /// <summary>
        /// Renders the GUIButton3PartControl.
        /// </summary>
        public override void Render(float timePassed)
        {
          // Do not render if not visible.
          if (!IsVisible)
          {
            base.Render(timePassed);
            return;
          }
          _cachedTextLabel1 = _tagLabel1;
          _cachedTextLabel2 = _tagLabel2;
          if (_containsProperty1 && _property1Changed)
          {
            _property1Changed = false;
            _cachedTextLabel1 = GUIPropertyManager.Parse(_tagLabel1);
            if (_cachedTextLabel1 == null) _cachedTextLabel1 = "";
            _reCalculate = true;
          }
          if (_containsProperty2 && _property2Changed)
          {
            _property2Changed = false;
            _cachedTextLabel2 = GUIPropertyManager.Parse(_tagLabel2);
            if (_cachedTextLabel2 == null) _cachedTextLabel2 = "";
            _reCalculate = true;
          }
          if (_reCalculate)
          {
            Calculate();
          }
    
          //render the icon
          if (_imageIcon != null)
          {
            _imageIcon.Render(timePassed);
          }
    
          // render the 1st line of text on the button
          int iWidth = _imageNonFocusedMid.Width - 10 - _textOffsetX1;
          if (iWidth <= 0) iWidth = 1;
          if (_imageNonFocusedMid.IsVisible && _cachedTextLabel1.Length > 0)
          {
            int widthLeft = (int)((float)_imageFocusedLeft.TextureWidth * ((float)_height / (float)_imageFocusedLeft.TextureHeight));
            int xoff = _textOffsetX1 + widthLeft;
    
            if (Disabled)
              _labelControl1.TextColor = _disabledColor;
            else
              _labelControl1.TextColor = _textColor1;
            _labelControl1.SetPosition(xoff + _positionX, _textOffsetY1 + _positionY);
            _labelControl1.TextAlignment = GUIControl.Alignment.ALIGN_LEFT;
            _labelControl1.FontName = _fontName1;
            _labelControl1.Label = _cachedTextLabel1;
            _labelControl1.Width = iWidth;
            _labelControl1.Render(timePassed);
          }
    
          // render the 2nd line of text on the button
          if (_imageNonFocusedMid.IsVisible && _cachedTextLabel2.Length > 0)
          {
            int widthLeft = (int)((float)_imageFocusedLeft.TextureWidth * ((float)_height / (float)_imageFocusedLeft.TextureHeight));
            int xoff = _textOffsetX2 + widthLeft;
    
            if (Disabled)
              _labelControl2.TextColor = _disabledColor;
            else
              _labelControl2.TextColor = _textColor2;
            _labelControl2.SetPosition(xoff + _positionX, _textOffsetY2 + _positionY);
            _labelControl2.TextAlignment = GUIControl.Alignment.ALIGN_LEFT;
            _labelControl2.FontName = _fontName1;
            _labelControl2.Label = _cachedTextLabel2;
            _labelControl2.Width = iWidth - 10;
            _labelControl2.Render(timePassed);
          }
          
          // if the GUIButton3PartControl has the focus
          if (Focus)
          {
            //render the focused images
            //if (_imageIcon!=null) GUIFontManager.Present();//TODO:not nice. but needed for the tvguide
            if (renderLeftPart) _imageFocusedLeft.Render(timePassed);
            _imageFocusedMid.Render(timePassed);
            if (renderRightPart) _imageFocusedRight.Render(timePassed);
            GUIPropertyManager.SetProperty("#highlightedbutton", _cachedTextLabel1);
          }
          else
          {
            //else render the non-focus images
            //if (_imageIcon!=null) GUIFontManager.Present();//TODO:not nice. but needed for the tvguide
            if (renderLeftPart) _imageNonFocusedLeft.Render(timePassed);
            _imageNonFocusedMid.Render(timePassed);
            if (renderRightPart) _imageNonFocusedRight.Render(timePassed);
          }
          base.Render(timePassed);
        }
     

    Eabin

    Retired Team Member
  • Premium Supporter
  • September 18, 2006
    465
    43
    thanks for looking into this. unfortunately your changes don't help with the flicker, but instead remove all TV Logos from the guide :(
    (i just replaced the method, and didn't try your core.dll)
     

    tourettes

    Retired Team Member
  • Premium Supporter
  • January 7, 2005
    17,301
    4,800
    Too bad, as it worked nicely on my dev PC :) Eabin, have you check what frame rates you are getting in the EPG screen when video is playing? One thought was that MP GUI engine is not able to keep with the 50fps "requirement" that comes from the HW accell codec. At least my dev PC the fps drops to 25 in EPG screen when video is playing.
     

    justinteract

    Member
    November 8, 2007
    95
    13
    Hamburg
    Home Country
    Germany Germany
    Hi guys,
    I think the source of the flickering problem is that the graphic card runs out of resources. I cant comment on nvidia, but with ATI cards since 7.11 ATI has done a great job using the cards ressources (UVD, shaders) in a way that you easily hit the limits, mainly on the 2x00 series.
    For example with drivers 7.10 and below I was able to play Blu-ray without reg tweaks (see AVS forum) with a CPU load of 10% on my HD2400pro. Now with the newer drivers the CPU maxes out AND the GPU is at its limits (thanks ATI, great job).

    The flickering problem that you see in MP is related to the load of the GPU (not the one shown by ATI tool monitoring). You can verify this using Cyberlink PDVD7 codec playing h.264 content (especially 720p content). Cyberlink uses already lots of resources from the CC (UVD). When you turn HW deinterlacing on (done with the shadres) you see all MP GUI elements flickering. When you turn it off, all flickering is gone.

    Time to upgrade to the 3x00 series :mad:
    (just wondering if they do this on purpose or if its their incompetent out-source cheaply paid developers)

    justinteractive
     

    Nobleware

    Portal Member
    March 5, 2008
    36
    1
    Rockingham, WA
    Home Country
    Sorry justinteract, but I am running 2 HD3200's here and have another HD3420 on another system, all suffering from the same issue. It's actually REALLY frustrating because the only codec I have found to be reliable is the PowerDVD. I have changed to MPV but this produces horrible blurring on pretty much anything except 1080i content. (still blurs but not as much)

    and FYI : I did not suffer from any stutter for the first 3 days of operation...
     

    rtv

    Retired Team Member
  • Premium Supporter
  • April 7, 2005
    3,622
    301
    Osnabruck
    Home Country
    Germany Germany
    Sorry justinteract, but I am running 2 HD3200's here and have another HD3420 on another system, all suffering from the same issue. It's actually REALLY frustrating because the only codec I have found to be reliable is the PowerDVD. I have changed to MPV but this produces horrible blurring on pretty much anything except 1080i content. (still blurs but not as much)

    and FYI : I did not suffer from any stutter for the first 3 days of operation...

    Just have a look at the first post here and install the drivers meantioned there - I guess you can figure out the links even if it is german.

    Those have been tested by some people (mainly AVS Forums) to work well.
     

    Users who are viewing this thread

    Top Bottom