Problem RS1/Br650

Alles rund um Führerstände, also Vorstellen eigener Projekte, Diskussionen usw.
Nachricht
Autor
F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Problem RS1/Br650

#21 Beitrag von F(R)S-Bauer »

Hallo,

Ich denke der größer Sprung war im Grafigbereich, bei der Umstellung von Win GDI API auf DX, bzw DX9.
Ich glaube nicht das zwischen 32 und 64 Bit windows so der Unterscheid ist, aber Carsten hat ja im Zusammenhang mit Wine schon mal ein Statement dazu ab gegeben, das er keine 2 Versionen pflegt.

Spekulatius: Viel dürfte von der Datenstuktur abhängen, wenn ich ein Unglücklichen Datentype wähle kann 64 Bit nach hinten los gehen.

mfg

Ralf
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Stephan/Taschi
Beiträge: 1050
Registriert: 30.10.2009 11:40:27
Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein

Re: Problem RS1/Br650

#22 Beitrag von Stephan/Taschi »

F(R)S-Bauer hat geschrieben:Spekulatius: Viel dürfte von der Datenstuktur abhängen, wenn ich ein Unglücklichen Datentype wähle kann 64 Bit nach hinten los gehen.
Aha? Also wenn du nicht gerade absichtlich Integer Overflows erzeugst oder so was und deine Logik davon abhängt, dass die sich genau richtig verhalten, kann ich mir da nicht wirklich was vorstellen.

Zum Beispiel bei C++ sind die Größen der einzelnen Datentypen (byte, int, short, long, shlong, sint, byng und so weiter und so fort) nicht mal innerhalb von einer Architektur wirklich einheitlich, da kann ein int also in unterschiedlichen Compilern unterschiedliche Größen auswerfen. Und da bringt das auch keinen plötzlichen Weltuntergang.

Benutzeravatar
F. Schn.
Beiträge: 6629
Registriert: 24.10.2011 18:58:26

Re: Problem RS1/Br650

#23 Beitrag von F. Schn. »

Hm. Da weißt du mehr als ich. Ich weiß nur, dass es mit der Einführung von 64 bit tatsächlich unerwartete Effekte gab, wenn man eine Zahl in einen Zeiger umwandeln will, weil der Datentyp "int" meines Wissens ~"bei 32 bit geblieben ist", weswegen es den Datentyp int_ptr gibt, wo auf jeden Fall ein Zeiger hineinpasst.

Aber wie gesagt: Der Streckenplan kommt vollständig ohne irgendwelche Spezialbehandlungen von 64 Bit aus, wenn man mal davon absieht, dass das nicht veröffentlichte Feature "Memory-Reader" im offiziellen "Dummy" ein paar int32 hinterlassen hat, wo man eigentlich void* erwarten würde.

Aber Carsten ist sowieso Delphi und (meines Wissens) Win32-API. Die Probleme sollten sich wie gesagt in Grenzen halten. Aber es kann immer Gründe geben, die einem alles verbauen.
Zuletzt geändert von F. Schn. am 01.08.2014 20:19:24, insgesamt 2-mal geändert.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#24 Beitrag von Mr. X »

Hm. Da weißt du mehr als ich. Ich weiß nur, dass es mit der Einführung von 64 bit tatsächlich unerwartete Effekte gab, wenn man eine Zahl in einen Zeiger umwandeln will, weil der Datentyp "int" meines Wissens ~"bei 32 bit geblieben ist", weswegen es den Datentyp int_ptr gibt, wo auf jeden Fall ein Zeiger hineinpasst.
Hier unterscheiden sich Windows und Unix auch nochmal. Korrekt ist in jedem Fall, dass bei richtiger Anwendung der Datentypen keine Probleme auftreten sollten (es sei denn, die verwendete Sprache ist Müll). C und C++ bieten da eine ganze Palette von Typen zur Wahl, von uint16_t bis int64_t, von size_t bis uintptr_t.
Spekulatius: Viel dürfte von der Datenstuktur abhängen, wenn ich ein Unglücklichen Datentype wähle kann 64 Bit nach hinten los gehen.
Wie gesagt - wenn der Programmierer wusste, was er tut, passieren keine Unglücke.
Aber wenn es gute und zeitgemäße Tools sind, ist paralleles Deployment für x32 und x64 wirklich trivial.
Exakt. Kompilierung für x86 und x64 ist kein Hexenwerk und trivial, es sei denn, die Entwicklungsumgebung oder verwendete Bibliotheken sind für die Tonne. Und das gilt übrigens (für C++) schon lange, dass es trivial ist, so zeitgemäß müssen die Tools nichtmal sein. Wie es bei Delphi aussieht, kann ich natürlich nicht beurteilen.
Und ich glaube nicht das Carsten lust hat 2 Sourcen zu pflegen, wenn es um mehr als 2 - 3 Abweichungen oder Case-Anweisungen geht.
Es gibt keinen vernünftigen Grund (schlechter Code ist kein "vernünftiger Grund") für auch nur eine Abweichung im Source-Code ansich. (Im Installer muss ggf. ein bisschen was ergänzt werden.)


Ich selbst werde irgendwann in absehbarer Zeit keine x86-Versionen meiner Software mehr anbieten. Und alle Software, die ich (mit-)entwickle, gibts inzwischen von mir auch als x64-Version. Es hat sich an einem Testballon, den ich gestartet habe, auch als unschädlich erwiesen, die x64-Version als Standardversion anzubieten. (Allerdings verdiene ich kein Geld mit der Software, also muss ich auch nicht hinter jedem einzelnen Nutzer hinterherlaufen)


Am Rande sei noch darauf hingewiesen, dass die höhere Speicherbandbreite von x64 den Nachteil hat, dass mancherorts mehr Speicher verbraucht wird. Andererseits hat eine AMD64-CPU weitere Vorteile gegenüber x86: SSE ist Standard für Fließkommaoperationen (schneller), andere Aufrufkonvention (schneller), mehr Register (schneller).

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Problem RS1/Br650

#25 Beitrag von Carsten Hölscher »

Hab mit 64 bit bisher keine Erfahrungen und kann entsprechend nichts dazu prophezeien.
Aber die Grafik läuft ja eh nur auf 32 bit, es beträfe also nur den Nicht-Grafik-Part, wo sowieso nur recht wenig Speicher verbraucht wird.

Carsten

Alwin Meschede
Beiträge: 8926
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Problem RS1/Br650

#26 Beitrag von Alwin Meschede »

Mein erster Wunschkandidat für eine x64-Version wäre sowieso der Gleisplaneditor - wo die Grenze von 2 GB pro Task heute schon gelegentlich erreicht wird, wenn man viele und hochauflösende Hintergrundbilder drin hat.
Zuletzt geändert von Alwin Meschede am 02.08.2014 09:42:58, insgesamt 1-mal geändert.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Michael_Poschmann
Beiträge: 19877
Registriert: 05.11.2001 15:11:18
Aktuelle Projekte: Modul Menden (Sauerland)
Wohnort: Str.Km "1,6" der Oberen Ruhrtalbahn (DB-Str. 2550)

Re: Problem RS1/Br650

#27 Beitrag von Michael_Poschmann »

Gerd und Andi hatten ja in Sachen Gleisplaneditor vor geraumer Zeit ungewollt ebenfalls die Grenzen ausgetestet. Offenbar bin ich moderater bei der Modulgestaltung unterwegs, das hat bei mir noch immer ohne Probleme hingehauen. Aber Alwins Anregung geht natürlich in eine sinnvolle Richtung.

Gruß
Michael

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#28 Beitrag von Mr. X »

Aber die Grafik läuft ja eh nur auf 32 bit, es beträfe also nur den Nicht-Grafik-Part, wo sowieso nur recht wenig Speicher verbraucht wird.
huch? Was soll das bedeuten?

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Problem RS1/Br650

#29 Beitrag von F(R)S-Bauer »

Hi,
Mr. X hat geschrieben:...
huch? Was soll das bedeuten?
Na das die Internen DirectX-Strukturen immer 32Bit sind, oder Carten noch nicht mit DirectX64 rumgemacht hat, was seinem Staatment entsprechen würde.

mfg

Ralf
Zuletzt geändert von F(R)S-Bauer am 02.08.2014 12:43:36, insgesamt 1-mal geändert.
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#30 Beitrag von Mr. X »

Es würde mich hier sehr wundern (ich habe mich allerdings nie mit DirectX befasst), wenn man für eine 64-bit-Version von DirectX irgendwie anderen Code schreiben müsste. Wenn zusi.exe 64-bit ist, muss sie jedenfalls auch gegen die 64-bit-DLLs von DirectX gelinkt sein, sonst ist zusi.exe ohnehin nicht lauffähig.

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Problem RS1/Br650

#31 Beitrag von F(R)S-Bauer »

Hi,

jedenfalls gibt es im web diverse Hinweise das es mit den Headerdateine probleme gibt wenn es in 64Bit geht.

mfg

Ralf
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Alwin Meschede
Beiträge: 8926
Registriert: 04.11.2001 19:57:46
Aktuelle Projekte: Zusi3 Objektbau
Kontaktdaten:

Re: Problem RS1/Br650

#32 Beitrag von Alwin Meschede »

F(R)S-Bauer hat geschrieben:jedenfalls gibt es im web diverse Hinweise das es mit den Headerdateine probleme gibt wenn es in 64Bit geht.
Wie alt sind diese Hinweise? Scheint jedenfalls nicht unlösbar zu sein. Gerade mal nachgeschaut: Das Spiel "Banished" hat einen DirectX-9c-Renderer und wird bei mir in 64 Bit ausgeführt. Hinter dem Spiel steht übrigens auch so eine 1-Mann-Softwarebude im Stil von Firma Hölscher Bahnsimulatoren.
Zuletzt geändert von Alwin Meschede am 02.08.2014 13:50:33, insgesamt 1-mal geändert.
Mein Youtube-Kanal: youtube.com/echoray1

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Problem RS1/Br650

#33 Beitrag von Carsten Hölscher »

Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?

Carsten

Stephan/Taschi
Beiträge: 1050
Registriert: 30.10.2009 11:40:27
Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein

Re: Problem RS1/Br650

#34 Beitrag von Stephan/Taschi »

Carsten Hölscher hat geschrieben:Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?
32bit-Teile in einer 64bit-Executable? So was geht?

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#35 Beitrag von Mr. X »

32bit-Teile in einer 64bit-Executable? So was geht?
Nein. Natürlich können über komplizierte Mechanismen (Pipes, Dateien, etc.) Daten zwischen einer 32-bit- und einer 64-bit-Anwendung ausgetauscht werden. Aber das wäre reichlich sinnlos, zumindest in diesem Fall. Eine Anwendung ist jedoch entweder 32- oder 64-bit, Mischen geht nicht. Auch alle DLL-Abhängigkeiten müssen diesbezüglich für die gleiche Platform sein.
Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?
Ich glaube nicht, etwas zu verwechseln. Wir reden von einer nativen 64-bit-Anwendung. Lauffähig unter AMD64-Systemen sind ohne weiteres (bekanntermaßen) alle x86-Programme, aber das ist ja nicht der Punkt. Was meinst Du denn mit "dem Grafikteil"? Könntest Du das näher erläutern?

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Problem RS1/Br650

#36 Beitrag von Carsten Hölscher »

Also in der DirectX9-Doku findet sich kein Hinweis auf 64bit-Schnittstellen zur Graka. Lasse mich aber gerne eines besseren belehren.

Carsten

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#37 Beitrag von Mr. X »

Die Treiber selbst laufen als 64-bit-Programme (das war ja auch der Grund für den Treibermangel in der Anfangszeit von 64-bit-Betriebssystemen). Wie die Grafikkarte ihren Grafikspeicher adressiert ist Sache des Treibers bzw. der Hardware und sollte unabhängig von der CPU des Systems sein. Da hast Du als Programmierer aber ohnehin keinen Einfluss drauf. (Das ist ja der Sinn von Abstraktion. Im übrigen ist es ja auch nicht so, dass Standardbibliotheken der Programmiersprachen (etwa die STL von C++) in irgendeiner Form anders verhalten oder eine andere Programmierschnittstelle hätten, wenn man für 64-bit kompiliert. Natürlich läuft auch dieser Code dann unter 64-bit, aber er tut das gleiche). Das ist auch der Grund, warum die DirectX-Doku wenig über 64-bit sagt. Es gibt da nicht viel zu sagen. Allerdings habe ich das hier gefunden:
http://msdn.microsoft.com/en-us/library ... s.85).aspx
http://msdn.microsoft.com/en-us/library ... s.85).aspx

Es könnte natürlich sein, dass es DirectX9 nicht für 64-bit gibt. Das wäre nichtmal verwunderlich, gegeben das DirectX 9.0c aus dem Jahr 2004 stammt. Dann kann man natürlich 64-bit-Zusi vergessen, es sei denn, DirectX10 ist abwärtskompatibel. Wenn das der Fall wäre, könnte man eine 64-bit-Version von Zusi einfach mit den DirectX-10-Bibliotheken linken (ohne die neuen Funktionen zu nutzen), aber da ich mich mit DirectX überhaupt nicht auskenne, weiß ich das nicht.

Aus der Tatsache, dass die Zusi-3-Demo hier ziemlich konstant ca. 35% CPU konsumiert (4-Kerner), schließe ich, dass die CPU übrgens durchaus eine große Rolle für Zusi spielt.
Zuletzt geändert von Max Senft am 05.08.2014 20:12:41, insgesamt 1-mal geändert.
Grund: Links korrigiert.

Jan
Beiträge: 513
Registriert: 28.11.2007 19:13:51
Wohnort: Stutensee

Re: Problem RS1/Br650

#38 Beitrag von Jan »

Zumindest laut dieser Seite sollte DirectX 9 auch mit 64-bit-Programmen funktionieren ("The DirectX 9 SDK has libraries to support both x86- and x64-based projects").
Als temporäre Zwischenlösung gäbe es außerdem vielleicht noch LARGEADRESSAWARE - falls Zusi, bzw. der Streckeneditor damit zurechtkommt, hätte man unter einem 64-bit-Betriebssystem auch als 32-bit-Prozess immerhin 4 GB an Speicher zur Verfügung.

Mr. X
Beiträge: 1335
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Problem RS1/Br650

#39 Beitrag von Mr. X »

Gut, das klärt den Fall: DirectX9 ist 64-bit-fähig. Danke für den Hinweis.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Problem RS1/Br650

#40 Beitrag von Carsten Hölscher »

DirectX9 schon, das war ja oben schon geklärt. Aber die Graka hat m.E. keine 64bit-Struktur - zumindest hab ich noch keine entsprechenden Hinweise irgendwo gesehen.

Carsten

Antworten