- VASSAL 3.7.7
- MacOS Ventura 32GB RAM
- I am having a graphics issue leading to freezing and generating an “Uncaught exception” error across multiple modules. The Vassal error text is not viewable nor are any of the “Yes/No/Cancel” options. Not sure if there’s a way for me to capture the error details.
I appreciate the reply; yes I cannot find that folder on my mac.
~/Library/Application Support/VASSAL
has to exist. Have you tried looking for it from a terminal?
E.g., open a terminal and at the prompt type:
cd "~/Library/Application Support/VASSAL"
and then
ls
What do you get for output?
I think I’m in the wrong place?
You’re not running the commands as stated above. You need to enter the commands exactly.
What you typed,
/Library/Application Support/VASSAL
is not the same thing as
cd "~/Library/Application Support/VASSAL"
Please try again.
My experience with the command prompt goes back to 1980s BASIC programming class but it’s been a few… decades
What’s the result of
cd "~/Library/Application Support"
followed by
ls
?
This actually won’t work for some reason. It won’t replace the ~
with his home directory path when inside the quotes (tried this myself to verify). Assuming @ScipioO is starting out in his home directory (which should be the default), this will work:
cd "Library/Application Support/VASSAL"
Then to open this location with the Finder:
open .
(for clarity, this is the word open
followed by a space and then a single period)
You should find a file named errorLog
. It is a plain text file, so you can open it with TextEdit, an app found on every Mac.
- Is this the complete errorLog?
- Did you experience the problem on the most recent run of Vassal before you pasted the contents of the errorLog here?
I suspect I know the cause of the graphics problem, from this:
+[CATransaction synchronize] called within transaction
There’s a bug in MacOS Ventura 13, detailed here, here, here, and here.
The solution appears to be to upgrade to MacOS Sonoma 14.
OK, thanks and I have upgraded to Sonoma and I’m still having graphics issues.
In that case, we need the complete contents of an errorLog from a run where you’ve had a problem on Sonoma. Please post that.
The “triggering” circumstance appears to be logging back and forth between mac accounts, not sure.
This is the start of the Exception Vassal is trying to report to you:
2024-02-04 17:02:25,431 [11019-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.ClassCastException: class sun.java2d.opengl.CGLGraphicsConfig cannot be cast to class sun.java2d.metal.MTLGraphicsConfig
The stack trace for it contains none of our code.
The cause of that exception is shown in this message, passed through to Vassal from Java:
2024-02-04 17:02:25,388 [372-ProcessLauncher-2] WARN VASSAL.tools.logging.LoggedOutputStream - 2024-02-04 17:02:25.388 java[11019:320104] GLDRendererMetal command buffer completion error: Error Domain=MTLCommandBufferErrorDomain Code=8 “Insufficient Memory (00000008:kIOGPUCommandBufferCallbackErrorOutOfMemory)” UserInfo={NSLocalizedDescription=Insufficient Memory (00000008:kIOGPUCommandBufferCallbackErrorOutOfMemory), NSUnderlyingError=0x600002a53390 {Error Domain=IOGPUCommandQueueErrorDomain Code=8 “(null)”}}
That’s a not a message from Java, however; it’s Java’s passing on a system message.
Similar exceptions appear after this one in the errorLog when Vassal is trying to show you a dialog indicating that there wasn’t enough video RAM, but trying to show you a dialog triggers the error again because video RAM is needed to show you the dialog and there still isn’t enough video RAM.
Other people have reported the same problem with apps such as Blender (1, 2), VTK, pyvista and JetBrains (1, 2).
It looks like this is a bug in MacOS, or possibly in the way Java is handling a lack of VRAM (though I’m not sure what Java could do about that realistically).
I don’t understand what this is. Would you describe what you’re doing in more detail?
Thanks for your time, I’ll take a look at your links. Could it be something like having too many modules open at the same time? I will report back anything useful about when it happens.