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. |