-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P3
-
Affects Version/s: jfx25.0.2, jfx26
-
Component/s: javafx
-
x86
-
os_x
Under virtual machines, JFX for OS X selects SW rendering as the default because OpenGL is not supported.
JFX 25.0.2 started including the Metal rendering pipeline as a second candidate to be probed. However, it seems that Metal is not supported either, and instead of switching to the software renderer, it causes the program to crash.
```
* thread #22, name = 'Java: QuantumRenderer-0', stop reason = signal SIGABRT
* frame #0: 0x00007ff80d55dc52 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007ff80d597f85 libsystem_pthread.dylib`pthread_kill + 262
frame #2: 0x00007ff80d4b8b19 libsystem_c.dylib`abort + 126
frame #3: 0x00007ff81883cf26 Metal`-[MTLIOAccelDevice newIndirectArgumentEncoderWithLayout:] + 9
frame #4: 0x00007ff81887f35c Metal`-[_MTLFunction newArgumentEncoderWithBufferIndex:reflection:functionReflection:] + 364
frame #5: 0x0000000100877a10 libprism_mtl.dylib`___lldb_unnamed_symbol649 + 432
```
The workaround would be to select the software renderer manually
```
-Dprism.order=sw
```
The result of "system_profiler SPDisplaysDataType" on VM
```
2026-01-15 17:42:31.714 system_profiler[1047:12599] Device PreExisted [0000000100000389] Apple Paravirtual device
Graphics/Displays:
Apple Paravirtualized Graphics Device:
Chipset Model: Apple Paravirtualized Graphics Device
Type: GPU
Bus: PCIe
PCIe Lane Width: x0
VRAM (Total): 64 MB
Vendor: Apple (0x106b)
Device ID: 0xeeee
Revision ID: 0x0000
Metal Support: Metal 2
Displays:
Apple Virtual:
Resolution: 4096 x 2560
UI Looks like: 2048 x 1280
Framebuffer Depth: 24-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Connection Type: Internal
```
JFX 25.0.2 started including the Metal rendering pipeline as a second candidate to be probed. However, it seems that Metal is not supported either, and instead of switching to the software renderer, it causes the program to crash.
```
* thread #22, name = 'Java: QuantumRenderer-0', stop reason = signal SIGABRT
* frame #0: 0x00007ff80d55dc52 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007ff80d597f85 libsystem_pthread.dylib`pthread_kill + 262
frame #2: 0x00007ff80d4b8b19 libsystem_c.dylib`abort + 126
frame #3: 0x00007ff81883cf26 Metal`-[MTLIOAccelDevice newIndirectArgumentEncoderWithLayout:] + 9
frame #4: 0x00007ff81887f35c Metal`-[_MTLFunction newArgumentEncoderWithBufferIndex:reflection:functionReflection:] + 364
frame #5: 0x0000000100877a10 libprism_mtl.dylib`___lldb_unnamed_symbol649 + 432
```
The workaround would be to select the software renderer manually
```
-Dprism.order=sw
```
The result of "system_profiler SPDisplaysDataType" on VM
```
2026-01-15 17:42:31.714 system_profiler[1047:12599] Device PreExisted [0000000100000389] Apple Paravirtual device
Graphics/Displays:
Apple Paravirtualized Graphics Device:
Chipset Model: Apple Paravirtualized Graphics Device
Type: GPU
Bus: PCIe
PCIe Lane Width: x0
VRAM (Total): 64 MB
Vendor: Apple (0x106b)
Device ID: 0xeeee
Revision ID: 0x0000
Metal Support: Metal 2
Displays:
Apple Virtual:
Resolution: 4096 x 2560
UI Looks like: 2048 x 1280
Framebuffer Depth: 24-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Connection Type: Internal
```
- caused by
-
JDK-8271024 Implement macOS Metal Rendering Pipeline
-
- Resolved
-