Die Suche ergab 426 Treffer
- 13.07.2020, 20:44
- Forum: Grafikprogrammierung
- Thema: GLSL - komponentenweise bedingte Zuweisung.
- Antworten: 3
- Zugriffe: 914
Re: GLSL - komponentenweise bedingte Zuweisung.
mix hat entsprechende Überladungen für genau diesen Zweck.
- 06.07.2020, 00:41
- Forum: Grafikprogrammierung
- Thema: Vulkan API - Erfahrungsaustausch
- Antworten: 17
- Zugriffe: 4603
Re: Vulkan API - Erfahrungsaustausch
Die Vulkan-API ist schon recht sperrig, aber ich denke eig. das es in richtigem Anwendungscode nicht so ins Gewicht fällt. Man muss nur ein paar schlanke Hilfsfunktionen schreiben, um die üblichen Fälle zu vereinfachen. In OpenGL habe ich immer das Problem, das mir nicht klar ist an welchen Stellen ...
- 25.06.2020, 14:25
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: static_cast - Wieso ist VisualStudio unzufrieden?
- Antworten: 3
- Zugriffe: 1196
Re: static_cast - Wieso ist VisualStudio unzufrieden?
Ich würde das ignorieren. An dem Code ist nichts auszusetzen und wie du schon selbst sagst ist die Alternative sogar objektiv (marginal) schlechter. Ich glaube man kann in den Projekteinstellungen auch irgendwie einzelne Checks deaktivieren. Wenigstens das. Ansonsten halt einfach beobachten, wie oft...
- 23.06.2020, 22:20
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: static_cast - Wieso ist VisualStudio unzufrieden?
- Antworten: 3
- Zugriffe: 1196
Re: static_cast - Wieso ist VisualStudio unzufrieden?
Ich glaube, das siehst du schon richtig. Der hypothetische Bug den VS hier bemängelt ist genau dieser Überlauf (und schon bei +2147483647 übrigens). Man kann das übrigens abschalten unter "Tools" -> "Options" -> "Text Editor" -> "C/C++" -> "Advanced"...
- 08.06.2020, 17:24
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Ja, braucht man tatsächlich. Darum gibt es z. B. std::chrono::time_point und std::chrono::duration . Für sowas möchte man übrigens auch oft unterschiedliche Datentypen, weil bei Geschwindigkeiten Gleitkommazahlen ganz gut funktionieren und bei Positionen Festkommazahlen, aber nicht umgekehrt. Ja da...
- 08.06.2020, 15:48
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Wenn du deine Koordinaten versehentlich relativ zum Fahrzeug des Spielers speicherst, sagt dir auch direkt der Compiler, dass du deinen LocalPoint zu GlobalPoint konvertieren musst, statt dass du zwanzig Minuten debuggst, warum die Sounds dauernd um dich zu kreisen scheinen. vec3 für alles ist sowi...
- 07.06.2020, 15:50
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
In C++20 hat man sich nach 20 Jahren Verspätung nun dazu durchgerungen, Strukturen mit Variablennamen initialisieren zu können wie man das in C schon seit C99 kann. Einge Features von C wurden leider noch rausgeworfen, aber man wird wenigstens so was schreiben können: struct process_object_args { fl...
- 23.03.2020, 21:14
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: C++ Callbacks
- Antworten: 11
- Zugriffe: 10257
Re: C++ Callbacks
Gegenüber Boost signal ist es bestimmt schonmal eine ordentliche Vereinfachung so wie ich Boost einschätzte. ^^ Mit einem simplen Callback habe ich std::function<...> gemeint. Die Performance ist natürlich nicht toll (bei std::function ja auch schon), aber eig. wollte ich auf die Wartbarkeit hinaus....
- 23.03.2020, 17:46
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: C++ Callbacks
- Antworten: 11
- Zugriffe: 10257
Re: C++ Callbacks
Du kannst den Typ in Rückgabeparameter und Argumente mittels Template-Spezialisierung auflösen. Beispiel: template<typename T> class EventCallback {}; template<typename ret_val, typename... params> class EventCallback<ret_val (params...)> { ... } Dann wird z.B. void(int,long,double) entsprechend zu...
- 06.10.2019, 23:13
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Diffst Du nie? Das stirbt nämlich bei einer als "binär" getaggten Datei. Nicht in dieser Datei, ne. Oder habt ihr wirklich so viele Textdateien bei denen es auf die Art des Zeilenumbruch ankommt? Äh, doch?! Wenn ich eine LF-Datei unter Windows öffne und was reinschreibe, übernimmt der neu...
- 06.10.2019, 17:01
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Na das Problem ist doch viel mehr dass es die Versionsgeschichte zerstört wenn immer von \r\n zu \n hin und her gewechselt wird zwischen Linux und Windows commits. Das es unterschiedliche Zeilenumbrüche gibt ist zwar wirklich nervig, aber die Versionskontrolle kann das Problem auch nicht einfach ign...
- 05.10.2019, 00:03
- Forum: Allgemeines Talk-Brett
- Thema: Anti-Jammer-Thread
- Antworten: 2059
- Zugriffe: 723256
- 12.09.2019, 14:43
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Ich habs zum Glück nur in einer VM, aber bei mir kein Problem.
Wie genau äußert sich, dass es nicht geht? Hast du keine Spalte "Typ"? Ich kann hier sogar eine explizite "Dateierweiterung"s-Spalte aufmachen und nach der sortieren.
Wie genau äußert sich, dass es nicht geht? Hast du keine Spalte "Typ"? Ich kann hier sogar eine explizite "Dateierweiterung"s-Spalte aufmachen und nach der sortieren.
- 05.09.2019, 21:04
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: C++ Event bekommen wenn virtuelle Funktion angetriggert wird
- Antworten: 13
- Zugriffe: 2926
Re: C++ Event bekommen wenn virtuelle Funktion angetriggert wird
Schrompf hat recht, es reicht nicht die Vtable der Basisklasse zu verändern sondern du musst alle Vtables der abgeleiteten Klassen ändern. Das Überschreiben von Funktionen funktioniert ja gerade dadurch, dass in der abgeleiteten Klasse die Basisklassen-Vtable der Instanz mit der Vtable der abgeleite...
- 24.06.2019, 20:16
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Ich habe auch versucht, zu verstehen, was du getrieben hast. Wie schon teilweise erwähnt, kann ich folgende Grundgedanken nachvollziehen - ich versuche mal aufzulisten: * 8 16Bit Pixel passen in eine 128bit SSE Struktur * daher: Handling der Pixel zu je 4 Stück bei zwei Zeilen -> 8 Pixel auf einmal...
- 23.06.2019, 12:35
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Sieht ziemlich ähnlich zu meinem Code aus. Inbesondere auch 16*2 Pixel auf einmal und 9.6 Festkomma. Unterschied ist, dass ich in meinem Code am Ende ja noch die ganze Sache mit dem Shuffle machen musste, weil Top-OR die RGB-Werte am Ende Interleaved abgelegt haben wollte. Außerdem: Then it's time t...
- 22.06.2019, 19:33
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Freut mich wenn es bei dir auch so flott läuft. :-). Und ich denke du musst SSSE3 anschalten, nicht SSE3. Falls du es noch nicht kennst, der "Intrinsic-Browser" von Intel ist übrigens sehr nützlich: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#!=undefined . Da steht u.a. a...
- 22.06.2019, 18:31
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Ok habe bisschen rumgebastellt und massiv die Performance verbessert. In Zahlen in meinen (sehr provisorischen) Benchmark: - Ganz ursprünglich: ~600 ms - Ursprüngliche SSE Version: ~100 ms - Verbesserte SSE Version: ~12 ms Hier der relevante Code: #include <emmintrin.h> #include <tmmintrin.h> // Fac...
- 22.06.2019, 17:16
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Ich gucks mir mal an. Momemtan hat mich die RIESIGE Liste von SSE Befehlen erstmal erschlagen und ich muss schauen, was es da alles so gibt. Danke hierfür. Jo, absolut verständlich. :) Macht aber auch irgendwie einen Reiz aus wenn man sich mal einen Überblick verschafft hat. Und zum Teil gibt es au...
- 22.06.2019, 15:35
- Forum: Grafikprogrammierung
- Thema: YUV420planar zu BGR Konvertierung ist kritisch langsam
- Antworten: 24
- Zugriffe: 5118
Re: YUV420planar zu BGR Konvertierung ist kritisch langsam
Da kann man auf jeden Fall noch mehr rauskitzeln. Eine Sache die auf jeden Fall geht wäre auf 16 Bit Integer zu gehen via _mm_mullo_epi16 , _mm_mulhi_epi16 und _mm_madd_epi16 . Man kann dann ja doppelt so viele Daten pro SIMD-Befehl verarbeiten. Wenn ich das gerade richtig sehe, werden im Moment auc...
- 28.03.2019, 01:08
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557503
Re: Jammer-Thread
Hä? Habe nutze auch Thunderbird: Bei mir gibts kein Zwangsupdates. Da kommt ein Fenster, dass einem über das Update informiert und freundlich nachfragt, ob das Update heruntergeladen werden soll. Wenn man "ja" sagt wird nicht mal Thunderbird geschlossen, sondern es gibt noch die Option bei...
- 03.10.2018, 18:59
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [Visual C++] /d2noftol3 & dtol3()
- Antworten: 8
- Zugriffe: 3556
Re: [Visual C++] /d2noftol3 & dtol3()
Ob es eine Möglichkeit gibt, _ftol3 mit einer eigenen Version zu ersetzen? Diese Details finde ich ja immer besonders. interessant. Ich habe jetzt nochmal ein wenig darüber nachgedacht, und einen neuen Vorschlag (ohne x87): #include <emmintrin.h> unsigned int roundedToUInt4B(double f) { return (unsi...
- 03.10.2018, 00:33
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [Visual C++] /d2noftol3 & dtol3()
- Antworten: 8
- Zugriffe: 3556
Re: [Visual C++] /d2noftol3 & dtol3()
Godbolt kann 32 bit, einfach -m32 machen. ;) https://gcc.godbolt.org/z/KDNROV Clang macht cvttss2si zweimal: Einmal für den Fall dass es ganz normal geht für 0 - 0x7fffffff und ein zweites mal, einfach Verschoben, falls die Zahl in den Bereich 0x80000000 - 0xffffffff fällt und wählt dann das Ergebni...
- 01.10.2018, 17:55
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C++] teure Ressource in Lambda moven
- Antworten: 3
- Zugriffe: 1751
Re: [C++] teure Ressource in Lambda moven
Hast du denn sichergestellt, dass deine std::function<> nicht allokiert? Die übernimmt Ownership von deinem Lambda und wenn das zu groß ist, wird auch allokiert. Beim MSVC ab einer Pointergröße und bei Clang/GCC mit libstdc++ ab 2 Pointergrößen im Captureblock. (Quelle: Rumprobieren auf dem Compiler...
- 30.09.2018, 23:10
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C++] teure Ressource in Lambda moven
- Antworten: 3
- Zugriffe: 1751
Re: [C++] teure Ressource in Lambda moven
Das Problem ist, dass man std::function<> selbst kopieren kann. Und um jetzt die std::function<> kopieren zu können, muss das zugewiesene Lambda natürlich auch kopierbar sein. Das ist nunmal Teil des Interfaces. Du könntest dein Funktionsobject ja z.B. in eine andere Funktion hereinreichen. Spät...
- 14.10.2017, 02:09
- Forum: Algorithmen und Datenstrukturen
- Thema: Bitschubsen für Fortgeschrittene, Teil I
- Antworten: 4
- Zugriffe: 2971
Re: Bitschubsen für Fortgeschrittene, Teil I
Um schnell geeignete Primzahlen zu bekommen ist diese Seite ganz praktisch: https://asecuritysite.com/encryption/random3?val=64 Als Alternative könntest du die 3 Koordinaten erst zusammenbauen und dann gemeinsam durch einen Hash schicken. uint64_t seed = nvp.z ^ ((uint64_t)nvp.x << 40) ^ ((uint64_t)...
- 11.08.2017, 00:16
- Forum: Artikel, Tutorials und Materialien
- Thema: [C++] Mikrooptimierungs-Log
- Antworten: 103
- Zugriffe: 129934
Re: [C++] Mikrooptimierungs-Log
Hm, also vielleicht verstehe ich dich falsch, aber auf Godbolt scheint es zu gehen:
Click
Click
- 10.08.2017, 22:48
- Forum: Artikel, Tutorials und Materialien
- Thema: [C++] Mikrooptimierungs-Log
- Antworten: 103
- Zugriffe: 129934
Re: [C++] Mikrooptimierungs-Log
Das ist wirklich schrecklich. und was mache ich mit Strict Aliasing und 16-Bit-Zahlen? Zu Bjarne Stroustrup beten und ihm zum Opfer meinen Computer verbrennen? Strict Aliasing ist immer eine sehr komplizierte Angelegenheit. Aber ich bin mir ziemlich sicher, dass dieser Code auch jetzt Strict Aliasin...
- 07.08.2017, 23:26
- Forum: Artikel, Tutorials und Materialien
- Thema: [C++] Mikrooptimierungs-Log
- Antworten: 103
- Zugriffe: 129934
Re: Jammer-Thread
Also auf Godbolt kompilert Visual C++ das tatsächlich zu andps ohne weitere Flags... :roll:Verdammt – ich muss hier noch /fp:fast an gehabt haben; da hast du völlig recht!
- 07.08.2017, 22:58
- Forum: Artikel, Tutorials und Materialien
- Thema: [C++] Mikrooptimierungs-Log
- Antworten: 103
- Zugriffe: 129934
Re: Jammer-Thread
Hm, habe ich was verpasst? Warum ist minps besser als minss ? Bei float absoluteOf(float x) { return x > 0 ? x : -x; } muss ich leider GCC/Clang rechtgeben, denn die elegante Version mit and verändert das Vorzeichen wenn x = NaN ist. Clang optimiert den Code erfolgreich mit -ffinite-math-only und GC...