Die Suche ergab 8095 Treffer
- 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...
- 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?
- 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...
- 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...
- 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...
- 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...
- 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 ...
- 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...
- 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...
- 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 ...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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.
- 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...
- 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...
- 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...
- 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...
- 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.
- 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...
- 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...
- 08.10.2010, 01:01
- Forum: Allgemeines Talk-Brett
- Thema: Anti-Jammer-Thread
- Antworten: 2059
- Zugriffe: 685501
Re: Anti-Jammer-Thread
Ich implementiere eine FFT im Compute-Shader, um im Tonemapping-Operator Brechung und Streuung an Wimpern, Pupille und in der Augenflüssigkeit zu simulieren – so ;)