Die Suche ergab 8095 Treffer

von Krishty
12.10.2010, 16:49
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++] catch zerstört Funktionsparameter
Antworten: 11
Zugriffe: 2710

Re: [C++] catch zerstört Funktionsparameter

Soo … Das Offset lässt sich nicht modifizieren. Ich habe lokale Variablen hinzugefügt, entfernt, volatile gemacht (soweit es ging – bei Referenzen ist es ja z.B. unmöglich), Code hinzugefügt und weggenommen – es bleibt immer bei 20 Bytes. Auch der AppVerifier meldet nur die Speicherzugriffsverletzun...
von Krishty
12.10.2010, 12:00
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++] catch zerstört Funktionsparameter
Antworten: 11
Zugriffe: 2710

Re: [C++] catch zerstört Funktionsparameter

Werde das ausprobieren, sobald ich zu Hause bin. Vorher aber eine Frage am Rande: Wie kommst du auf 14 Bytes?
von Krishty
12.10.2010, 10:23
Forum: Grafikprogrammierung
Thema: Kacheln rendern
Antworten: 13
Zugriffe: 1969

Re: Kacheln rendern

Der Performance-Einbruch beim Rendern in dieselbe Kachel ist ein interessantes Ergebnis ... wahrscheinlich liegst du damit, dass die hohe Konkurrenz blockiert, richtig -- aber wenn das geschieht, dann im Output-Merger beim Blenden und Schreiben der Farbwerte; nicht bei deren Berechnung. Dass die GPU...
von Krishty
11.10.2010, 21:27
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Template Plugin
Antworten: 18
Zugriffe: 2366

Re: Template Plugin

Moment mal – jetzt sehe ich erst, dass das Plugin ja seine eigene DLL verwaltet?!? Das kann und darf nicht sein, die DLL wird schließlich vor dem Plugin initialisiert und muss danach zerstört werden … oder verchecke ich hier was total? Mein Vorschlag wäre ein Wrapper um die Plugin-Klasse: class CPlu...
von Krishty
11.10.2010, 21:13
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Template Plugin
Antworten: 18
Zugriffe: 2366

Re: Template Plugin

Aber eigendlich ging es mir ja darum, dass wenn man nicht alle Ressourcen frei giebt vor der Zerstörung des PlugIns, dass das Programm nicht einfach abstürzen soll. Nein, ging es dir nicht: Wenn ich ein Objekt erzeugt habe, die Dll mit FreeLibrary frei gegeben habe aber das Objekt zuvor nicht zerst...
von Krishty
11.10.2010, 20:37
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Ja, die Optionen sind schon gut so. Mit den neuen Durchläufen sieht es auch schon viel deutlicher aus, klasse! Es ist noch anzumerken, dass die Funktion im Feldeinsatz u.U. nicht so schnell ist – z.B., wenn die Parameter Zwischenergebnisse sind und darum in der FPU liegen und erst zurück auf den Sta...
von Krishty
11.10.2010, 20:25
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Template Plugin
Antworten: 18
Zugriffe: 2366

Re: Template Plugin

Dein Fehler ist, dass du die DLL nach dem Laden des Plugins sofort wieder freigibst. Das ist ein fundamentales No-go. Behalt die DLL geladen, bis das Plugin zerstört wird – am besten als Member der Plugin-Verwaltungsklasse, vor dem Zeiger zur Schnittstelle deklariert, damit der Compiler automatisch ...
von Krishty
11.10.2010, 11:45
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Ja, der Code ist so in Ordnung. Bischl mickrig, der Gewinn … 10 % … es hätten schon mindestens 30 sein sollen. Optimierungseinstellungen vergessen? Full Optimization (/Ox) , Enable Function-Level Linking (/Gy) , Use Link-Time Code Generation (/LTCG) (auch bei Whole Program Optimization ) eingeschalt...
von Krishty
11.10.2010, 11:21
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Nun ist im Release ausgegeben, dass beide Methoden 0 Sekunden brauche... Perfekt! Jetzt baust du vor die Schleife eine volatile bool (das bedeutet, dass der Compiler Operationen auf diese bool ausführen muss , selbst, wenn sie überflüssig aussehen und verhindert, dass die Schleife als Ganzes wegopt...
von Krishty
11.10.2010, 11:18
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Ich hoffe du meintest das mit den 4mal in einer Schleife Vergleichen auch so.... :oops: Nein :) Der Compiler erkennt jetzt, dass alle vier Vergleiche genau dasselbe machen und optimiert drei davon weg. Du sollst immer vier unterschiedliche Vergleiche durchführen (z.B. auf i , i+1 , i+2 , i+3 ) und ...
von Krishty
11.10.2010, 10:44
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Du zählst die Zeit zum Erzeugen der Zufallszahlen mit; das ist Bockmist. Der Benchmark wird die Hälfte seiner Zeit in rand() verbringen, ein Drittel mit der Division durch scale und ein Sechstel mit den eigentlichen Vergleichen. Leg ein Array mit einem Vielfachen von vier als Größe an, füll es mit Z...
von Krishty
11.10.2010, 10:35
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 2059
Zugriffe: 685501

Re: Anti-Jammer-Thread

Im übrigen war ich überrascht, dass DirectX automatische Gamma-Korrektur anbietet, sowohl in den Linearraum via Sampler State D3DSAMP_SRGBTEXTURE, als auch zurück in den Monitorraum mittels Render State D3DRS_SRGBWRITEENABLE, ganz ohne exotische Texturformate. Ja, und das schon seit Radeon 9600 … w...
von Krishty
11.10.2010, 10:31
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

[…] aber dennoch hat mir diese kleine mehrtägige Suche nach den Speicherlecks soviel Spaß gemacht, dass ich C++ am liebsten nicht mehr anrühre. Du meinst Pufferüberläufe oder Zugriffsverletzungen, oder? Wäre ja ironisch, wenn sich jemand aus der Managed-Ecke über Speicherlecks beschweren würde ;) D...
von Krishty
11.10.2010, 10:26
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Doch, klar kannst du noch optimieren – nur, weil es im Benchmark nicht mehr schneller wurde muss es ja nicht automatisch auch in Real-Life-Situationen langsamer sein. Einen CPU-Befehl für quasi-Gleichheit gibt es nicht. Den Assembler-Code kannst du dir ansehen, indem du mit Debugging-Informationen k...
von Krishty
11.10.2010, 10:10
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Optimierung von Floatvergleichen
Antworten: 16
Zugriffe: 2933

Re: Optimierung von Floatvergleichen

Testaufbau und Compiler. Die zweite Methode hatte ich vor einiger Zeit in Assimp übernommen; da war sie bedeutend schneller. GCC hat Aliasing-Probleme im Optimizer, wenn man float zu int castet (dort muss man u.U. über union gehen); VC schluckt und optimiert ohne Mucken. Wahrscheinlich hatte dein Te...
von Krishty
10.10.2010, 16:40
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++] catch zerstört Funktionsparameter
Antworten: 11
Zugriffe: 2710

Re: [C++] catch zerstört Funktionsparameter

Der vereinfachte Code sieht relativ einfach aus: template < typename IShader > class TCShader : private COM::TIReference<IShader> { … public: static // named constructor TCShader<IShader> Cached( ::ID3D11Device & ItsGPU, CUTF8String const & ItsSourceFilesPath, CASCIICharacter const ItsEntryP...
von Krishty
10.10.2010, 15:34
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: (erledigt)[C++] catch zerstört Funktionsparameter
Antworten: 11
Zugriffe: 2710

(erledigt)[C++] catch zerstört Funktionsparameter

Erledigt  — es handelt sich um einen Compiler-Bug, der in catch -Blöcken auftritt, wenn lokale Variablen genutzt werden, die Ausrichtung erfordern (also __declspec(align(#)) -dekoriert sind). Es wird empfohlen, bei solchen Funktionen /Og per #pragma optimize zu deaktivieren oder die Funktionsparame...
von Krishty
10.10.2010, 12:50
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

Verdammt. Ich habe einen Speicherfehler … den ersten seit einer Ewigkeit … die Adressen meiner Funktionsparameter (und wirklich nur deren, nicht etwa auch die der lokalen Variablen) verschieben sich um 20 Bytes, sobald in einer Funktion eine Exception geworfen wurde (was für den Inhalt der Parameter...
von Krishty
09.10.2010, 16:15
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

Hey, heute könnte ein neuer Rekordtag werden … Der GPU Shader Analyzer kompiliert meine Shader ohne zu zicken, allerdings etwa 10× langsamer als meine Anwendung (die braucht „nur“ zwei statt 20 Minuten). Allerdings gibt es noch einen pikanten Unterschied: Der GPU Shader Analyzer ist immer erfolgreic...
von Krishty
09.10.2010, 15:38
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

DWORD WINAPI SetFilePointer( __in HANDLE hFile, __in LONG lDistanceToMove, __inout_opt PLONG lpDistanceToMoveHigh, __in DWORD dwMoveMethod ); HANDLE WINAPI CreateFileMapping( __in HANDLE hFile, __in_opt LPSECURITY_ATTRIBUTES lpAttributes, __in DWORD flProtect, __in DWORD dwMaximumSizeHigh, __in DWO...
von Krishty
09.10.2010, 14:55
Forum: Algorithmen und Datenstrukturen
Thema: Radiosity
Antworten: 10
Zugriffe: 6599

Re: Radiosity

Außerdem liegt das Ergebnis der Radiosity im linearen Farbraum vor – auch das darf man nicht vergessen, insbesondere bei den Reflexionseigenschaften. Die erwähnten Werte von 0,00001 entsprechen einer empfundenen Helligkeit von fast einem Prozent bzw. zwei Stufen in einer 8-Bit-sRGB-Textur, womit sie...
von Krishty
09.10.2010, 05:25
Forum: Grafikprogrammierung
Thema: Quadrate mit mehr als zwei Triangles bauen oder nicht?
Antworten: 4
Zugriffe: 1087

Re: Quadrate mit mehr als zwei Triangles bauen oder nicht?

Ja; heutzutage kann man sich das eh besser direkt von der Hardware aus einer Heightmap raustesselieren lassen.
von Krishty
09.10.2010, 04:46
Forum: Grafikprogrammierung
Thema: Quadrate mit mehr als zwei Triangles bauen oder nicht?
Antworten: 4
Zugriffe: 1087

Re: Quadrate mit mehr als zwei Triangles bauen oder nicht?

Üblicherweise sind zwei Dreiecke ausreichend; mit pro-Pixel-Beleuchtung sollten das verzerrungsfrei sein. Falls das Quadrat eine gewölbte Oberfläche annähern soll, muss aber u.U. weiter unterteilt oder gleich auf Normal-Maps zurückgegriffen werden (denn die Beleuchtung wird zwar pro Pixel durchgefüh...
von Krishty
09.10.2010, 02:06
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Mehrere libs in einer Dll zusammenfassen
Antworten: 6
Zugriffe: 937

Re: Mehrere libs in einer Dll zusammenfassen

Ah, okay – das klang nur erst so, als ob da jedes Fitzelchen dynamisch exportiert werden sollte. Potentiell dumme Frage, aber: wird auch jede Deklaration, die aus der Lib übernommen werden soll – jetzt mit __declspec(dllexport) davor – tatsächlich in irgendeinem Modul der DLL geparst (also, von eine...
von Krishty
09.10.2010, 01:27
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

Zurücklehnen? Nix da! Du wirst mir schön unter die Arme greifen, wenn meine Mathematik auf Siebtklässlerniveau nicht mehr ausreicht. GPU Shader Analyzer verweigert Statistiken nicht ab einer bestimmten Anzahl von Befehlen, sondern ab einer bestimmten Anzahl von Synchronisationsoperationen. Danach bl...
von Krishty
09.10.2010, 01:23
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Mehrere libs in einer Dll zusammenfassen
Antworten: 6
Zugriffe: 937

Re: Mehrere libs in einer Dll zusammenfassen

Dynamisch gelinkte Funktionen haben fast nur Nachteile gegenüber statisch gelinkten. Wozu die ganze Chose – nur aus Faulheit? In diesem Fall hat Visual C++ eine Funktion Link Library Dependencies , womit Libs automatisch gelinkt werden, falls deren Projekte in der Lösung als Abhängigkeit des aktuell...
von Krishty
08.10.2010, 15:58
Forum: Grafikprogrammierung
Thema: Kacheln rendern
Antworten: 13
Zugriffe: 1969

Re: Kacheln rendern

Discard war zu D3D9-Zeiten immer ein ähnlicher Performance-Killer wie manuelle Z-Writes. Solange man nicht knapp bei Bandbreite ist, dürfte die Transparenz besser wegkommen … aber vllt hat sich da ja auch in den letzten Jahren was getan, ich weiß es nicht.
von Krishty
08.10.2010, 15:31
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

Es geht halt nicht anders! Ohne sieht man Sonne und Mond schlicht und einfach nicht, weil sie zu klein sind. Gauss sieht völlig beknackt aus. Und ein Näherungsfilter, der einen genügend großen Bildbereich einschließt, kommt selbst mit Downsampling-bedingtem Zittern, Flackern und Aliasing auf nicht m...
von Krishty
08.10.2010, 15:05
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7534
Zugriffe: 1492320

Re: Jammer-Thread

Der Shader-Compiler ist echt verrückt. Auf höchster OptimierungsStufe braucht er 20 min pro Shader (!) und das Resultat ist dasselbe wie ohne Optimierung (10 s). AMDs GPU ShaderAnalyzer hört irgendwie ab 320 Instruktionen auf, Statistiken anzuzeigen. Und warum müssen diese Butterfly-Diagramme so ver...
von Krishty
08.10.2010, 01:01
Forum: Allgemeines Talk-Brett
Thema: Anti-Jammer-Thread
Antworten: 2059
Zugriffe: 685501

Re: Anti-Jammer-Thread