[DX 10] Textureproblem

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

[DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:19, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Du kannst keine Textur zwischen CPU und GPU teilen. Weil das unter D3D9 einer der häufigsten Bottlenecks war, wurde eingeführt, dass du zwei Texturen brauchst: Eine dynamische Textur auf der GPU und eine Staging-Textur. Du füllst die Staging-Textur (erzeugt mit D3D10_USAGE_STAGING und CPU-Access) mit der CPU und kopierst ihren Inhalt in die GPU-Textur, sobald es nötig ist. Auf die Art und Weise muss das Rendering niemals mit der CPU synchronisiert werden.

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:20, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Staging-Texturen können selbstverständlich auch nicht als Shader-Resourcen gebunden werden ;)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:19, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

D3D10_BIND_SHADER_RESOURCE muss zu 0 umgeändert werden.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:19, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:19, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:18, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:17, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Aramis »

Ok ich nehme an wir haben nun erfolgreich eine Textur manuell angelegt aber wie bekommen
wir die nun in den Graphikkartenspeicher zur Verwendung als Resource.
Rumheulen bringt nichts .. aber Krishty hat die Frage bereits weiter oben beantwortet. Vielleicht hilft das schon eher, ich weiß es nicht.
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:17, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:17, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Ich sage dazu ID3D10Device::CopyResource() oder ID3D10Device::CopySubresourceRegion().
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:16, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:12, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

D3D10_BIND_SHADER_RESOURCE. Falls das nicht hilft, in den Debug-Output schauen – der sagt normalerweise auch, warum eine Funktion fehlschlägt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:18, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:14, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Du kannst auch den „Ändern“-Button benutzen, statt für jede Kleinigkeit Doppel- und Dreifach-Posts anzulegen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:13, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Wenn du nur eine Bilddatei in den Speicher laden möchtest, die sich später nicht mehr ändert, geht das schneller und einfacher ohne Staging und mit den Initial-Data bei CreateTexture2D.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:13, insgesamt 2-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Ganz abgesehen vom Sinn und Unsinn, Abstraktion über den Haufen zu werfen – wenn du Initial-Data angibst ist das auch eine Frickelei mit Bytes, nur, dass die GPU Texturen, die bei ihrer Initialisierung gefüllt und dann nie wieder angetastet werden („immutable“), auch schneller managen kann.

Übrigens verarbeitet Direct3D deine Texturen auch wieder ganz anders, als du sie in eine gelockte Textur kopierst.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:16, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Jörg »

exploid hat geschrieben:...werde ich das für mich ablehnen und die Bits und Bytes suchen um "die Wahrheit zu sehen".
...die sich aber oft hinter Vetraulichkeitsvereinbarungen verbirgt. Fuer einige Architekturen findest Du veroeffentlichte Dokumente, aber leider nicht fuer alle. Dort hinein musst Du schauen, wenn Du wissen willst, was 'unten' auf der HW abgeht. Dann kommst Du vor lauter lesen aber kaum mehr dazu, was schickes zu coden ;)
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:12, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
Zuletzt geändert von exploid am 04.11.2010, 14:14, insgesamt 1-mal geändert.
All your base are belong to us! Justice
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [DX 10] Textureproblem

Beitrag von Krishty »

Hier habe ich übrigens noch ein altes Code-Snippet, wie man Texturen direkt aus Pixeldaten im RAM erzeugt … falls es nützlich ist, schön … falls nicht, sorry, dass ich MS zur Weltherrschaft verhelfe.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
exploid
Establishment
Beiträge: 146
Registriert: 21.08.2005, 18:33

Re: [DX 10] Textureproblem

Beitrag von exploid »

...
All your base are belong to us! Justice
Antworten