Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

if( a || b && c) führt unter GCC zu einem Warning, ich solle doch && klammern, damit keiner die korrekte Operatorreihenfolge wissen muss, um den Code zu verstehen :roll:
Mann kann es auch echt übertreiben, genauso wie der Blödsinn, if(a = b) mit einem Warning für ein potentiell vergessenes zweites = zu bestrafen.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

kaiserludi hat geschrieben:if( a || b && c) führt unter GCC zu einem Warning, ich solle doch && klammern, damit keiner die korrekte Operatorreihenfolge wissen muss, um den Code zu verstehen :roll:
Mann kann es auch echt übertreiben, genauso wie der Blödsinn, if(a = b) mit einem Warning für ein potentiell vergessenes zweites = zu bestrafen.
Ganz ehrlich, die Klammern sind die ersparte Debug-Mühe wert (nein, "ich mach das mit Absicht weil ich das Verhalten genaustens kenne" ist keine Ausrede, man programmiert ja nicht immer in Top-Form und ist häufig auch nicht der einzige Code-Mitleser ;) )

Nachtrag: Selbst die "signed-unsigned comparison" Warnings finde ich mittlerweile gut ...

Nachtrag 2: nicht überzeugt? nimm -w
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Diese Warnings führen eben dazu, dass man dann 2 Dutzend Klammern am Stück hat und erst mal zählen muss, um zu sehen, was der Code macht.
Da bin ich klar für "nicht mehr Klammern als nötig".

Als nächstes bekomme ich ein Warning für while(i --> 0), dass ich doch bitte while((i --) > 0) schreiben soll, damit niemand wissen muss, dass das kein goes to Operator ist...

-w ist auch keine Lösung, weil man die Warnings teils nur Gruppenweise ein- und ausschalten kann.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Jammer-Thread

Beitrag von kimmi »

Nein kann man nicht :). Ich habe mehr als einmal nach Fehlern gesucht, die von solchen Konstrukten ausgelöst wurden und freue mich immer sehr über eine solche Warnung.

Gruß Kimmi
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Ich hasse die Situationen, wenn man nur die Wahl zwischen WIP Commits (sprich, irgendwas mit known Bugs, Builderrors, etc. einchecken) und einem riesigen "Änderungen aus 160 Arbeitsstunden"-Commit hat. Habe heute 6 Stunden nur mit Tippen der Commit-Messsage und dem Review, was ich alles geändert habe und somit in die Commit Message sollte, verbracht.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Forward Declarations ... nicht nur, dass ich sie in C++ stets selbst schreiben muss, und die redundanten Signaturen in den Headers damit permanent veralten. Nein, es existiert nicht mal eine prüfbare Verbindung zwischen Vereinbarung und Definition. Das heißt, ich merke nicht mal, dass sie veralten. Erst wenn mir völlig überraschend die Linkerfehler nur so um die Ohren fliegen, dann darf ich mich endlich auf die Suche begeben.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Jonathan
Establishment
Beiträge: 2389
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Ja, wieso eigentlich? Gibt es dafür einen Grund? Ich meine, durch explizite forward-declarations findet der Compiler Fehler, wenn man sich beim Typnamen vertippt. Aber ob das den ganzen Ärger damit wert ist, weiß ich nicht. Zusätzliche Infos bekommt der Compiler ja nicht, von daher müssten die doch eigentlich unnötig sein...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Vermutlich, weil die C- und noch vielmehr die daraus abgeleitete C++-Syntax und -Grammatik dermaßen mehrdeutig sind, dass eine notwendigerweise aufwändige inkrementelle Übersetzung dieses unzertrennlichen Breis aus Typ-, Variablen- und Funktionsbezeichnern ganz Microsoft die nächsten 30 Jahre beschäftigen könnte.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
joggel

Re: Jammer-Thread

Beitrag von joggel »

Will auch mal jammern:
Habe gestern in meiner Klasse, geerbt von QDialog, etwas mit Sonderzeichen rumgespielt.
Funktionsnamen bestanden dann aus hübsch anzusehenden Sonderzeichen und ich konnte meiner kreativität im Umgang mit dem Syntax freien lauf lassen... war zwar von fast keinem Menschen mehr zu verstehen, da fast alles nur noch aus Symbolen bestand aber ich fands toll :P .

Jedenfalls, der Metaobject-Compiler (moc.exe) von Qt kam damit aber nicht so richtig klar... er hatte mir immer eine leere "moc_" Datei generiert.
Also: Aufpassen Leute!!

Ich ärgere mich aber!! Ja... ich finde es sehr sehr schade!
Ich würde gerne meine Klassen und/oder Funktionen zB so benennen "whosMyCurrent★(★Base* ☼)" oder was weiß ich wie. Halt schön symbolisch ^^

Je länger ich programmiere desto mehr werde ich enttäuscht :(
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ich glaube, der Qt-Moccer erwartet UTF8. Das musst Du bei Visual Studio erst unter "Erweiterte Speicheroptionen" für jede Datei einzeln auswählen. Oder ein Massen-Konvertierungstool benutzen - ich hab moderat gute Erfahrungen mit UTFCast gemacht. Leider hat die Pfeiffe nicht erkennt, dass manche Files schon UTF8 ohne Header waren und mir daher UTF8-Characters doppelt konvertiert. Und ich wunder mich, warum der Fontrenderer des Frameworks keine Umlaute mehr ausspuckt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

An manchen Tagen schlägt C++ mit Wucht.

Code: Alles auswählen

struct entry;

typedef std::map<const resource*, entry> resource_map;
typedef std::map<utf8_string, resource_map::iterator> string_map;

struct entry
{
   string_map::iterator itByName;
   string_map::iterator itByFile;

   [...]
};
Vielleicht (hoffentlich) bin ich auch einfach nur übermüdet, aber ich sehe keine Möglichkeit, den Quelltext in eine gültige Reihenfolge zu bringen.
Anmerkung: Ausgelagert in [C++] Spaß mit zyklischen Abhängigkeiten.

Und gleich hinterher: Wahnsinn, ist der Moderationsbereich ein Krampf. ;)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
RustySpoon
Establishment
Beiträge: 298
Registriert: 17.03.2009, 13:59
Wohnort: Dresden

Re: Jammer-Thread

Beitrag von RustySpoon »

GCC 4.7 hat geschrieben:interner Compiler-Fehler: Segmentation fault
Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;
bearbeiten Sie die Quellen zunächst mit einem Präprozessor, wenn es
dienlich ist.
Fehler in der deutschen Übersetzung sind an translation-team-de@lists.sourceforge.net zu melden.

Gehen Sie gemäß den Hinweisen in <http://gcc.gnu.org/bugs.html> vor.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Code: Alles auswählen

int main(void)
{
	static JString gameName(L"Hello World");
}
führt zu einem Memory Leak in Marmalade.

Code: Alles auswählen

int main(void)
{
	JString gameName(L"Hello World");
}
hingegen verursacht keines.

-> static locals, deren Konsturktoren Speicher auf dem Heap allokieren, führen zu false positives im Marmalade Memoy Managment, weil ihre Destruktoren erst aufgerufen werden, nachdem der Memory Manager das Programm als beendet ansieht und jeglichen noch allokierten Speicher als Leak.
Zuletzt geändert von kaiserludi am 19.04.2012, 19:04, insgesamt 2-mal geändert.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

kaiserludi hat geschrieben:weil ihre Konstruktoren erst aufgerufen werden, nachdem der Memory Manager das Programm als beendet ansieht
Destruktoren, oder?

Seit ich weiß, dass in C++ die statische Initialisierungsreihenfolge zumindest für einzelne Übersetzungseinheiten definiert ist, bin ich immer mehr versucht, eine static.cpp zu machen, in der alle globalen Symbole, die in allen anderen Einheiten als extern landen, in sinnvoller Reihenfolge definiert werden. Aber noch hatte ich dazu nicht den Mumm.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Krishty hat geschrieben:
kaiserludi hat geschrieben:weil ihre Konstruktoren erst aufgerufen werden, nachdem der Memory Manager das Programm als beendet ansieht
Destruktoren, oder?

Seit ich weiß, dass in C++ die statische Initialisierungsreihenfolge zumindest für einzelne Übersetzungseinheiten definiert ist, bin ich immer mehr versucht, eine static.cpp zu machen, in der alle globalen Symbole, die in allen anderen Einheiten als extern landen, in sinnvoller Reihenfolge definiert werden. Aber noch hatte ich dazu nicht den Mumm.
Oh, sorry, Destruktoren meine ich natürlich in der Tat.

Gleich der nächste Grund zum Jammern:
Ich habe Lib A, B, C und D und die App.
B und C hängen beide von A ab und D hängt von B und von C ab, die App widerum hängt von D ab. Das Auto-Update der Projektfiles von VS2008 auf VS 2010 hat daraus nun folgendes gemacht: App hängt von A, B, C und D ab und die Libs hängen nicht mehr untereinander voneinander ab, was zur Buildorder B, A, D, C, App führte.
Aufgefallen ist das aber nicht direkt nach dem Update, sondern erst Wochen später, unmittelbar vor einem Release, bei einem SVN "Clean all unversioned files". Danach konnte D nicht mehr gebaut werden, weil C noch nicht exisitierte. Bei den anderen Apps hat zufällig die Buildorder gestimmt, wodurch deren Rebuilds durch liefen und bei der betroffenen Apps gab scheinbar immer nur Builds in den letzten Wcohen, nie Rebuilds.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

http://connect.microsoft.com/VisualStud ... ution-file
https://connect.microsoft.com/VisualStu ... d-projects
https://connect.microsoft.com/VisualStu ... figuration

Wollt ihr mich eigentlich verarschen?
Batchbuilds mit Projektabhängigkeiten funktionieren in VS10 einfach mal gar nicht und die Lösung ist, entweder bei VS9 zu bleiben (geht nicht, weil ein 3rd-Party Tool, welches wir benutzen, uns vor einer Weile zum Update gezwungen hat) oder auf VS11 zu warten?
WTF, MS, WTF?
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Deswegen (und weil Batch Build nicht multi-threaded ist) übersetze ich eigentlich nur noch mit F5. Ich benutze auch keine statischen Bibliotheken mehr; ich schmeiße alle Quelldateien einfach so ins Projekt. Ist zwar aufwändig, wenn man etwa einem Framework, das von zwei Projekten genutzt wird, ein neues Übersetzungsmodul hinzufügt – aber irgendwie doch noch entspannter als die ständigen Probleme mit statischen Bibliotheken.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Dummerweise gibts diese Probleme nicht nur mit Batch-Builds, sondern auch mit Kommandozeilen-Builds, welche unter VS2008 noch problemlos gefunzt haben.

ich habe heute erst mal unser Buildfile für die Windows-SDKs, welches, auch wenn im Grunde längst jede Zeile verändert wurde, im Grundgerüst noch aus vor meienr Zeit stammte (und das, obwohl ich seit 5 Jahren für den Bereich zuständig bin), komplett auf den Kopf gestellt. Nebeneffekt des komaptibel machens mit VS2010 ist: Jetzt hat es nur 20% der zeilenzahl, die es gestern noch besaß und der Build dauert nur noch 2min statt 10min. Manchmal haben total verbuggte "Won't Fix" Features auch ihre Vorteile :)

In VS selbst nutze ich auch seit jeher nur F5, F6 (Build Current Selection) und F7 (Build Solution), von Rebuils mal abgesehen.

So eifnach wie du kann ichs mir leider nicht machen, da wir Middelware entwickeln, sprich, usner Hauptprodukt sind die Libs, Apps gibts nur in Form von Tests und Demos. Unsere C++ Clients VS-Dev-Solution hat derzeit 5 Libs + 5 Demos + 1 mal Tests. Die entsprechende Solution in Xcode übertrifft das aber deutlich mit 6 Libs, 13 Demos und 1 mal Tests. Da die Libs auch nur zum Teil Open Source sind, kommt einfach Sourcen in die Projekte rüber kopieren nicht in Frage. Davon ab, dass ich es auch den Kunden nicht zumuten will, mit jedem Release Source-Dateien in den Projekten rüber kopieren zu müssen. Einmal Lib- und Inlcude Pfade aufsetzen und gut ist, danach muss nur noch das alte Package im Filemanger durch das eue ersetzt werden ein Rebuild und alles läuft, von eventuellen APi-Changes abgesehen natürlich, aber wir krempfel ja auch nicht mit jedem Release die halbe APi um.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Andre
Establishment
Beiträge: 186
Registriert: 21.12.2011, 20:33

Re: Jammer-Thread

Beitrag von Andre »

Schön, wenn man nach einer halben Stunde merkt, mit was man sich da bei der Diablo III Beta anmelden wollte.

EMail-Adresse: "Name@Host,com" <- Findet den Fehler.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Schön zu wissen, dass anscheinend die Programmierer der d3dx9math.inl nie /RTCc angeschaltet hatten. Zumindest fliegt mir der D3DXCOLOR-Konstruktor immer um die Ohren. Kein Wunder:

Code: Alles auswählen

D3DXINLINE
D3DXCOLOR::D3DXCOLOR( DWORD dw )
{
    CONST FLOAT f = 1.0f / 255.0f;
    r = f * (FLOAT) (unsigned char) (dw >> 16);
    g = f * (FLOAT) (unsigned char) (dw >>  8);
    b = f * (FLOAT) (unsigned char) (dw >>  0);
    a = f * (FLOAT) (unsigned char) (dw >> 24);
}
Für eine anständige Maskierung hat es in diesen ökonomisch schwierigen Zeiten leider nicht mehr gereicht.

Klasse, jetzt bin ich mit einem gepatchten Direct3D-SDK unterwegs. Erinnert mich bitte in einem Jahr daran, dass das eine Scheißidee ist, und lacht mich dann aus.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Keine Sorge, keiner lacht. Ich hab auch schon kleine Änderungen im DX-SDK und in isolierten Boost-Teilen - gut, dass ich eh dazu übergegangen bin, alle Dependencies mit einzuchecken und in der Solution nur noch relativ zu adressieren.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot »

Wer verwendet denn schon D3DX, besonders heutzutage? :P
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

dot hat geschrieben:Wer verwendet denn schon D3DX, besonders heutzutage? :P
Nunja, da wären:
  • Fast alle Samples aus dem Direct3D-SDK
  • Viele Demos from teh Interwebs
  • Alles was die DXUT verwendet, welche noch immer als Referenz-Implementierung für korrektes Window- und Device-Handling gilt
Wenn man also schnell was anpassen und debuggen will, und gerade einen solchen Typfehler (wie er eben durch /RTCc erkannt wird) vermutet, fällt so auf die Nase.

Nächste Jammerei: /MP ist voll fürn Arsch, weil unter Debug man den Minimal Rebuild ausmachen müsste, und unter Release das keine Auswirkungen auf die LTCG hat (welches die meiste Zeit bei mir frisst).
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

eXile hat geschrieben:Erinnert mich bitte in einem Jahr daran, dass das eine Scheißidee ist, und lacht mich dann aus.
Es gibt immer jemand Dümmeres. Ich habe eigene D3D9-Header und eine eigene Mathebibliothek und werde nie wieder auch nur einen einzigen offiziellen Header #includen. Und Farben via DWORD rumreichen ist da eh nicht.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Xcode find and replace unterstützt keine Multiline Regular Expressions :cry:
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Aramis »

Visual Studio auch nicht sinnvoll, wie ich kuerzlich feststellen musste.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Drei geschachtelte Schleifen im Compute Shader, und schon scheint D3DCompile() nicht mehr zu terminieren.

Korrektur: Mein Fehler, ein versehentliches while statt if lies die Schleifen tatsächlich nicht terminieren. Ich muss mich wohl daran gewöhnen, dass in diesem Fall der Compiler ggf. ebenfalls nicht terminiert. :|
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Notepad++ unterstützt eben so wenig Multiline Regular Expressions ...
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Aramis »

Ja, soweit kam ich auch. Nimm ein Python oder ein Perl-Skript, geht am schnellsten auch wenn es sich anfuehlt wie Zahnarzt morgens um 5.
Ich muss mich wohl daran gewöhnen, dass in diesem Fall der Compiler ggf. ebenfalls nicht terminiert.
Wofuer du dich bei Kurt Goedel bedanken darfst :-) Und es bestaetigt einige unangenehme Vermutungen ueber das Innenleben des HLSL-Compilers :-)
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Aramis hat geschrieben:Wofuer du dich bei Kurt Goedel bedanken darfst :-) Und es bestaetigt einige unangenehme Vermutungen ueber das Innenleben des HLSL-Compilers :-)
Tatsächlich tritt das Problem nur bei eingeschalteter Optimierung auf. Aber es kommt noch besser, bei abgeschalteter Optimierung meldet der Compiler sofort, dass das gar nicht terminieren kann. Was die Vermutung bestätigt, dass im Herz des FXC nichts als ein riesiger Kessel voller Magie steht, zusammengepanscht mit maximaler Sorglosigkeit.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Antworten