processing / processing/processing4

Figure out why appbundler breaks OpenGL when built on Catalina and later

Aperta
#284 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

help wanted macos
Lingua principale
Java
Stelle
494
Fork
183
Merge medio
4h 39m
PR unite (30g)
3

Descrizione

Created by: benfry

As seen in #249, Export to Application was broken in alpha 5 and beta 1. This was after the native code for JavaApplicationStub was built on Catalina or Big Sur. Using a Mojave machine got things working again.

As can be seen in #249, it seems to be a threading issue (GL seems to be running on the wrong thread). I suspect there's something bad in our code, and that the Catalina/Big Sur change is just revealing it. Can someone help us find it?

It's also not a problem in our fork of appbundler: recompiling with the latest upstream source (on Big Sur) led to the same crash.

It's also possible that the macOS SDK has had a change with with regards to app threads. The -XstartOnFirstThread [parameter](https://www.google.com/search?q='Reference to deleted milestone 22'-xstartonfirstthread%22) is a very real thing on macOS, where app threads are Thinked Differently than on other platforms.

To dig into this issue:

cd build/macosx/appbundler
ant
cd ../..
ant run

Then open an OpenGL sketch, Export to Application, and watch as it crashes on startup. Behold the confusing stack trace. Or perhaps if you have more macOS development experience, become invigorated by the challenge of un-mucking this Java/macOS integration.

(Edited for clarification)

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia in build/macosx/appbundler ed esegui ant, quindi dalla directory build padre esegui ant run. Apri uno sketch OpenGL e usa Export to Application per riprodurre il crash all'avvio e ispezionarne lo stack trace. Il lavoro è completato quando le applicazioni OpenGL esportate si avviano senza il crash correlato al threading su Catalina o Big Sur.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, macos
Ambito
build-system, desktop
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.