[DX9] Grafikfehler bei Release Kompilierung
Verfasst: 22.07.2009, 23:39
Aloah!
Ich habe ein merkwürdiges Problem wo ich nicht weiß woran das Problem liegen könnte.
Ich habe eine Sprite Engine in DX9 geschrieben.
Als Textur verwende ich ein PNG(Teilausschnitt siehe unten[ist jpg da das PNG in einem Archiv-File drinne ist und ich es zur Zeit nicht extrahieren kann]) mit wo die Frames von einer Animation oder auch stillstehende Sterne drinne sind.
Ich habe für jede Textur einen eigenen dynamischen Vertexbuffer. Die grundsätzliche Positionierung/Orientierung der Sprites mache ich per Hand und schicke die dann in den VB. Somit muss ich für jede Textur nur einen Drawcall aufwenden und keine Matrizen neu setzen(ist nach mehrern Versuchen die schnellste Option die ich gefunden habe für viele Sprites auf dem Bildschirm). Die Transformation und das rendern ist hierbei in einem anderen Thread ausgelagert.
Jetzt zum Problem:
Ich benutze VS2008, im Moment die Release DX-DLLs und wenn ich mit Debug-Einstellungen kompiliere ist auch alles wunderbar(siehe unten). Wenn ich nun aber mit Release-Einstellungen kompiliere hat ein Stern Probleme mit seinen (Textur-)koordinaten und das noch viel merkwürdigere aus meiner Sicht ist:
Wenn ich 171 Sterne oder weniger darstelle passiert dieser Fehler nicht - ab 172 Sternen tritt dieser Fehler aber auf?! Wenn ich noch mehr Sterne nehme ist immer der letzte Stern hiervon betroffen, alle vorherigen aber nicht.
Einen zu kleinen VB kann ich ausschließen da dieser nicht an die Sternanzahl gekoppelt ist und ausreichend groß sein sollte. Ein Problem mit dem Multithreading kann ich nach aktuellem Erkenntnissstand auch ausschließen - selbst mit D3DCREATE_MULTITHREADED tritt dieser Fehler auf aber bisher gehe ich davon aus das ich den Multithreaded Parameter nicht brauche, deshalb lasse ich ihn weg.
Über Hilfe würde ich mich freuen :)
Ich habe ein merkwürdiges Problem wo ich nicht weiß woran das Problem liegen könnte.
Ich habe eine Sprite Engine in DX9 geschrieben.
Als Textur verwende ich ein PNG(Teilausschnitt siehe unten[ist jpg da das PNG in einem Archiv-File drinne ist und ich es zur Zeit nicht extrahieren kann]) mit wo die Frames von einer Animation oder auch stillstehende Sterne drinne sind.
Ich habe für jede Textur einen eigenen dynamischen Vertexbuffer. Die grundsätzliche Positionierung/Orientierung der Sprites mache ich per Hand und schicke die dann in den VB. Somit muss ich für jede Textur nur einen Drawcall aufwenden und keine Matrizen neu setzen(ist nach mehrern Versuchen die schnellste Option die ich gefunden habe für viele Sprites auf dem Bildschirm). Die Transformation und das rendern ist hierbei in einem anderen Thread ausgelagert.
Jetzt zum Problem:
Ich benutze VS2008, im Moment die Release DX-DLLs und wenn ich mit Debug-Einstellungen kompiliere ist auch alles wunderbar(siehe unten). Wenn ich nun aber mit Release-Einstellungen kompiliere hat ein Stern Probleme mit seinen (Textur-)koordinaten und das noch viel merkwürdigere aus meiner Sicht ist:
Wenn ich 171 Sterne oder weniger darstelle passiert dieser Fehler nicht - ab 172 Sternen tritt dieser Fehler aber auf?! Wenn ich noch mehr Sterne nehme ist immer der letzte Stern hiervon betroffen, alle vorherigen aber nicht.
Einen zu kleinen VB kann ich ausschließen da dieser nicht an die Sternanzahl gekoppelt ist und ausreichend groß sein sollte. Ein Problem mit dem Multithreading kann ich nach aktuellem Erkenntnissstand auch ausschließen - selbst mit D3DCREATE_MULTITHREADED tritt dieser Fehler auf aber bisher gehe ich davon aus das ich den Multithreaded Parameter nicht brauche, deshalb lasse ich ihn weg.
Über Hilfe würde ich mich freuen :)