B Java 2D Properties
This appendix presents properties that can be useful in troubleshooting Java 2D.
This appendix contains the following sections:
Properties on Linux
Table B-1 describes the default values of some useful properties on the Linux platform.
Table B-1 Default Java 2D Properties on Linux
| Setup | DGA | SHM | Pixmaps | OnScreen | OffScreen |
|---|---|---|---|---|---|
|
Linux, SunRay, VNC |
Off |
On |
On |
X11/MITSHM |
Shared/Server Pixmaps |
|
Remote X server, ssh |
Off |
Off |
On |
X11 |
Server Pixmaps |
The following list explains how to change the defaults.
-
The X11 pipeline is the default pipeline for Linux. Change this default as follows:
-
-Dsun.java2d.opengl=true— Attempt to enable the OpenGL pipeline.
-
-
The use of DGA is controlled as follows:
-
NO_J2D_DGA unset— Use DGA, if available. -
NO_J2D_DGA set— Disable the use of DGA.
-
-
MIT Shared Memory Extension (SHM) is controlled as follows:
-
To use SHM, if available, specify either one of the following properties:
NO_J2D_MITSHM unsetJ2D_USE_MITSHM=true -
To not use SHM, specify either one of the following properties:
NO_J2D_MITSHM setJ2D_USE_MITSHM=false
-
-
The general use of pixmaps is controlled as follows:
-
-Dsun.java2d.pmoffscreen unset— Use pixmaps if DGA is not available. -
-Dsun.java2d.pmoffscreen=true— Force the use of pixmaps. -
-Dsun.java2d.pmoffscreen=false— Disable the use of pixmaps.
-
-
The use of Shared and Server pixmaps is controlled as follows:
-
J2D_PIXMAPS unset— Use both types. -
J2D_PIXMAPS=shared— Use only shared memory pixmaps. -
J2D_PIXMAPS=sserver— Use only server-side pixmaps.
-
-
The choice of default visual is controlled as follows:
-
FORCEDEFVISunset (default) — Use the best visual available. -
FORCEDEFVISset to a hexadecimal value — Use the visual whose ID is the hexadecimal value. -
FORCEDEFVISset to any other value — Use the default visual.
-
Properties on Windows
The following list describes some useful properties on Windows platforms.
-
The DirectDraw/GDI pipeline is the default pipeline for Windows. Change this default as follows:
-
-Dsun.java2d.noddraw=true— Disable the use of the DirectDraw pipeline. GDI will be used instead. -
-Dsun.java2d.noddraw=false— Enable the use of the DirectDraw pipeline. -
-Dsun.java2d.d3d=false— Disable the use of the Direct3D pipeline. -
J2D_D3D=false— Disable the use of the Direct3D pipeline. -
-Dsun.java2d.d3d=true— Enable the use of the Direct3D pipeline. -
J2D_D3D=true— Enable the use of the Direct3D pipeline.
-
-
Control the use of the built-in surface punting mechanism as follows:
-
-Dsun.java2d.ddforcedram=true— Keep volatile images in VRAM.
-
-
Control the use of DirectDraw blit operations as follows:
-
-Dsun.java2d.ddblit=false— Disable the use of DirectDraw blit operations. GDI blits will be used instead.
-
Properties on macOS
The following table describes some useful Java 2D properties on macOS.
Table B-2 Java 2D Properties on macOS
| System Property | Default Value | Description |
|---|---|---|
sun.java2d.metal |
JDK 19 and later: trueJDK 17 and 18:
|
If true, then Metal is the default Java 2D rendering
pipeline.
|
sun.java2d.opengl |
JDK 19 and later: falseJDK 18 and earlier:
|
If true, then OpenGL is the default Java 2D
rendering pipeline.
|