Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX: MAC GlobalUseMetal OpenGL Contextfehler (https://www.delphipraxis.net/205452-fmx-mac-globalusemetal-opengl-contextfehler.html)

Harry Stahl 10. Sep 2020 22:31

FMX: MAC GlobalUseMetal OpenGL Contextfehler
 
Ich habe hier ein seltsames Problem:

Eine recht umfangreiche Anwendung kann ich. mit Delphi 10.4.1 kompilieren und unter MACOS ausführen, auch wenn ich in der DPR-Datei als ersten Befehl "GlobalUseMetal := True setze.

Bei einer anderen Anwendung funktioniert das nicht, da erhalte ich den folgenden Fehler:

[OpenGL] Bei der Überprüfung des Wertes des OpenGL-Fehler-Stacks wurde ein Fehler gefunden: Code=(1286, "GL_INVALID_FRAMEBUFFER_OPERATION")
Exception EContext3DException in Modul PCAdress bei 000000010390A1E5.
Fehler im Kontext: Methode='DoClear'.

Das Problem entsteht immer dann, wenn der Content einer Form angezeigt werden soll. Die Form selber, also der Rahmen mit Titel und buttons wird angezeigt, aber dann Crasht es (unit FMX.context.mac in der Methode "Doclear").

Das finde ich irgendwie seltsam, da ja wegen GlobalUseMetal := true gar kein OPENGL mehr verwendet werden sollte, oder?

Hat jemand evtl. mal ein ähnliches Problem gehabt und konnte es beheben?

MacOS 10.14, Delphi 10.4.1

Nachtrag: Bei der Anwendung, wo es funktioniert, wird die Methode DoClear in der Unit FMX.context.mac auch gar nicht aufgerufen, sondern die DoClear in der FMX.Context.Metal (kann dort übrigens nur einen Breakpoint setzen, aber nicht weiter debuggen - Die Anwendung hängt mit Breakpoint dann an dieser Stelle).

Was könnte das denn nur sein, das offensichtlich die Verwendung der OpenGL-Unit (FMX.context.mac) erzwingt, obwohl GlobalUseMetal gesetzt ist?

hoika 11. Sep 2020 08:03

AW: FMX: MAC GlobalUseMetal OpenGL Contextfehler
 
Hallo,
könnte es sein,
das es die Variable 2-mal gibt und die Unit-Reihenfolge (in der DPR) eine Rolle spielt,
welche Variable gesetzt wird?

Rollo62 11. Sep 2020 10:54

AW: FMX: MAC GlobalUseMetal OpenGL Contextfehler
 
Ich glaube das GlobalUseMetal ist nur eine Empfehlung, und es muss nicht unbedingt Metal benutzen, der Fallback ist auf OGL.

https://blog.grijjy.com/2020/05/25/b...d-delphi-10-4/

Habe aber noch nicht weiten in den Code geschaut.

Harry Stahl 11. Sep 2020 14:56

AW: FMX: MAC GlobalUseMetal OpenGL Contextfehler
 
Danke für die Antworten. Nein, die Variable gibt es nicht zweimal und Sie hat auch nur eine Auswirkung, wenn Sie in der DPR-Datei noch vor dem "Application.Initialize" gesetzt wird.

Es ist auch keine Empfehlung, sondern unter MACOS eine explizite Anweisung, METAL zu nutzen.

Wie gesagt, schräg, dass es in der einen Anwendung geht, in der anderen nicht (beide sind recht umfangreich und ähnlich in der Komponenten-Zusammensetzung).


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 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