Dirty regions

From XBMC
Revision as of 22:58, 26 February 2012 by Ned Scott (Talk | contribs)
Jump to: navigation, search

Enabling dirty regions can help speed up the GUI in XBMC and decrease the demand on your CPU and GPU. Dirty regions has no effect during video playback unless there are GUI elements (on screen buttons) visible. The video itself is unaffected by these settings. For more information see: Working with dirty regions


Using dirty regions requires a pre-Eden nightly build of XBMC.


1. Create a text document and save it as advancedsettings.xml (or edit the existing one if you've already made it)
2. Cut and paste the following into your new advancedsettings.xml file:
<advancedsettings>
 <gui>    
   <algorithmdirtyregions>1</algorithmdirtyregions>
   <nofliptimeout>1000</nofliptimeout>
 </gui>
</advancedsettings>
3. Place your advancedsettings.xml file in your userdata folder.
4. Done!

Technical notes

From the advancedsettings.xml page:


<algorithmdirtyregions>

Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn't changed, big speed gains can be seen. Because all GPUs work differently, only Mode 3, combined with nofliptimeout=0, is guaranteed to be safe for everyone, but current timing issues with nofliptimeout keep this from being the default.

value result description
0 Off The entire viewport is always rendered.
1 Union All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.
2 Cost reduction Each dirty region is presented separately, in as many passes as there are regions.
3 Whole Screen The entire screen is rendered if there are any dirty regions. This, combined with nofliptimeout is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). Default

Example:

<gui>    
  <algorithmdirtyregions>1</algorithmdirtyregions>
</gui>


<nofliptimeout>

Specifies the timeout in milliseconds after which XBMC will not flip the graphics buffers anymore when nothing has been rendered, this lowers both CPU and GPU usage.

Example:

<gui>    
  <nofliptimeout>1000</nofliptimeout>
</gui>
Personal tools
Namespaces
Variants
Actions
Navigation
Wiki help
Google Search
Toolbox