Working with dirty regions - Das XBMC wird schneller

  • Ein paar von euch erinnern sich vielleicht noch daran, dass in 2010 topfs2 an einem "XBMC auf Beagle-Boards" gearbeitet hat.
    Durch die extrem schwache Hardware wurde eine Menge Optimierungen fällig.
    Eine davon ist das "dirty region rendering"...

    Dirty Region Rendering:

    Externer Inhalt xbmc.org
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Auf diesem Bild wurde eine Wechsel vom "Browse"-Button zum "Add"-Button ausgeführt.
    XBMC Render-Engine schiebt munter den gesamten Frame bei einer Auflösung von 1920x1080 30x in der Sekunde in die GPU, um diese kleine Animation darzustellen.
    Genau genommen wird jeder Pixel mehrfach gerendert, da es ja diverse Layer in einem Skin zu verarbeiten gibt. Transluzenz haut dann noch mal ordentlich was drauf.
    In diesem Beispiel wird jedes Pixel 4x gerendert. Das macht dann rund 1GB(!) an Daten für eine Animation, die 0,5 Sekunden lang ist.
    Und, nicht vergessen, nach der Animation wird diese Menge durchgehend weiter geschaufelt, da es ja keine statische Oberfläche ist.

    Und da kommen die dirty-regions in Spiel. Hier wird nur gerendert, was auch verändert wurde. Ähnlich einer guten Videocodierung.
    Somit wird nur der anmierte Bereich verarbeitet. Das macht dann in der Summe: 16MB. Bei einem Standbild ist es 0-komma-nix.

    Interesse?
    Es wird ein extrem aktuelles XBMC benötigt. "Bleeding Edge".
    Einen Eintrag in der [definition='2','1']advancedsettings[/definition].xml.

    Und wenn ihr sehen wollt, an welcher Stelle gerade gerendert wird, muss der Eintrag
    <visualizedirtyregions>
    auf "true" gesetzt werden.

    Quelle

    P.S.:
    Ein user meldet, dass die CPU-Last jetzt beim navigieren geringer ist als bei Standbildern 8)

    Zitat

    weird, the cpu usage is actually less when moving in the gui then when idle:ing...

  • echt schade das es nicht auch mit XBMC 10.1 geht.
    Ich hoffe mal stark das die das noch standardmäßig ins XBMC einbauen. Oder hat es unter bestimmten Konstellationen irgendwelche Nachteile ?

    Bin echt am überlegen nur deswegen XBMC Edge zu installieren. Denn das hört sich einfach viel zu verlockend an. Da fragt man sich nur warum bisher noch keiner auf die Idee gekommen ist das so umzuschreiben :thumbup:

    Amazon Fire TV 4k | KODI 17.X
    HTPC: ASUS F2A85-M LE | A6-5400K | 4GB DDR3-1866 | 128GB SSD | Windows 10 64 bit | KODI 17.X
    AVR: Onkyo TX-NR509 5.1 + Teufel Consono 35
    TV: Samsung UE55ES6300 55"
    FB: Harmony 785

    Wo finde ich das xbmc.log File?

    Wer einen Rechtschreibfehler findet darf ihn behalten !

  • Sehr schön, das werde ich selbstverständlich sofort bei mir umsetzen. :thumbup:

    [edit]Ah verdammt, mein Build vom 17.06. ist anscheinend noch zu alt. :(
    Da muss ich mich wohl noch ein klein wenig gedulden.[/edit]

    Einmal editiert, zuletzt von -BS- (20. Juni 2011 um 12:05)

  • Wie kriege ich denn eigentlich mein 10.1 Linux auf ne aktuelle version?

    Apt get UPDATE reicht net aus :(

    XBMC 16.1 / ConfluenceMod 4.2 / UBUNTU / Asrock ION330 / Harmony ONE / FLIRC / CoolstreamNEO @ (NeutrinoHD) / YATSE xbmc-remote-app @ Galaxy Note4 @ (AND 5.1.1) @ Samsung Galaxy Tab 4 10.1@AND 5.0.1 @ xbmc16.2 beta Android

  • Und in ganz?

    XBMC 16.1 / ConfluenceMod 4.2 / UBUNTU / Asrock ION330 / Harmony ONE / FLIRC / CoolstreamNEO @ (NeutrinoHD) / YATSE xbmc-remote-app @ Galaxy Note4 @ (AND 5.1.1) @ Samsung Galaxy Tab 4 10.1@AND 5.0.1 @ xbmc16.2 beta Android

  • OK, da hab ich mich falsch ausgedrückt, sorry. Nicht das LINUX, sondern XBMC unter Linux von 10.1 zu aktueller Version.

    XBMC 16.1 / ConfluenceMod 4.2 / UBUNTU / Asrock ION330 / Harmony ONE / FLIRC / CoolstreamNEO @ (NeutrinoHD) / YATSE xbmc-remote-app @ Galaxy Note4 @ (AND 5.1.1) @ Samsung Galaxy Tab 4 10.1@AND 5.0.1 @ xbmc16.2 beta Android

  • Code
    sudo add-apt-repository ppa:mario-sitz/ppa
    sudo apt-get update
    sudo apt-get dist-upgrade

    Das ist jetzt zwar nicht das offizielle Repo von Team XBMC, aber ich finde es am besten.

    Offizielles Repo:

    Code
    sudo add-apt-repository ppa:team-xbmc/unstable

    Such dir eins von beiden aus, aber nicht beide gleichzeitig verwenden. ;)

  • so ich teste das jetzt mal mit der XBMC Version für Windows mal gespannt was bei raus kommt.
    Aber erst mal Backup machen. Damit ich auch sicher wieder zurück zum jetzigem Stand komme :thumbup:

    EDIT: Neue Version installiert gestartet ca 30 sec ging die Tastatur und FB seid dem nicht mehr keine Reaktion mehr vom XBMC :wacko:
    Habe schon X mal neugestartet jetzt lasse ich ihn mal paar Minuten so stehen vielleicht installiert er ja was im Hintergrund oder so.
    Hat jemand eine Idee ?

    EDIT2: Nachdem ich nicht nur XBMC sondern den ganzen HTPC neu gestartet hatte ging es wieder für ca 30 sec und danach erneut keine Eingabe mehr über FB oder Tastatur möglich XBMC Reagiert auf nix mehr als wäre es komplett eingefroren :thumbdown:
    Ich denke mal das liegt an der Night Version vom 20.06 :thumbdown:

    EDIT3: und wieder das Gleich der Fehler ist bei mir zu 100% Reproduzierbar. Aber das was ich eigentlich testen wollte klappt soweit ganz gut mit dem Rendern. Nur ich habe immer einen fast roten Rechteckigen Balten im Bild mal links mal rechts der geht nicht weg. Der Rest des Bildes wird nur bei Bedarf geladen. Da sieht man dann auch von Rot bis Grün alles. Sehr seltsam ...

    EDIT4: habe nun das Night vom 19.06 installiert und habe jetzt keine Abstürze mehr (zumindest bisher) FB und Tastatur gehen nun seid mehreren Minuten ohne Probleme. Allerdings bleibt der fast rote Kasten weiterhin im Bild. Allerdings werde ich die Einfärbung nun wieder abschalten. Das ist zwar zum testen optimal aber auf dauer nervig im Alltagsbetrieb.


    EDIT5: MIST auch die Version vom 19.06 bleibt bei mir einfach hängen. Aber immerhin dauert es etwas länger als bei der Version vom 20.06. Dennoch nicht Praktikabel. Echt schade das diese Version zumindest für Windows nicht benutzbar sind :thumbdown:

    Mein Fazit echt Hammer diese Funktion man muss nur darauf achten, dass man ein Funktionierenden Nightbuild erwischt. Für Windows Ist mir das leider bisher nicht geglückt. Wenn jemand eine Findet bitte bescheid sagen :thumbup:
    Noch eine Frage an alle anderen Test was habt ihr da genau eingetragen in die Advancedsettings.xml 1 oder 2 ?
    Ich gehe wieder zurück zu XBMC 10.1 bis jemand eine stabile NightbuildVersion gefunden hat mit der diese schöne und Sinnvolle Spielerei verwendbar ist.

    PS: Habe es jetzt einfach über meine existierende 10.1 Version drüber installiert. Werde es die Tage nochmal getrennt installieren und schauen ob dann die selben Fehler auftreten. Aber jetzt habe ich keine nerven mehr dazu.

    Amazon Fire TV 4k | KODI 17.X
    HTPC: ASUS F2A85-M LE | A6-5400K | 4GB DDR3-1866 | 128GB SSD | Windows 10 64 bit | KODI 17.X
    AVR: Onkyo TX-NR509 5.1 + Teufel Consono 35
    TV: Samsung UE55ES6300 55"
    FB: Harmony 785

    Wo finde ich das xbmc.log File?

    Wer einen Rechtschreibfehler findet darf ihn behalten !

    7 Mal editiert, zuletzt von keibertz (21. Juni 2011 um 00:45)

  • Irgendwie funktioniert es bei mir nicht. ;(

    Meine [definition='2','1']advancedsettings[/definition].xml sieht so aus:

    Code
    <[definition='2','1']advancedsettings[/definition]>
    	<gui>
    		<algorithmdirtyregions>1</algorithmdirtyregions>
    		<visualizedirtyregions>true</visualizedirtyregions>
    	</gui>
    </[definition='2','1']advancedsettings[/definition]>

    Vielleicht muss ich mal zum offiziellen Repo wechseln.

    [edit]Selbst mit dem offiziellen Repo bekomme ich es nicht gebacken, vergesse ich vielleicht irgendetwas?[/edit]

    Einmal editiert, zuletzt von -BS- (21. Juni 2011 um 12:43)

  • Danke f, habe meinen Fehler in der xml gefunden. Es hatte sich ein klitzekleiner Fehler eingeschlichen, den ich doch glatt übersehen habe. :whistling:

    So und jetzt wechsle ich wieder zum anderen Repo. Nur eine Frage noch, welchen Algorithmus sollte man verwenden, "1" oder "2"?

    [edit]Hab die Antwort schon gefunden:

    Zitat von topfs2

    One note I’d like to bring is for all testing, I would like to suggest you to use algorithm 1 (union), its a very cheap algorithm and its the one which is most likely best for normal hardware. The cost reduction algorithm (2) was made mostly as a test and the costs are made for the very slow gpu of the beagleboard c4, hence it will most likely not be ideal for more modern GPUs (may in fact be worse).

    We will most likely revisit and make the cost reduction at a later state be more dynamic and overall I’m not happy with the algorithm and will investigate doing an A* search for solving instead, as its sure to find optimal regions. But before that we need to have a way to find the costs, which involves benchmarks of the hardware, this is _not_ implemented yet and will take a lot of time before we are there, as such consider algorithm 2 as academic.

    [/edit]

    Einmal editiert, zuletzt von -BS- (21. Juni 2011 um 13:15)

  • ah super danke das hatte ich mich gestern auch gefragt ob ich algo 1 oder 2 verwenden sollte. Hatte aber glaube ich algo 1 verwendet weil der als standart im Wiki stand und ich das nicht geändert habe. Faulheit siegt eben doch :thumbup:

    EDIT: Ahhhhh jetzt friert mir XBMC 10.1 auch ein. Zum Glück habe ich vorher ein Vollständiges Backup gemacht. Denke ich deinstalliere mal alles und versuche dann nochmal die Night Versionen durch. Denke mal das da beim andauernden drüber installieren einiges durcheinander gekommen ist.

    EDIT2: Also XBMC 10.1 läuft jetzt wieder ganz normal aber XBMC 11 habe ich nicht stabil zum laufen bekommen mit keiner der Nightbuilds die ich versucht habe. Echt schade ...

    EDIT3: Es hat mir ja dann doch keine Ruhe gelassen. Habe jetzt Parallel zu XBMC 10.1 noch den neuesten Nightbuild von heute installiert. Dort einen anderen Skin eingestellt und bisher läuft es. Mal sehen wie lange ...

    Amazon Fire TV 4k | KODI 17.X
    HTPC: ASUS F2A85-M LE | A6-5400K | 4GB DDR3-1866 | 128GB SSD | Windows 10 64 bit | KODI 17.X
    AVR: Onkyo TX-NR509 5.1 + Teufel Consono 35
    TV: Samsung UE55ES6300 55"
    FB: Harmony 785

    Wo finde ich das xbmc.log File?

    Wer einen Rechtschreibfehler findet darf ihn behalten !

    3 Mal editiert, zuletzt von keibertz (21. Juni 2011 um 20:30)

  • "Das xbmc wird schneller" :) ja sogar sehr schnell ... geht gar nix mehr :)

    testen wollte ich das auf dem Joggler (weil hier ist ein Performance Schub nie verkehrt).
    Weiter oben hat -BS- zwei Repos gepostet. Beide habe ich installieren können mit einem new/frischen OS ubuntu 10.10 und sauberem userdata. Beide haben auch gestartet nur nach 2 sec. war Schluss (keine Reaktion mehr seitens xbmc, totaler freeze). schade :( Und an der neuen Confluence Oberfläche liegt es nicht, da habe ich xbmc auch mal mit meinem Joggler-Skin gestartet.

    wo finde Ich die xbmc.[definition='1','0']log[/definition] unter ubuntu ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!