United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-4607536 Use opengl to improve runtime performance of Swing/2D
JDK-4607536 : Use opengl to improve runtime performance of Swing/2D

Details
Type:
Enhancement
Submit Date:
2001-12-14
Status:
Resolved
Updated Date:
2003-04-21
Project Name:
JDK
Resolved Date:
2003-04-21
Component:
client-libs
OS:
generic
Sub-Component:
2d
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
5.0
Fixed Versions:
5.0 (tiger)

Related Reports
Duplicate:

Sub Tasks

Description

Name: ca25432			Date: 12/13/2001


Improve the runtime performance of Swing and 2D , using opengl bindings. OpenGL has drivers available on many operating systems that can take advantage of hardware acceleration on the graphics card itself.

Original optional support is for Linux and Solaris.

Later addition for optional support for windows tracked separately as 5008045 OGL: add OpenGL-based pipeline for Windows

                                    

Comments
EVALUATION



Name: ca25432			Date: 12/13/2001


This feature has been added for Tiger release

======================================================================

A baseline OpenGL pipeline for Java 2D has been putback as of 2/18/2003.  This
OpenGL pipeline is currently disabled by default, but can be enabled by
specifying the -Dsun.java2d.opengl=true system property on the command line.  A
number of requirements must be met for the pipeline to be enabled:
  - the -Dsun.java2d.opengl=true flag must be specified
  - the libGL.so library must be available and all required function symbols
    must be present
  - the GLX version must be >= 1.3
  - the OpenGL version must be >= 1.2 and the GL_ARB_imaging subset must be
    present
If any of these requirements is not met, the existing X11 pipeline will be
used.  These requirements are subject to change in the future as the
pipeline is updated (requirements will most likely be loosened so that we
support a wider variety of configurations).

This new pipeline has been extensively tested using the IFB (Expert 3D) and
IFB-lite (Expert 3D Lite) framebuffers and the Sun OpenGL for Solaris 1.3
implementation.  In theory this pipeline should work well on all modern
Sun framebuffers, as well as any video card supported by XFree86 on Linux.
However, there are some outstanding driver/library bugs that cause problems
when running Java apps with the OpenGL pipeline enabled.  We are working
closely with driver groups within Sun and at other companies (ATI, Nvidia,
etc.) to get these issues resolved.  Once these bugs are fixed, the Java 2D
OpenGL pipeline should be accelerated in hardware on a variety of video
cards, including (but not limited to):
  - Sun IFB series (Expert 3D, Expert 3D Lite, XVR-500)
  - Sun FFB3 (XVR-1000)
  - Sun IFB3 (XVR-1200)
  - Nvidia boards from the TNT series to the Radeon series
  - ATI boards in the FireGL and Radeon series
  - many other boards supported by the open source DRI project
 
This umbrella RFE to support OpenGL will be marked "fixed" since baseline
support for OpenGL is now available in Tiger.  There is still plenty of
engineering work remaining to make the pipeline perform better, to take
advantage of more OpenGL features and extensions, and so on.  Some examples
include:
  - enable OpenGL as the default pipeline for certain (modern) framebuffers
  - cache glyphs as OpenGL texture objects for increased text performance
  - allocate VolatileImages in unused backbuffer memory
  - accelerate Beziers using OpenGL primitives
  - fix XORed text rendering (causes the only known JCK failure when the
    sun.java2d.opengl=true flag is specified)
These issues will be opened as separate bugs and RFEs with "OGL: <desc>" in
the synopsis for easy tracking.
 
Note that the OpenGL libraries need not be installed on build machines in
order to build the JDK.  The necessary headers are included in the source
tree (only used to resolve GL_* constants) and the appropriate libraries are
dynamically loaded at runtime, obviating the need to statically link
libGL.so at build time.
###@###.### 2003-02-18
                                     
2003-02-18
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger

FIXED IN:
tiger

INTEGRATED IN:
tiger
tiger-b05


                                     
2004-06-14



Hardware and Software, Engineered to Work Together