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.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

Alexander Kornrumpf hat geschrieben:&v[0]
how about no?
_bool_-vector
Versuch es einfach mal.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot »

std::vector<bool> ist eine Ausgeburt der Hölle, wer das verwendet, ist wirklich einfach nur selber schuld...

Und nein, es gibt keine Möglichkeit. ;)
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

kaiserludi hat geschrieben:1.5GiB, nicht 15, ist natürlich immer noch eine riesige Menge. Das müsste ja locker in der Größenordnung von 100 Millionen Zeilen Code sein.
Sind etwa 20 Jahre * ~200 Engineers ;)
Treiber fuer 5-6 unterstuetzte Generationen von Hardware, mehrere voellig unterschiedliche Karten pro Generation. Dazu die User Software. Laeppert sich.
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
Jonathan
Establishment
Beiträge: 2389
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Wie viele Tage braucht das so zum kompilieren?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

Jonathan hat geschrieben:Wie viele Tage braucht das so zum kompilieren?
Kann ich gar nicht so genau sagen. Wir nutzen sogenannte Wink-Ins: Kompilierte Object-Files, die zentral im Netz gelagert werden. Bei einem Compile werden die herangezogen, falls der Code nicht geaendert wurde.

Mit Winkins etwa 3-4h auf einer HP Z800 (16 Cores, 16-32GiB RAM, 10k oder 15k RPM Platten).
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Schon zum dritten Mal hat sich mein Bildschirm in Schlieren von Magenta aufgelöst. Wenn ich Pech habe, verabschiedet sich meine Grafikkarte demnächst nach nicht mal einem halben Jahr "Forschungsgebrauch".
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

CodingCat hat geschrieben:Wenn ich Pech habe, verabschiedet sich meine Grafikkarte demnächst nach nicht mal einem halben Jahr "Forschungsgebrauch".
Und wenn du Glück hast, sind seit dem Kauf noch keine 6 Monate vergangen und du kannst beim Händler auf Gewährleistung pochen, wobei der Händler die Beweislast tragen muss. Nach diesen 6 Monaten dreht sich die Beweislast um, und du hast es sehr viel schwerer. Also nicht die Graphikkarte im Backofen grillen, sondern auf Beseitigung des Mangels bestehen. ;)
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Sobald man einen Zuweisungsoperator hinzufügt, hört eine C++-Klasse auf, POD zu sein.

Wäre ja an sich nicht schlimm, wenn da nicht ein winziges Detail wäre: Die Standardinitialisierung ändert sich von nullen zu undefiniert lassen. Und Visual C++ spuckt nirgends auch nur den Hauch einer Warnung aus, dass die Daten, die ich mühsam mit () initialisiert habe, jetzt voll Dreck sind. Wer hat sich diese scheiß Schikane bloß ausgedacht? Wenn ich es nicht initialisiere soll es ruhig undefiniert bleiben, in Ordnung. Aber wenn ich explizit eine Initialisierungsaufforderung hinschreibe?! WTF?

Das hat mich daran denken lassen, dass ich immernoch viel zu wenig Annahmen im Quelltext dokumentiere. Hätte

    static_assert(type_traits<Foo>::is_pod, "Jedes Mal, wenn du eine Mikrooptimierung einbaust, pflanzt irgendwo auf der Welt ein besoffener MS-Programmierer einen Bug in den Optimizer!");

vor der betroffenen Stelle gefunden, hätte ich es sofort gemerkt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Warum sind die meisten von Mobys Hits nun schon über zehn Jahre her? Ich komme mir so alt vor.

Habt ihr euch mal die Pläne alter Intel-CPUs angeschaut, z.B. des 4004er von 1969? Ich schätze, dass etwa um diese Zeit herum CPUs so kompliziert wurden, dass nur noch Autisten die Funktionsweise bis auf die Transistoren runter verstehen konnten. Mitte der 80er dann so, dass sie menschlich nicht mehr vollständig verstehbar wurden. Ich komme mir so jung vor.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Jammer-Thread

Beitrag von BeRsErKeR »

glassbear hat geschrieben:
kaiserludi hat geschrieben:1.5GiB, nicht 15, ist natürlich immer noch eine riesige Menge. Das müsste ja locker in der Größenordnung von 100 Millionen Zeilen Code sein.
Sind etwa 20 Jahre * ~200 Engineers ;)
Treiber fuer 5-6 unterstuetzte Generationen von Hardware, mehrere voellig unterschiedliche Karten pro Generation. Dazu die User Software. Laeppert sich.
Ist das dann in Brainfuck oder Malbolge geschrieben? :D Ne mal ehrlich da kann man ja quasi mehrere Betriebssysteme draus machen ... Aber ich kenne solche Riesenteile leider nur zu gut hier von Siemens ...
Ohne Input kein Output.
Matthias Gubisch
Establishment
Beiträge: 472
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

Die CUDA-OpenGL interop ist echt der letze Dreck...

cudaGraphicsGLRegisterBuffer(..) funktioniert bei 2 von vier Buffern einwandfrei bei den anderen beiden zerschiest es mir den Speicher und ich bekomm ein Race zwischen OGL und CUDA :(
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitrag von antisteo »

Wenn man ein Feature nicht durchdenkt, kann man viele Stunden damit verbringen, seine Designfehler zu korrigieren.

Closures sind geil zum programmieren, aber schwierig zu implementieren. (Ich schwitze gerde an statisch getypten Closures mit generischen Datentypen)
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
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 »

glassbear hat geschrieben:
Jonathan hat geschrieben:Wie viele Tage braucht das so zum kompilieren?
Kann ich gar nicht so genau sagen. Wir nutzen sogenannte Wink-Ins: Kompilierte Object-Files, die zentral im Netz gelagert werden. Bei einem Compile werden die herangezogen, falls der Code nicht geaendert wurde.

Mit Winkins etwa 3-4h auf einer HP Z800 (16 Cores, 16-32GiB RAM, 10k oder 15k RPM Platten).
Ihr benutzt ClearCase? Das wäre in der Tat ein Grund zu jammern... Gerade die Winkins können einem bei einem recht großen Repo das Netzwerk zu dichtmachen.

Kimmi
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

kimmi hat geschrieben:hr benutzt ClearCase? Das wäre in der Tat ein Grund zu jammern... Gerade die Winkins können einem bei einem recht großen Repo das Netzwerk zu dichtmachen.
Ja, Clearcase. Das Netzwerk ist auch oft genug "langsam" oder faellt halt mal aus. Sehr lustig, wenn der Backup-Switch nicht anspringt und spontan 200 Leute nicht mehr arbeiten koennen bis HP Ersatz liefert :lol:

Code ist groesstenteils C mit etwas C++ und bischen Java.
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Jammer-Thread

Beitrag von j.klugmann »

Würde mich mal interessieren, wie viel Duplicated Code bei solch einem riesigen Projekt existiert. Ich tippe, ohne je an solch einem Projekt gearbeitet zu haben, auf 15%. :D
Imaging-Software und bald auch Middleware: http://fd-imaging.com
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

j.klugmann hat geschrieben:Würde mich mal interessieren, wie viel Duplicated Code bei solch einem riesigen Projekt existiert. Ich tippe, ohne je an solch einem Projekt gearbeitet zu haben, auf 15%. :D
Ich kann sicherlich nicht fuer das ganze System sprechen, doch fuer die Teile, die ich kenne: Dort gibt es erstaunlich wenig duplizierten Code. Was es auch nicht gibt, es einheitliche Fehlerbehandlung (wahlweise ueber Exceptions, die einfach weggeworfen werden, einfache Ausgaben auf stdout/stderr bis hin zu zu asserts(), die in Release-Builds deaktiviert werden :roll: ). Oder ein Memory Management. Oder hilfreiche Fehlermeldungen. Oder ...
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Historisch gewachsen halt :)
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

http://www.gamesindustry.biz/articles/2 ... ine-gamers
Das amerikanische Schulsystem ist schuld an schlechten Spielen -.-
;)
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

Chromanoid hat geschrieben:http://www.gamesindustry.biz/articles/2 ... ine-gamers
Das amerikanische Schulsystem ist schuld an schlechten Spielen -.-
;)
Punkt 1 kann ich aus verschiedenen Multiplayer-Spielen (Mass Effect 3, Rage, ... ) definitiv bestaetigen :evil: Sobald es schwierig wird, quitten viele Leute. Oder wenn sich jemand mit Light Armor einem grossem Mech in den Weg stellt und stirbt, ist natuerlich das Spiel dran Schuld :roll:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Matthias Gubisch hat geschrieben:Die CUDA-OpenGL interop ist echt der letze Dreck...

cudaGraphicsGLRegisterBuffer(..) funktioniert bei 2 von vier Buffern einwandfrei bei den anderen beiden zerschiest es mir den Speicher und ich bekomm ein Race zwischen OGL und CUDA :(
Nähere Informationen? Ich habe mich gerade selbst 2 Wochen mit DX11/CUDA rumgeärgert. Was nicht zuverlässig ging: Interop mit StructuredBuffers, Interop mit sehr großen Puffern. Außerdem haut cudaGraphicsMapResource() gigantische Verzögerungen ins Programm, sobald allgemein der VRAM knapp wird.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Matthias Gubisch
Establishment
Beiträge: 472
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

CodingCat hat geschrieben:
Matthias Gubisch hat geschrieben:Die CUDA-OpenGL interop ist echt der letze Dreck...

cudaGraphicsGLRegisterBuffer(..) funktioniert bei 2 von vier Buffern einwandfrei bei den anderen beiden zerschiest es mir den Speicher und ich bekomm ein Race zwischen OGL und CUDA :(
Nähere Informationen? Ich habe mich gerade selbst 2 Wochen mit DX11/CUDA rumgeärgert. Was nicht zuverlässig ging: Interop mit StructuredBuffers, Interop mit sehr großen Puffern. Außerdem haut cudaGraphicsMapResource() gigantische Verzögerungen ins Programm, sobald allgemein der VRAM knapp wird.
Kommt demnächst in nem eigenen Thread
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Na, mögt ihr alle unique_ptr? Ja? Dann schaut mal her:

Code: Alles auswählen

auto nicePointer = std::unique_ptr<char>(new char[123]);
Schön, oder?

Gratulation, wir haben gerade ein Speicherloch erzeugt. Genauer: Unter Visual C++ 2010 werden 122 chars nicht freigegeben, weil nur delete, aber nicht delete[] aufgerufen wird. unique_ptr wählt den auszuführenden Deleter (d.h. delete oder delete[]) anhand des Template-Parameters, und der ist nun einmal kein Array. Richtig lautet es:

Code: Alles auswählen

auto nicePointer = std::unique_ptr<char[]>(new char[123]);
Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

eXile hat geschrieben: Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
Mal schauen, wie viele Standardversionen es noch dauert, bis bei Fehlern ganze Universen ausradiert werden :lol:
"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 »

Ja, dass make_unique() es nicht in den Standard geschafft hat, ist eine erschreckend grobe Verfehlung.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Thoran »

eXile hat geschrieben:Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
Zum Glück bläst man sich nicht den Kopf weg, sonst würde man ja kopflos programmieren ;)
Da wäre dann wohl das Ausradieren des Universums die bessere Alternative. Man kann wenigsten keine Programmierfehler mehr machen. ;)
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Ich glaube phpBB hat irgendwie deinen Avatar ausradiert. Sehr komisch was da momentan als Alternative prangt.
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 komme mir grad blöd vor. Ich suchte ein regelmäßiges Muster, um ein 32x32-Feld zu beackern, so dass nicht immer benachbarte Pixel drankommen, am Ende aber trotzdem alle erwischt werden. Überschaubare Zahlenbereiche, also schnell mal in Code gegossen:

Code: Alles auswählen

  static const size_t GROESSE = 32;
  for( size_t a = 1; a < GROESSE*GROESSE; ++a )
  {
    std::vector<bool> erreicht(GROESSE*GROESSE, false);
    size_t zaehler = 0; 
    for( size_t b = 0; b < GROESSE*GROESSE; ++b )
    {
      erreicht[zaehler%(GROESSE*GROESSE)] = true;
      zaehler += a;
    }

    if( std::all_of( erreicht.cbegin(), erreicht.cend(), [](bool b) { return b; }) )
      Traum::Konsole.Log( "Muster klappt für Abstand %d", a);
  }
Und siehe da: es klappt für jede ungerade Zahl. Ich komme mir gerade ziemlich dumm vor, dass ich das nicht sofort gesehen habe. Grmpf.

[edit]Korrektur: noch einen Test für "doppelt erreicht" eingebaut und immernoch das selbe Ergebnis. Jetzt fühle ich mich richtig blöd. Eigentlich logisch... es klappt nicht für Schrittweiten, die durch Teiler der Größe teilbar sind.
Zuletzt geändert von Schrompf am 15.08.2012, 13:03, insgesamt 1-mal geändert.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Thoran »

Chromanoid hat geschrieben:Ich glaube phpBB hat irgendwie deinen Avatar ausradiert. Sehr komisch was da momentan als Alternative prangt.
Was prangt den da? Ich kann nämlich nur Text sehen, oder meintest du das?
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Alexander Kornrumpf
Moderator
Beiträge: 2119
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Schrompf hat geschrieben: [edit]Korrektur: noch einen Test für "doppelt erreicht" eingebaut und immernoch das selbe Ergebnis. Jetzt fühle ich mich richtig blöd. Eigentlich logisch... es klappt nicht für Schrittweiten, die durch Teiler der Größe teilbar sind.
Das kommt mir aus der Krypto Vorlesung sehr bekannt vor.
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 »

Alexander Kornrumpf hat geschrieben:Das kommt mir aus der Krypto Vorlesung sehr bekannt vor.
Weil Du eine hattest. Und Dich daran erinnerst. Daher fühle ich mich immer latent blöd, wenn ich hier im Forum mitlese.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Antworten