Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

11.08.2010, 16:39

In dem Buch welches ich lese wird Assembler als "Allheilmittel in Sachen Geschwindigkeitsoptimierung" angepriesen - Kein Vergleich zu Win32 Anwendungen...

Dann solltest du das Buch besser wegwerfen, das ist nämlich absoluter Schwachsinn (abgesehen davon dass man Win32 Anwendungen in allen möglichen Sprachen, Assembler inklusive, schreiben kann).

  • »Johannes Schneider« ist der Autor dieses Themas

Beiträge: 103

Beruf: Chemiestudent

  • Private Nachricht senden

12

11.08.2010, 16:40

:D danke
"Das Glück des Forschers besteht nicht darin, die Wahrheit zu besitzen, sondern eine Wahrheit zu erringen. Und in diesem fortschreitendem, erfolgreichen Suchen nach der Wahrheit - darin liegt die
eigentliche Befriedigung." Max Planck

Tobiking

1x Rätselkönig

  • Private Nachricht senden

13

11.08.2010, 17:07

Zum Thema Geschwindigkeit:
Wenn man sich auskennt kann man schon mit Assembler deutlich höhere Geschwindigkeiten erzielen. Das bezieht sich aber zum großen Teil aber auf den Einsatz von MMX und SSE, und macht auch nur Sinn wenn man Funktionen hat, die sehr oft aufgerufen werden, und die auf mehreren Daten gleichzeitig arbeiten. Bild- und Videobearbeitung sind da Paradebeispiele für. Aber auch bei Spielen wird es eingesetzt, z.B. bei Matrixoperationen.

Zum Thema Unter schied x86 / AMD64:
Vom Befehlssatz her sind die Unterschiede zwischen 32 und 64 Bit schon recht gering. Aber manchmal sorgen kleine Änderungen wie Registerzahl und Größe für ein anderes Vorgehen. Bei vielen Registern macht es z.B. deutlich weniger Sinn Funktionsparameter über den Stack zu übergeben, da viel öfter alle Parameter in Register passen. Altes Wissen wird dadurch aber nicht unbrauchbar, man muss nur bei manchen Konventionen aufpassen, ob diese noch gelten.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tobiking« (11.08.2010, 17:14)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

11.08.2010, 17:09

Das mit den deutlich höheren Geschwindigkeiten kann man so pauschal absolut nicht sagen. Und für SSE verwendet man besser einfach Intrinsics. Das funktioniert dann auch mit x64 und zwingt den Compiler nicht dazu den Optimizer abzuschalten.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

15

11.08.2010, 17:25

Und für SSE verwendet man besser einfach Intrinsics. Das funktioniert dann auch mit x64 und zwingt den Compiler nicht dazu den Optimizer abzuschalten.

Oh, ich wusste gar nicht das damit sämtliche Befehle abgedeckt werden, und vor allem nicht das der gcc das auch kann :huh:

Dann fällt mir aus Geschwindigkeitsgründen nix mehr für Assembler ein, wo es wirklich etwas ausmachen würde. Wenn der Compiler nicht gerade totalen Mist baut (was eher selten vorkommt) ist die Lösung auch oftmals besser als eine Handgeschriebene.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

11.08.2010, 17:33

Moderne C++ Compiler sollten sogar nicht nur oft sondern eigentlich fast immer besser oder zumindest praktisch gleich gut wie eine in asm handgecodete Lösung sein, außer vielleicht wenn ein absoluter asm Guru dran war und natürlich unter der Voraussetzung dass der C++ Code gut ist. Selbst der Guru kann nicht von Haus aus was rausholen wo es nichts zu holen gibt. Asm zur Optimierung macht dann Sinn wenn es erstens mal wirklich ein Performanceproblem gibt, zweitens anderwertig nichtsmehr rauszuholen ist und man drittens entsprechend viel Ahnung hat.

Raytracer

Frischling

Beiträge: 17

Beruf: Student

  • Private Nachricht senden

17

11.08.2010, 18:15

Um vielleicht nochmal zum Thema Assembler-IDE zu kommen. Die Inventor-IDE (geschrieben in Java) habe ich letzten Sommer entdeckt. Der Autor hat außerdem einige Videotutorials auf ShowMeDo zum Thema Assembler.

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

18

11.08.2010, 18:51

Danke übrigens für die Antwort wegen DX 10/11 und nochmal ne kleine Frage:

Lohnt es sich, wenn man auf DX 11 umsteigen will (von DX 9) extra ein Buch zu kaufen? :huh:
Ist mit Fixed Function Pipeline eigentlich die Transformationspipeline gemeint? Wenn ja, kenne ich mich damit aus! 8)

MFG Harry222

19

11.08.2010, 19:07

Ob es sich lohnt ein Buch zu kaufen, weiß ich nicht. Aber ich bin auch dabei von DirectX 9 auf 11 umgestiegen und hab mir auch kein Buch gekauft. Du kannst dir mal die Doku von DirectX 11 durchlesen, im aktuellen SDK sind auch ein paar Tutorials dabei, dann siehst du schon was anders so DirectX 9 ist. Ich glaube so Zeit gibt es auch noch kein gutes Buch für DirectX 11.
Die Fixed Function Pipeline macht mehr, als die Verteizes zu transformieren. Lichtberechnungen werden ausgeführt, wie die Pixel von Texturen auf die Vertizes kommen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Male« (11.08.2010, 19:18)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

20

11.08.2010, 19:15

Doku*
Und es kommen keine Pixel von Texturen auf Vertices ;) Es kommen Texel aus Texturen auf Pixel im Buffer. Und natürlich macht die FFP noch mehr als das... Z-Buffering, Transparenzen, etc, etc. :)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige