JDK-6357499 : OGL crashed with resizing Java2Demo Frame on Radeon 9800XT with driver 5.11
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2005-12-01
  • Updated: 2010-04-03
  • Resolved: 2007-01-12
Related Reports
Duplicate :  
Description
Java Version: 1.6.0-rc-b61
Platform: windowsXPpro with SP2
Video card: Radeon 9800XT with 5.11 released on 11/11/2005

Problems:
Running Java2Demo with OGL pipeline enabled on WinXP on above machine, when you max the main frame, and min the frame, it crashed, sometimes, you need to repeat zoom in and out several times to generate the crash.
It is OK if OGL disabled and 
it is also OK in tiger fcs b64 with OGL enabled.

Not sure it is a driver bug, since it is pass in tiger, thinking it is a jdk bug, maybe.

How to reproduce:
1. run Java2Demo with OGL enabled on ATI card with the new driver.
2. Resize the frame and max or min a couple of times, then it will crashed.
   I tried machine in lab, it crashed every time.

The log file as following: 
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x690ca56b, pid=2116, tid=3580
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0-rc-b61 mixed mode)
# Problematic frame:
# C  [atioglxx.dll+0xca56b]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x0ada5d00):  JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=3580]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x1da51008, EBX=0x00000000, ECX=0x0000000c, EDX=0x00000000
ESP=0x130bf7bc, EBP=0x00000002, ESI=0x00000000, EDI=0x1d895040
EIP=0x690ca56b, EFLAGS=0x00010297

Top of Stack: (sp=0x130bf7bc)
0x130bf7bc:   1d895040 132f8b58 00000001 13343e80
0x130bf7cc:   00000000 13343f58 0000000c 13343e80
0x130bf7dc:   6927008c 6929d679 00000006 1ddb6668
0x130bf7ec:   00000400 00000400 00000001 13343e80
0x130bf7fc:   00000000 1d8c99e4 6d243874 00000de1
0x130bf80c:   133dfd08 130bf898 06e401f8 0ada5d00
0x130bf81c:   06e401f8 001a0118 00000001 1d0106b9
0x130bf82c:   00000400 00000400 1ddacd00 00002072 

Instructions: (pc=0x690ca56b)
0x690ca55b:   89 44 24 14 90 33 ed 3b cb 7e 53 8b 00 8b 34 a8
0x690ca56b:   8b 0e 3b cb 74 05 ff 57 0c 89 1e 8b 4e 04 3b cb 


Stack: [0x13070000,0x130c0000),  sp=0x130bf7bc,  free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [atioglxx.dll+0xca56b]

[error occurred during error reporting, step 120, id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.java2d.opengl.WGLSurfaceData.initPbuffer(JJZII)Z+0
j  sun.java2d.opengl.OGLSurfaceData.initSurfaceNow(II)V+69
j  sun.java2d.opengl.OGLSurfaceData.access$000(Lsun/java2d/opengl/OGLSurfaceData;II)V+3
j  sun.java2d.opengl.OGLSurfaceData$1.run()V+12
j  sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run()V+95
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0ad28900 JavaThread "TimerQueue" daemon [_thread_blocked, id=2188]
  0x00036600 JavaThread "DestroyJavaVM" [_thread_blocked, id=3072]
  0x1ddb6400 JavaThread "Intro" [_thread_blocked, id=3100]
  0x0ad8f100 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=888]
=>0x0ada5d00 JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=3580]
  0x0ad84100 JavaThread "AWT-Windows" daemon [_thread_in_native, id=2972]
  0x0ad7ca00 JavaThread "AWT-Shutdown" [_thread_blocked, id=124]
  0x0aa67200 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2772]
  0x0aa75f00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=1236]
  0x0aa73b00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2084]
  0x0aa72a00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3456]
  0x0aa71e00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1172]
  0x0aa65f00 JavaThread "Finalizer" daemon [_thread_blocked, id=1560]
  0x0aa61d00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2924]

Other Threads:
  0x0aa5ee00 VMThread [id=520]
  0x0aa77c00 WatcherThread [id=2760]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 768K, used 57K [0x02900000, 0x029d0000, 0x02de0000)
  eden space 704K,   8% used [0x02900000, 0x0290e538, 0x029b0000)
  from space 64K,   0% used [0x029b0000, 0x029b0000, 0x029c0000)
  to   space 64K,   0% used [0x029c0000, 0x029c0000, 0x029d0000)
 tenured generation   total 9192K, used 7116K [0x02de0000, 0x036da000, 0x06900000)
   the space 9192K,  77% used [0x02de0000, 0x034d3000, 0x034d3000, 0x036da000)
 compacting perm gen  total 12288K, used 10032K [0x06900000, 0x07500000, 0x0a900000)
   the space 12288K,  81% used [0x06900000, 0x072cc088, 0x072cc200, 0x07500000)
No shared spaces configured.

Dynamic libraries:
0x00400000 - 0x00415000 	C:\jdk160\bin\java.exe
0x7c900000 - 0x7c9b0000 	C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f4000 	C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 	C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 - 0x77f01000 	C:\WINDOWS\system32\RPCRT4.dll
0x6d090000 - 0x6d0e6000 	C:\jdk160\bin\MSVCR71.dll
0x6da80000 - 0x6dcb3000 	C:\jdk160\jre\bin\client\jvm.dll
0x77d40000 - 0x77dd0000 	C:\WINDOWS\system32\USER32.dll
0x77f10000 - 0x77f56000 	C:\WINDOWS\system32\GDI32.dll
0x76b40000 - 0x76b6d000 	C:\WINDOWS\system32\WINMM.dll
0x6d4c0000 - 0x6d4c8000 	C:\jdk160\jre\bin\hpi.dll
0x76bf0000 - 0x76bfb000 	C:\WINDOWS\system32\PSAPI.DLL
0x6da30000 - 0x6da3c000 	C:\jdk160\jre\bin\verify.dll
0x6d550000 - 0x6d571000 	C:\jdk160\jre\bin\java.dll
0x6da70000 - 0x6da7f000 	C:\jdk160\jre\bin\zip.dll
0x6d160000 - 0x6d31a000 	C:\jdk160\jre\bin\awt.dll
0x73000000 - 0x73026000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x77c10000 - 0x77c68000 	C:\WINDOWS\system32\msvcrt.dll
0x76390000 - 0x763ad000 	C:\WINDOWS\system32\IMM32.dll
0x774e0000 - 0x7761d000 	C:\WINDOWS\system32\ole32.dll
0x5ed00000 - 0x5edcc000 	C:\WINDOWS\system32\opengl32.dll
0x68b20000 - 0x68b40000 	C:\WINDOWS\system32\GLU32.dll
0x73760000 - 0x737a9000 	C:\WINDOWS\system32\DDRAW.dll
0x73bc0000 - 0x73bc6000 	C:\WINDOWS\system32\DCIMAN32.dll
0x5ad70000 - 0x5ada8000 	C:\WINDOWS\system32\uxtheme.dll
0x7c9c0000 - 0x7d1d5000 	C:\WINDOWS\system32\shell32.dll
0x77f60000 - 0x77fd6000 	C:\WINDOWS\system32\SHLWAPI.dll
0x773d0000 - 0x774d2000 	C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
0x5d090000 - 0x5d127000 	C:\WINDOWS\system32\comctl32.dll
0x6d460000 - 0x6d4b2000 	C:\jdk160\jre\bin\fontmanager.dll
0x69000000 - 0x694c0000 	C:\WINDOWS\system32\atioglxx.dll
0x6d7c0000 - 0x6d7d3000 	C:\jdk160\jre\bin\net.dll
0x71ab0000 - 0x71ac7000 	C:\WINDOWS\system32\WS2_32.dll
0x71aa0000 - 0x71aa8000 	C:\WINDOWS\system32\WS2HELP.dll
0x6d7e0000 - 0x6d7e9000 	C:\jdk160\jre\bin\nio.dll
0x6d370000 - 0x6d393000 	C:\jdk160\jre\bin\dcpr.dll
0x6d5e0000 - 0x6d5fe000 	C:\jdk160\jre\bin\jpeg.dll

VM Arguments:
jvm_args: -Dsun.java2d.opengl=True
java_command: demo\jfc\Java2D\Java2Demo.jar
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\jdk160
PATH=C:\PROGRA~1\MKSTOO~1\bin;C:\PROGRA~1\MKSTOO~1\bin\X11;C:\PROGRA~1\MKSTOO~1\mksnt;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\ATI Technologies\ATI.ACE\
USERNAME=Admin
SHELL=C:/PROGRA~1/MKSTOO~1/mksnt/sh.exe
DISPLAY=:0.0
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 5, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht

Memory: 4k page, physical 2096124k(1573216k free), swap 4038100k(3643604k free)

vm_info: Java HotSpot(TM) Client VM (1.6.0-rc-b61) for windows-x86, built on Nov 17 2005 00:30:51 by "java_re" with unknown MS VC++:1310

Comments
EVALUATION It seems that this crash bug is also related specifically to our use of the WGL_ARB_render_texture extension, not simply the use of pbuffers in general. As of the fix for 5066318, we are no longer using that extension and therefore are working around some driver bugs in ATI's support for WGL_ARB_render_texture. As a result, this crash bug is no longer reproducible on pre-FBO ATI boards like the Radeon 9000. One can also verify this by passing -Dsun.java2d.opengl.fbobject=false on boards that do support the FBO extension. For example, I've verified this on a Radeon 9800XT with Catalyst 6.3 and 7.1 drivers from ATI. Yay!
12-01-2007

WORK AROUND You can work around this crash issue by enabling our FBO codepath: -Dsun.java2d.opengl=[T,t]rue -Dsun.java2d.opengl.fbobject=true Once 6439320 is fixed, this workaround should no longer be necessary, as we will automatically choose the FBO codepath by default at startup.
19-06-2006

EVALUATION The issue has been submitted to ATI for a number of months, but still no resolution at this time. The bug appears to be specific to ATI's pbuffer code, so you can workaround this problem by enabling our FBO codepath instead, see workaround section for more details.
19-06-2006

EVALUATION The crash is occurring in ATI's driver code, so it is likely a driver regression. On the other hand, the crash isn't reproducible on Tiger, but some of our strategies have changed in the Mustang codebase. I will submit this issue to ATI for them to investigate.
02-12-2005