Problem RS1/Br650
-
- Beiträge: 6299
- Registriert: 09.11.2002 02:00:47
Re: Problem RS1/Br650
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
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...
-
- Beiträge: 1050
- Registriert: 30.10.2009 11:40:27
- Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein
Re: Problem RS1/Br650
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.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.
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.
Re: Problem RS1/Br650
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.
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
Re: Problem RS1/Br650
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.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.
Wie gesagt - wenn der Programmierer wusste, was er tut, passieren keine Unglücke.Spekulatius: Viel dürfte von der Datenstuktur abhängen, wenn ich ein Unglücklichen Datentype wähle kann 64 Bit nach hinten los gehen.
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.Aber wenn es gute und zeitgemäße Tools sind, ist paralleles Deployment für x32 und x64 wirklich trivial.
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.)Und ich glaube nicht das Carsten lust hat 2 Sourcen zu pflegen, wenn es um mehr als 2 - 3 Abweichungen oder Case-Anweisungen geht.
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).
- Carsten Hölscher
- Administrator
- Beiträge: 33472
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Problem RS1/Br650
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
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
-
- Beiträge: 8997
- Registriert: 04.11.2001 19:57:46
- Aktuelle Projekte: Zusi3 Objektbau
- Kontaktdaten:
Re: Problem RS1/Br650
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
- Michael_Poschmann
- Beiträge: 19888
- 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
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
Gruß
Michael
Re: Problem RS1/Br650
huch? Was soll das bedeuten?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.
-
- Beiträge: 6299
- Registriert: 09.11.2002 02:00:47
Re: Problem RS1/Br650
Hi,
mfg
Ralf
Na das die Internen DirectX-Strukturen immer 32Bit sind, oder Carten noch nicht mit DirectX64 rumgemacht hat, was seinem Staatment entsprechen würde.Mr. X hat geschrieben:...
huch? Was soll das bedeuten?
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...
Re: Problem RS1/Br650
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.
-
- Beiträge: 6299
- Registriert: 09.11.2002 02:00:47
Re: Problem RS1/Br650
Hi,
jedenfalls gibt es im web diverse Hinweise das es mit den Headerdateine probleme gibt wenn es in 64Bit geht.
mfg
Ralf
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...
-
- Beiträge: 8997
- Registriert: 04.11.2001 19:57:46
- Aktuelle Projekte: Zusi3 Objektbau
- Kontaktdaten:
Re: Problem RS1/Br650
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.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.
Zuletzt geändert von Alwin Meschede am 02.08.2014 13:50:33, insgesamt 1-mal geändert.
Mein Youtube-Kanal: youtube.com/echoray1
- Carsten Hölscher
- Administrator
- Beiträge: 33472
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Problem RS1/Br650
Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?
Carsten
Carsten
-
- Beiträge: 1050
- Registriert: 30.10.2009 11:40:27
- Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein
Re: Problem RS1/Br650
32bit-Teile in einer 64bit-Executable? So was geht?Carsten Hölscher hat geschrieben:Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?
Re: Problem RS1/Br650
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.32bit-Teile in einer 64bit-Executable? So was geht?
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?Verwechselt Ihr evtl. die Lauffähigkeit unter einem 64bit System mit dem Grafikteil selbst?
- Carsten Hölscher
- Administrator
- Beiträge: 33472
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Problem RS1/Br650
Also in der DirectX9-Doku findet sich kein Hinweis auf 64bit-Schnittstellen zur Graka. Lasse mich aber gerne eines besseren belehren.
Carsten
Carsten
Re: Problem RS1/Br650
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.
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.
Grund: Links korrigiert.
Re: Problem RS1/Br650
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.
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.
Re: Problem RS1/Br650
Gut, das klärt den Fall: DirectX9 ist 64-bit-fähig. Danke für den Hinweis.
- Carsten Hölscher
- Administrator
- Beiträge: 33472
- Registriert: 04.07.2002 00:14:42
- Wohnort: Braunschweig
- Kontaktdaten:
Re: Problem RS1/Br650
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
Carsten