[DX9] UpdateTexture - Merkwürdiges Problem
[DX9] UpdateTexture - Merkwürdiges Problem
Hallo Community,
ich habe ein merkwürdiges Problem. Wozu ich das ganze benötige, will ich jetzt hier nicht so ausschweifend erklären, denn es tut bei dem Problem ansich nichts zur Sache.
Ich bin auf ein merkwürdiges Problem mit der UpdateTexture Funktion des D3D9-Device gestoßen und zwar:
Ich versuche eine Texture von einer Source auf eine Destination-Textur zu kopieren (mit UpdateTexture), das klappt auch.
Versuche ich aber mit einem 2. UpdateTexture Aufruf die GLEICHE Source-Texture auf eine 2. Dest-Textur zu kopieren, wird nichts mehr kopiert. Und zwar von diese Source-Textur NIE mehr.
Um Fragen vorzubeugen: Alle Texturen haben das selbe Format, die Source liegt, wie es sein soll im System-Mem, die beiden Dest im Default-Mem.
Weiß das jemand was drüber?
ich habe ein merkwürdiges Problem. Wozu ich das ganze benötige, will ich jetzt hier nicht so ausschweifend erklären, denn es tut bei dem Problem ansich nichts zur Sache.
Ich bin auf ein merkwürdiges Problem mit der UpdateTexture Funktion des D3D9-Device gestoßen und zwar:
Ich versuche eine Texture von einer Source auf eine Destination-Textur zu kopieren (mit UpdateTexture), das klappt auch.
Versuche ich aber mit einem 2. UpdateTexture Aufruf die GLEICHE Source-Texture auf eine 2. Dest-Textur zu kopieren, wird nichts mehr kopiert. Und zwar von diese Source-Textur NIE mehr.
Um Fragen vorzubeugen: Alle Texturen haben das selbe Format, die Source liegt, wie es sein soll im System-Mem, die beiden Dest im Default-Mem.
Weiß das jemand was drüber?
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Rückgabewerte? Fehlercodes? Steht was im DirectX-Debug-Log? Die sind normalerweise sehr geschwätzig, damit sollte sowas zu finden sein. Wird wirklich nichts kopiert? Oder siehst Du evtl. nur nichts davon, weil Du aus Versehen noch ein Lock drauf hast oder der Inhalt sich inzwischen geändert hat?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Keine Fehlermeldungen, keine Logs, keine Rückgabewerte. Nein es wird wirklich nichts kopiert. Das funktioniert danach mit einer anderen Textur als Source - aber wieder nur als kopie auf EINE der Dest-Texturen. Danach nicht mehr.
Kein Lock nichts. Ach und: Im PIX, der ja einen Ref-Renderer nimmt funzt das.
Nur nicht als HAL-Device.
Kein Lock nichts. Ach und: Im PIX, der ja einen Ref-Renderer nimmt funzt das.
Nur nicht als HAL-Device.
- Schrompf
- Moderator
- Beiträge: 5045
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Mein Beileid. Wenn ich gemein wär, würde ich jetzt sagen: kauf Dir ne NVidia-Grafikkarte, da passiert sowas nicht. Allerdings sähe das ganz schön blöd aus, wenn es schon ne NVidia ist :-) Lösungsideen habe ich keine mehr.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [DX9] UpdateTexture - Merkwürdiges Problem
PIX nimmt Ref nur, wenn man es explizit einstellt. Alles andere läuft genau so über die GPU wie im Programm selber auch. (So ist das zumindest unter D3D >=10). Was jedoch bei mir in PIX ständig andere Ergebnisse produziert als in der Anwendung, ist Anti-Aliasing …DomiOh hat geschrieben:Ach und: Im PIX, der ja einen Ref-Renderer nimmt funzt das.
Gruß, Ky
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Es passiert sowohl bei einer NVidia 8xxx als auch bei einer ATI 4850 und einer ATI 6850 und einer ATI 6950.Schrompf hat geschrieben:Mein Beileid. Wenn ich gemein wär, würde ich jetzt sagen: kauf Dir ne NVidia-Grafikkarte, da passiert sowas nicht. Allerdings sähe das ganz schön blöd aus, wenn es schon ne NVidia ist :-) Lösungsideen habe ich keine mehr.
-
- Establishment
- Beiträge: 130
- Registriert: 01.03.2009, 14:21
- Alter Benutzername: frittentuete
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Hi,
Wäre nen Versuch wert, einfach source-tex->UpdateDirtyRect(NULL); vor der zweiten UpdateTexture().
Dirk Schulz
Da du zweimal dieselbe Source-Textur nimmst, kann es sein, dass er damit Probleme hat bzw. keine Änderung zum letzten Update feststellt?! :?:IDirect3DDevice9::UpdateTexture retrieves the dirty portions of the texture by calculating what has been accumulated since the last update operation.
Wäre nen Versuch wert, einfach source-tex->UpdateDirtyRect(NULL); vor der zweiten UpdateTexture().
Dirk Schulz
- dot
- Establishment
- Beiträge: 1745
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Das dürfte sogar ziemlich sicher das Problem sein dass du das vergessen hast. Die Funktion heißt AddDirtyRect(). Source->AddDirtyRect(0); sollte das Problem beheben...
Re: [DX9] UpdateTexture - Merkwürdiges Problem
Ja, das habe ich vergessen. Bin zwar inzwischen selbst drauf gekommen und wollte gerade GELÖST schreiben, aber dennoch danke.
In letzter Zeit arbeite ich mehr mit DX10. Da scheint es sowas wie ein DirtyRect ja nicht mehr zu geben ;)
Daher hatte ich das schlicht und einfach vergessen.
In letzter Zeit arbeite ich mehr mit DX10. Da scheint es sowas wie ein DirtyRect ja nicht mehr zu geben ;)
Daher hatte ich das schlicht und einfach vergessen.