AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia GR32 3.0 - 64-Bit nicht möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

GR32 3.0 - 64-Bit nicht möglich?

Ein Thema von Alter Mann · begonnen am 2. Dez 2022 · letzter Beitrag vom 2. Dez 2022
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 08:17
Hallo,
leider bekomme ich die GR32_R230.bpl nicht kompiliert(64-Bit).
Fehlermeldung:
Code:
[dcc64 Fehler] GR32_PolygonsAggLite.pas(838): E2107 Operandengröße stimmt nicht überein
Delphi-Quellcode:
...
@LoopStart: //Zeile 837
        MOVZX R9D, [R10 + 4 * R8].QWORD //<- Hier
...
Gibt es eine bekannte Lösung oder geht 64-Bit grundsätzlich nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 08:28
Was ist GR32_R230?

Wenn der aus Optimierungsgründen nur 32-Bit Assembler beinhaltet wird kein 64-Bit Compilierung nötig sind.
Für die problematischen Stellen muss man für 64 Bit entweder Pascal-Code verwenden oder 64-Bit Assembler-Code

Dafür sind auch entsprechende Compiler-Defines definiert
https://docwiki.embarcadero.com/RADS...ten_Assemblers
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.647 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 08:53
Was ist GR32_R230?
Das ist die Graphics32 Bibliothek.

Wenn der aus Optimierungsgründen nur 32-Bit Assembler beinhaltet wird kein 64-Bit Compilierung nötig sind.
Das ist ja ein 64-Bit Register, insofern muss das schon 64-Bit Code sein.

Auf den ersten Blick finde ich dazu keine Bugmeldung. Es wäre sinnvoll, das zu melden:
https://github.com/graphics32/graphics32/issues

Vielleicht ist das unter 64-Bit z.B. nur für Lazarus getestet worden oder so. Auf jeden Fall gibt es dort offenbar PUREPASCAL Implementierungen, so dass es mit dieser Direktive vermutlich geht.

// EDIT:
Ach ja:
Der Grund, dass es nicht geht, liegt darin, dass R9D die Hälfte des R9 Registers ist und damit ein 32-Bit Wert. Da passt kein QWORD rein. Aufgrund der Kommentare, dass es um die einzelnen RGB-Farbwerte und den Alphakanal geht, vermute ich, dass dort .Byte statt .QWORD stehen muss.
Sebastian Jänicke
AppCentral

Geändert von jaenicke ( 2. Dez 2022 um 09:13 Uhr)
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 13:21
Danke.

Ich habe den Teil
Code:
{$IFNDEF PUREPASCAL}
erste inmal auskommentiert.
Ist Zwar nicht die 'Lösung', aber es läßt sich in 64-Bit kompilieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 13:42
Emba hat an vielen Stellen keine Lust neues Assembler zu bauen,
drum ist PUREPASCAL wohl nur bei Win32 undefiniert.

Im Win64 ist bei Assembler auch nicht alles möglich, was im Win32 mal ging.



Dennoch wäre hier vorher auch ein {$IFDEF WIN64} und anschließendes {$DFINE bzw. {$UNDEF PUREPASCAL} möglich.
Bzw. nicht PUREPASCAL sondern WIN64 oder Ähnliches prüfen, das was man wirklich meinte.
$2B or not $2B

Geändert von himitsu ( 2. Dez 2022 um 13:45 Uhr)
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 14:10
ne, ne

@jaenicke hat da wohl schon recht wenn man sich das hier anschaut.

Dort steht bei Beschreibung ('DeepL'):
Code:
Im 64-Bit-Modus beträgt die Standardoperationsgröße des Befehls 32 Bit. Die Verwendung des Präfixes REX.R ermöglicht den Zugriff auf zusätzliche Register (R8-R15). Durch die Verwendung des Präfixes REX.W wird der Betrieb auf 64-Bit-Operanden erweitert. Siehe die Übersichtstabelle am Anfang dieses Abschnitts zu Kodierungsdaten und -grenzen.
Da ich aber bei GITHUB keinen Account habe/bisher brauchte, fällt die Sache mit dem issues aus.

Primär geht es mir um GLScene 2.1. Das dort eingebundene GR32 ist aber '2.0.0 alpha'.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#7

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 19:56
ne, ne

@jaenicke hat da wohl schon recht wenn man sich das hier anschaut.

Dort steht bei Beschreibung ('DeepL'):
Code:
Im 64-Bit-Modus beträgt die Standardoperationsgröße des Befehls 32 Bit. Die Verwendung des Präfixes REX.R ermöglicht den Zugriff auf zusätzliche Register (R8-R15). Durch die Verwendung des Präfixes REX.W wird der Betrieb auf 64-Bit-Operanden erweitert. Siehe die Übersichtstabelle am Anfang dieses Abschnitts zu Kodierungsdaten und -grenzen.
Da ich aber bei GITHUB keinen Account habe/bisher brauchte, fällt die Sache mit dem issues aus.

Primär geht es mir um GLScene 2.1. Das dort eingebundene GR32 ist aber '2.0.0 alpha'.
Hast du einen Google Account?
m.W. kann man sich damit auch bei GitHub anmelden!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: GR32 3.0 - 64-Bit nicht möglich?

  Alt 2. Dez 2022, 20:04
Sicher?

https://github.com/topics/sign-in-with-google
aber nicht bei sich selber.

Klar, Github gehört ja inzwischen auch Microsoft und nichtmal die eigenen Dienste gehen als Login.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz