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
Schrompf
Moderator
Beiträge: 5045
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

OpenGL verhält sich wie eine verdammte Diva, wenn es um Standard-Uniforms geht. Man darf *keine* Annahmen darüber machen, wie die Sachen im Speicher liegen, und man muss mit *exakt* der richtigen Funktion die Daten schreiben, sonst wird die Zuweisung abgelehnt. Weil es ja auch so ein verdammtes Drama ist, ob ich jetzt glUniform3f() oder glUniform4f() nehme - ein Float zuviel und die Grafikkarte könnte explodieren!

Ich will einen "Halt die Schnauze und schreib diese Floats"-Befehl. Den kriegt man zusammen mit den notwendigen konsistenten Layout-Regeln aber leider erst mit Uniform Buffers, die im Shader-Code dann aber explizit benutzt werden müssen. So was Banales rückwärtskompatibles wie der Constant Buffer $GLOBAL, den DX11 benutzt, wär ja auch zu einfach. Und das krieg ich dann nicht mehr so einfach crosscompiled auf DX9.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Und dann liegt das 4. float bei Anwender Konrad Wurst auf einer anderen Speicherkachel als die ersten drei und alles stürzt ab und du beschwerst dich, dass du nicht früher gewarnt wurdest, dass du vier floats hochladen willst wo nur drei sind?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 5045
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Naja, wenn der Treiber eh so empfindlich ist und exakt die Größe des Zielwerts prüft, dann kann er doch auch einfach die gewonnene Erkenntnis verwerten und den vierten Float verwerfen, anstatt sich in einem Trotzanfall auf dem Boden rumzurollen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Man könnte auch einen Exception Handler schreiben, der bei jeder Zugriffsverletzung 0 zurückgibt bzw. nichts schreibt. Ich glaube nur nicht, dass das der Qualität zuträglich wäre ;) (Direct3D macht das auf der GPU so. Viel Glück, den Quelltext wo anders hin zu portieren.)

Fehlerbehandlung ist ja immer eine Modeerscheinung (in den 80ern keine; in den 90ern Fehlerwerte; in den 00ern Ausnahmen). Aber man hat viele Untersuchungen angestellt, ob Compiler ein fehlendes Semikolon nicht einfach selber einsetzen sollen statt sich drüber zu beklagen, und ob Rechtschreibprüfung die Wörter nicht direkt ersetzen sollte statt sie rot zu unterkringeln, und die Quintessenz ist immer sehr ähnlich: Wenn der Computer vor mehrdeutiger Eingabe steht, und versucht zu erraten, was der Anwender meinte, bringt das erwachsene Männer zum Weinen. OpenGL fragt lieber nochmal nach. Und Mehrdeutigkeiten gibt es nunmal viele, weil es portabel ist.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1589
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von xq »

Wahre Worte!
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
TDK
Beiträge: 54
Registriert: 06.04.2012, 11:15

Re: Jammer-Thread

Beitrag von TDK »

Das Problem um Force Feedback ist gelöst:

Bild
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 »

Letzte Woche voller Hektik von einem Projektleider nach USA einberufen worden, um dann zu erfahren, dass der in dem abgesprochenen Zeitraum gar nicht da ist. Also erst buchen, dann rauskriegen, wann Zeit ist, feststellen, dass der Einladende nicht da ist, um dann alles wieder abzusagen.

Ohne Worte!

Kimmi
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Helmut »

Spiele Programmierer hat geschrieben:Du darfst in einer Funktion einfach keine Funktion deklarieren. Aus. Da ist eigentlich nichts unlogisch daran, dass ist einfach so und macht auch Sinn.
Leider darf man das schon... Nur sie dort auch zu definieren ist wenigstens nicht erlaubt.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Jammer-Thread

Beitrag von Spiele Programmierer »

Wow, du hast recht.
War mir nicht bewusst, obwohl ich selbst den Fehler gemacht habe, ein Objekt mit () zu konstruieren.
Kommt wahrscheinlich noch aus C.

Und ok, das finde ich jetzt auch unlogisch. :P
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ja; das nennt man den Most Vexing Parse.

In Visual C++ wird irgendein Schalter umgelegt, so dass Funktionen ab bestimmten Stack-Ansprüchen rbp statt rsp zur Adressierung nutzen. Das kann katastrophale Auswirkungen auf die Größe der Maschinenbefehle haben (ein paar lokale Variablen hinzufügen und die Funktion wird 100 B größer); aber ich sehe kein Muster. Gegen sowas sollte ich auch sowieso nicht optimieren. Mist.

Außerdem sortiert Visual C++ lokale Variablen im Speicher um statt die Deklarationsreihenfolge zu verwenden. Wenn man eine bestimmte Reihenfolge erzwingen will um besser zu adressieren, muss man alle lokalen Variablen in ein struct packen.

Darum noch eine Optimierung, falls ein Clang-Entwickler über mein Gejammer stolpert: Methoden sollten kein this benutzen, sondern this plus Versatz des ersten Attributes, das innerhalb der Funktion tatsächlich benutzt wird. Variablen sollten so sortiert werden, dass die am häufigsten benutzten den geringsten Versatz haben. Bei Objekten von über 256 B Größe bzw. bei über 256 B lokalen Variablen bewirkt das, dass öfter 8-Bit-movs benutzt werden können statt 32-Bit-movs; mit mindestens drei Bytes Größengewinn bei jedem Stack-Zugriff. Kann einige Funktionen auf ein Drittel schrumpfen und dürfte damit das Instruction Prefetching entlasten (höhere Anweisungsdichte im Cache).

Und dass ich jetzt schon für sowas optimiere, und damit tatsächlich noch ein paar Prozent raushole, das ist wieder jammernswert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Windows 10 - alles ergibt einen Sinn!
searchcode.com hat geschrieben:About 4,342 results
[...]
if (os.startsWith("Windows 9") || os.startsWith("Windows Me"))
[...]
Erinnern wir uns an Opera 10, Internet Explorer 10? Diesmal ist es umgekehrt. Da hat tatsächlich jemand mitgedacht, es ist die einzig richtige Entscheidung!
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Der Tag, an dem Raymond Chen über den Titel der nächsten Windows-Version entschied.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Mir fiel eben dieser Wikipedia-Artikel über Floyd-Steinberg-Dithering auf, weil er dieses Beispielbild benutzt:
Bild
und als geditherte Version dies (scheinbar via Gimp berechnet):
Bild
Das erscheint mir *viel* zu hell. Like, monstermäßig das Gamma verkackt. Im Sinne von: Gamma überhaupt nicht beachtet und die Farbfehler in den dunklen Bereichen 1:1 auf die hellen Bereiche aufaddiert. (Deutlichstes Zeichen: das rote Federkleid wird pink.)

Also habe ich mich rangesetzt und meinen Ditherer mit linearem Farbraum ausgepackt und das Foto durchgejagt. Ergebnis:
Bild
Woah shit – auch wenn die Farben nun passen, viel zu dunkel!

Mittlerweile bin ich so weit, dass fehlende Mitteltöne problematisch sind. Da nur ein Bit pro Kanal zur Verfügung steht, bedeutet das Schreiben eines Wertes != 0 potentiell das 60.000-fache des beabsichtigten Werts, und "vergiftet" damit alle Pixel drumherum, so dass sie sehr lange dunkel bleiben. Ein schönes Beispiel wo man die Mathematik verbessert, aber das Ergebnis nicht.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2545
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

CodingCat hat geschrieben:Windows 10 - alles ergibt einen Sinn!
searchcode.com hat geschrieben:About 4,342 results
[...]
if (os.startsWith("Windows 9") || os.startsWith("Windows Me"))
[...]
Erinnern wir uns an Opera 10, Internet Explorer 10? Diesmal ist es umgekehrt. Da hat tatsächlich jemand mitgedacht, es ist die einzig richtige Entscheidung!
Ja, das ist ganz toll, Windowsversionen abfragen, die es noch gar nicht gibt. Ich erinnere mich daran, dass ein Spiel das mal gemacht hat, das eigentlich nur Windows 95/98 mag. Mein XP hat es damals als Windows NT erkannt, und weil es unter dem echten Windows NT nicht lief, wollte es sich auch nicht unter XP starten lassen, obwohl es dort höchstwahrscheinlich funktioniert hätte. Naja, im Kompatibilitätsmodus ging es dann doch irgendwann.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Jonathan
Establishment
Beiträge: 2545
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Oh, nochwas: Ich hasse das Internet. Ich bin tatsächlich an den Punkt angekommen, an dem es mich wirklich nervt. Nicht weil die Technik schlecht gemacht wäre. Sondern weil die Zielgruppe mittlerweile ganz offensichtlich Leute sind, die entweder dumm sind oder sich gerne verarschen lassen.

Ich wollte für die neue Wohnung einfach nur Strom- und Internetanbieter recherchieren. Es ist auf allen Webseiten einfach das gleiche: Überall steht in dicken Zahlen, wie viel man spart, und was es für tolle Sonderaktionen gerade jetzt gibt, aber was man eigentlich bezahlt, und vor allen Dingen was genau man bekommt, das ist viel schwieriger zu finden, als man denken würde. In der Regel muss man einen Bestellvorgang Starten, um überhaupt irgendetwas anderes als Werbung zu sehen.
Es fängt ja schon mit Dingen wie "Im ersten Jahr nur x€" an - wie viel man danach bezahlt steht mit Glück klein daneben, mit Pech muss man es wirklich erst suchen. Welcher Marketing-Idiot denkt, dass das toll wäre? Werde ich wirklich für so dumm gehalten, in der heutigen Welt nicht mehr darauf zu achten, was ich eigentlich bestelle? Wieso wollen mich Firmen verwirren und verarschen, anstatt mir ehrlich zu sagen, was sie mir für welchen Preis bieten?
Und das schlimme ist, jede Webseite ist auf eine andere Art unübersichtlich. Das Spiel fängt jedesmal von vorne an. Liebe Anbieter, wenn wir uns den ganzen Marketing-Verwirrscheiß einfach mal sparen könnten, hätte wir am Ende beide mehr Zeit und Geld. Aber nein, wir optimieren lieber für Doofe, die offensichtlich auf so einen quatsch stehen. Arme Welt...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
TheBenji
Establishment
Beiträge: 129
Registriert: 07.01.2011, 17:59

Re: Jammer-Thread

Beitrag von TheBenji »

Das ist zwar nervig hat aber nichts mit dem Internet zu tun.
Das ist ja derselbe Bullshit ueberall.
Kannst da auch anrufen und dich verarschen lassen...
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: Jammer-Thread

Beitrag von Stephan Theisgen »

Aber das ist schon armselig! Ich habe letztens versucht die Preise für eine besondere Überweisung und für das Zusenden der Kontoauszüge (eine weniger außergewöhnliche Aktion) bei meiner Bank auf deren WebSite herauszufinden. Das war FAST unmöglich. Eigentlich war das Internet mal für den Austausch von Informationen gedacht, aber echte Information sind immer schwerer zu finden.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Jetzt erinnert mich der Thread an den Konditor um die Ecke. Der hat bayerische Wochen. Darum steht da jeden Morgen um elf Uhr ein Dutzend Rentner drin und diskutiert darüber, wie „dieses Internet“ die Jugend verblöden lässt.

Vorher habe ich ja nur allein über meine Spezialprobleme gejammert; da war das mehr so wie der Stadtpark mit dem verwahrlosten Penner, der die Tauben anschreit.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2138
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Wer mal eine Reise online buchen wollte, der wird bald feststellen, dass hinter vielen (fast allen) Portalen offensichtlich dieselbe Datenbank läuft. Ich habe mal läuten hören, in der Branche sei das ein Riesenlacher, dass die Kunden das offenbar nicht merken.

So wie die inszenierte Konkurrenz zwischen dem roten und dem blauen Elektronikmarkt.
Benutzeravatar
xq
Establishment
Beiträge: 1589
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von xq »

Zum Thema Datenbank:
www.spotoption.com beliefert so ziemlich jeden Broker für Binary Option Trading. Die API ist Grütze und verbuggt und in non-conform XML. Schön ist auch, wenn man für einzelne Broker dann auch noch Fixes in ein System machen muss, weil sie eine "ältere" Version der Datenbank verwenden.
Grauenhafte Sache, damit zu arbeiten.

Aber ja, mich kekst das auch an, dass man nirgendwo mehr gut präsentierte Informationen findet. Überall wird man nur zugeschissen mit Werbung, Ablenkung und was weiß ich. Richtig gut sortierte und aufgeräumte Websites sind echt selten geworden :(

ZFX ist da echt schon schön, es passiert zwar "nichts" verglichen zu so manch anderen Foren, dafür aber ist fast jeder Thread beobachtenswert.
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich sehe auf YouTube wieder Werbung.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Ingrater
Establishment
Beiträge: 103
Registriert: 18.04.2007, 21:52

Re: Jammer-Thread

Beitrag von Ingrater »

Warum das?
TheBenji
Establishment
Beiträge: 129
Registriert: 07.01.2011, 17:59

Re: Jammer-Thread

Beitrag von TheBenji »

...und die spielen immer oefter Werbung die 20 Sekunden oder so geht die du aber nicht skippen darfst.
Und da kann das video da hinter noch so toll sein, das guckt sich doch keiner mehr an...
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ingrater hat geschrieben:Warum das?
Mein Skriptblocker hat alle Daten verboten, die nicht von s.ytimg.com kamen – auch die Werbung, die auf Googles Ad-Servern lag.

Aber jetzt liegt die Werbung auf dem selben Server wie die Videos.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Ingrater
Establishment
Beiträge: 103
Registriert: 18.04.2007, 21:52

Re: Jammer-Thread

Beitrag von Ingrater »

Tja dann wird es doch mal zeit für AdBlock Edge ;-)
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Meh; Ad Blocker. Ich will ja nicht nur Werbung weghaben, sondern einfach alles an Skripten, das ich nicht manuell zulasse. Aber ein letzter Ausweg wäre es; ja.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Jammer-Thread

Beitrag von Spiele Programmierer »

AdBlock + NoScript?

Was haben Scripte im Allgemeinen mit Werbung auf einer anderen Domain bei Youtube zu tun?
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Die Skripte laden Ressourcen von wo anders nach; darum ging es. Eigentlich jammere ich mehr darüber, dass der Skriptblocker früher dank Werbung-Outsourcing die Werbung gleich mitgetötet hat, und jetzt nicht mehr :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
joggel

Re: Jammer-Thread

Beitrag von joggel »

Auch mal wieder jammern:

so schön das offline leben ist, etwas nervig ist es schon wenn man was im www nachschauen will und man hat nur ein smartfon was uralt ist.... :?
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

GetMessageTime() liefert nicht den Zeitstempel der letzten WM_PAINT. Sogar WM_CURSOR kommt an, aber nicht WM_PAINT. WTF?!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten