Skip to content

fix: handle Skiko/Direct3D crash on Windows GPU configurations (#981)#982

Merged
stephanj merged 4 commits intomasterfrom
fix/issue-981
Mar 9, 2026
Merged

fix: handle Skiko/Direct3D crash on Windows GPU configurations (#981)#982
stephanj merged 4 commits intomasterfrom
fix/issue-981

Conversation

@stephanj
Copy link
Copy Markdown
Collaborator

@stephanj stephanj commented Mar 9, 2026

Summary

  • SafeComposeContainer wraps ComposePanel to catch UnsatisfiedLinkError during addNotify(), automatically retries with software rendering, and shows a fallback Swing panel with recovery instructions if all rendering fails
  • Force software rendering setting added to Appearance settings with early initialization in PostStartupActivity (sets skiko.renderApi=SOFTWARE before any Compose UI is created)
  • Troubleshooting docs added with GPU rendering fix guide, plus FAQ entry for Windows users

Context

On certain Windows GPU/driver configurations, Skiko's Direct3DSwingRedrawer fails to load the native library during ComposePanel.addNotify(). Since UnsatisfiedLinkError extends Error (not Exception), Skiko's RedrawerManager doesn't catch it, crashing the entire tool window with an empty "New Chat" tab.

Fixes #981

Test plan

  • Verify build compiles cleanly on JDK 21
  • Verify plugin loads normally on macOS/Linux (no regression)
  • Test on Windows with affected GPU config: chat UI should show fallback message instead of crashing
  • Test "Force software rendering" setting: enable in Settings > Appearance, restart IDE, verify chat UI works
  • Verify -Dskiko.renderApi=SOFTWARE VM option works as documented
  • Check troubleshooting page renders correctly in Docusaurus

🤖 Generated with Claude Code

stephanj and others added 4 commits March 9, 2026 13:00
Wrap ComposePanel in SafeComposeContainer that catches UnsatisfiedLinkError
during addNotify(). On failure, retries with software rendering and shows
a fallback Swing panel with recovery instructions if that also fails.

Closes #981

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add forceSkikoSoftwareRendering option to DevoxxGenieStateService and
Appearance settings UI. PostStartupActivity sets the skiko.renderApi
system property early before any Compose UI is created.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
#981)

Add new troubleshooting page covering Skiko/Direct3D errors, Ollama
connection issues, API key errors, and other common problems. Update
FAQ with Windows GPU fix entry and link to troubleshooting guide.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stephanj stephanj merged commit 500ba15 into master Mar 9, 2026
7 of 9 checks passed
@stephanj stephanj deleted the fix/issue-981 branch March 9, 2026 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] UnsatisfiedLinkError on opening chat window

1 participant