Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 16, 2024 21:23

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Multi Texture Lookup
BeitragVerfasst: Fr Dez 13, 2013 15:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Wir erfinden da grade viele schöne Sachen (irgendwie hat Crytek das auch nicht zuende gedacht... aber hey, die verwenden ja auch SSAO :mrgreen: ), aber um nochmal auf die eigentliche Frage zurückzukommen.

Haben GPUs etwas analoges wie Cachelines auf CPUs? Sprich, spielt es eine Rolle wie man seine Befehle sortiert? Auf modernen CPUs wird ja z.B. erst auf einen Speicherlesevorgang gewartet, wenn das Zielregister auch benutzt wird, so dass man durch geschicktes Gruppieren einiges rausholen kann. Gibt es solche Effekte auch auf GPUs? Dann könnte man alle Texturlookups weit vorne machen, dann erstmal andere Berechnungen zwischenschieben und erst dann mit den Texturdaten arbeiten. Hab ich jetzt mal so gemacht, aber kaum einen messbaren Unterschied bemerkt.

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multi Texture Lookup
BeitragVerfasst: Fr Dez 13, 2013 17:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Martok hat geschrieben:
Gibt es solche Effekte auch auf GPUs? Dann könnte man alle Texturlookups weit vorne machen, dann erstmal andere Berechnungen zwischenschieben und erst dann mit den Texturdaten arbeiten. Hab ich jetzt mal so gemacht, aber kaum einen messbaren Unterschied bemerkt.

Solche Effekte gibt es auch auf GPUs. Habe mal irgendeinen Vortrag von Nvidia gehört, wo das erwähnt wurde (frag mich nicht nach nem Link, das ist schon 'ne Weile her). Dass du es nicht merkst, liegt wohl daran, dass der Treiber solche Optimierungen selbst vornimmt. Manchmal optimiert der Treiber sogar zu viel. Nämlich dann, wenn du einen Texturefetch nur unter einer bestimmten Bedingung ausführst und der Treiber die Wahrscheinlichkeit dafür, dass die Bedingung erfüllt ist, zu hoch einschätzt. Er wird den Texturefetch dann ganz an den Anfang schieben, auch wenn er unter Umständen nicht gebraucht wird - in der Hoffnung, dass es im Schnitt schneller ist. Verschätzt sich der Treiber hier, wird's durch diese "Optimierung" langsamer.

Du kannst ja mal probieren, ob du mit
Code:
  1. #pragma optimize(off)
einen Unterschied messen kannst.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.088s | 17 Queries | GZIP : On ]