Skip to main content

Bad default D3D performance

1 reply [Last post]
spikeles
Offline
Joined: 2008-07-15

I think this is the right place to put it?

While playing with the JInternalFrame tutorial ( http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe... ) i noticed really really bad performance while dragging the frames. In the order of 1/2 updates per second.

I searched around and found the document at http://java.sun.com/javase/6/webnotes/trouble/TSG-Desktop/html/gcghe.html and played with the settings:

Results:
Best performance was setting this which gave perfect rendering speed:
-Dsun.java2d.d3d=false
OR setting
J2D_D3D_RASTERIZER=rgb

Worst results:
J2D_D3D_RASTERIZER=hal

Setting it to use OpenGL with -Dsun.java2d.opengl=True was slightly better than the D3D hal, but was still very slow, 7/8 updates per second

System Specs:
Operating System: Windows Vistaâ„¢ Home Premium (6.0, Build 6001) Service Pack 1 (6001.vistasp1_gdr.080425-1930)
Motherboard: Asus P5B-Premium, bios: 0902

Video card specs(from DXDIAG) (i use a dual monitor config)
---------------
Display Devices
---------------
Card name: ATI Radeon HD 4800 Series
Manufacturer: ATI Technologies Inc.
Chip type: ATI Radeon Graphics Processor (0x9440)
DAC type: Internal DAC(400MHz)
Device Key: Enum\PCI\VEN_1002&DEV_9440&SUBSYS_05021002&REV_00
Display Memory: 1786 MB
Dedicated Memory: 507 MB
Shared Memory: 1279 MB
Current Mode: 1280 x 1024 (32 bit) (60Hz)
Monitor: BenQ FP91G+ (Digital)
Driver Name: atidxx32.dll,atidxx64,atiumdag.dll,atiumdva.dat,atiumd64,atiumd6a,atitmm64
Driver Version: 7.15.0010.0128 (English)
DDI Version: 10.1
Driver Attributes: Final Retail
Driver Date/Size: 6/22/2008 01:52:12, 1626624 bytes
WHQL Logo'd: No
WHQL Date Stamp: None
Device Identifier: {D7B71EE2-D700-11CF-E471-0825A1C2CA35}
Vendor ID: 0x1002
Device ID: 0x9440
SubSys ID: 0x05021002
Revision ID: 0x0000
Revision ID: 0x0000
Video Accel: ModeMPEG2_A ModeMPEG2_C
Deinterlace Caps: {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{3C5323C1-6FB7-44F5-9081-056BF2EE449D}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{552C0DAD-CCBC-420B-83C8-74943CF9F1A6}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
DDraw Status: Enabled
D3D Status: Enabled
AGP Status: Enabled

Output from J2D_TRACE_LEVEL=4

[I] OS Version = OS_VISTA or newer
[I] CheckAdaptersInfo
[I] ------------------
[I] Adapter Ordinal : 0
[I] Adapter Handle : 0x10001
[I] Description : ATI Radeon HD 4800 Series
[I] GDI Name, Driver : \\.\DISPLAY2, atiumdag.dll
[I] Vendor Id : 0x1002
[I] Device Id : 0x9440
[I] SubSys Id : 0x5021002
[I] Driver Version : 7.14.10.598
[I] GUID : {D7B71EE2-D700-11CF-E471-0825A1C2CA35}
[I] D3DPPLM::CheckDeviceCaps: adapter 0: Passed
[I] ------------------
[I] Adapter Ordinal : 1
[I] Adapter Handle : 0x10003
[I] Description : ATI Radeon HD 4800 Series
[I] GDI Name, Driver : \\.\DISPLAY1, atiumdag.dll
[I] Vendor Id : 0x1002
[I] Device Id : 0x9440
[I] SubSys Id : 0x5021002
[I] Driver Version : 7.14.10.598
[I] GUID : {D7B71EE2-D700-11CF-E471-0825A1C2CA35}
[I] D3DPPLM::CheckDeviceCaps: adapter 1: Passed
[I] ------------------
[I] D3DGD_getDeviceCapsNative
[I] D3DContext::InitContext device 1
[I] D3DContext::ConfigureContext device 1
[V] dwBehaviorFlags=D3DCREATE_FPU_PRESERVE|D3DCREATE_HARDWARE_VERTEXPROCESSING
[I] D3DContext::ConfigureContext: successfully created device: 1
[I] D3DContext::InitDevice: device 1
[I] D3DContext::InitDefice: successfully initialized device 1
[V] | CAPS_DEVICE_OK
[V] | CAPS_RT_PLAIN_ALPHA
[V] | CAPS_RT_TEXTURE_ALPHA
[V] | CAPS_RT_TEXTURE_OPAQUE
[V] | CAPS_LCD_SHADER | CAPS_BIOP_SHADER | CAPS_PS20
[V] | CAPS_AA_SHADER
[V] | CAPS_PS30
[V] | CAPS_MULTITEXTURE
[V] | CAPS_TEXNONPOW2
[V] | CAPS_TEXNONSQUARE
[I] D3DGD_getDeviceCapsNative
[I] D3DContext::InitContext device 0
[I] D3DContext::ConfigureContext device 0
[V] dwBehaviorFlags=D3DCREATE_FPU_PRESERVE|D3DCREATE_HARDWARE_VERTEXPROCESSING
[I] D3DContext::ConfigureContext: successfully created device: 0
[I] D3DContext::InitDevice: device 0
[I] D3DContext::InitDefice: successfully initialized device 0
[V] | CAPS_DEVICE_OK
[V] | CAPS_RT_PLAIN_ALPHA
[V] | CAPS_RT_TEXTURE_ALPHA
[V] | CAPS_RT_TEXTURE_OPAQUE
[V] | CAPS_LCD_SHADER | CAPS_BIOP_SHADER | CAPS_PS20
[V] | CAPS_AA_SHADER
[V] | CAPS_PS30
[V] | CAPS_MULTITEXTURE
[V] | CAPS_TEXNONPOW2
[V] | CAPS_TEXNONSQUARE

Results of forcing OpenGL pipeline:

[I] WGLGraphicsConfig_initWGL
[I] OGLFuncs_OpenLibrary
[I] OGLFuncs_InitPlatformFuncs
[I] OGLFuncs_InitBaseFuncs
[I] WGLGraphicsConfig_getWGLConfigInfo
[I] OGLFuncs_InitExtFuncs
[I] WGLGC_GetPixelFormatForDC
[V] candidate pixel formats:
[V] pixfmt=2 db=1 alpha=8 depth=24 stencil=8 valid=true
[V] pixfmt=3 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=8 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=9 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=11 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=12 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=14 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=15 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=17 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=18 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=5 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=6 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=20 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=21 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=23 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=24 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=26 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=27 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=29 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=30 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[I] WGLGC_GetPixelFormatForDC: chose 2 as the best pixel format
[I] OGLContext_IsExtensionAvailable: GL_ARB_fragment_shader=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_multitexture=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_texture_non_power_of_two=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_texture_rectangle=true
[I] OGLContext_IsExtensionAvailable: GL_EXT_framebuffer_object=true
[I] OGLContext_IsFBObjectExtensionAvailable: fbobject supported
[I] OGLContext_IsLCDShaderSupportAvailable: LCD text shader supported
[I] OGLContext_IsBIOpShaderSupportAvailable: BufferedImageOp shader supported
[I] OGLContext_IsGradShaderSupportAvailable: Linear/RadialGradientPaint shader supported
[I] OGLContext_IsExtensionAvailable: GL_NV_fragment_program=false
[I] OGLContext_IsExtensionAvailable: GL_ARB_fragment_program=true
[I] WGLGraphicsConfig_getWGLConfigInfo: OpenGL version=2.1.7660 Release
[I] OGLContext_IsExtensionAvailable: WGL_ARB_pbuffer=true
[I] OGLContext_IsExtensionAvailable: WGL_ARB_make_current_read=true
[I] OGLContext_IsExtensionAvailable: WGL_ARB_pixel_format=true
[W] OGLContext_CreateFragmentProgram: compiler msg (62):
Fragment shader was successfully compiled to run on hardware.

[W] OGLContext_CreateFragmentProgram: linker msg (59):
Fragment shader(s) linked, no vertex shader(s) defined.

[W] OGLContext_CreateFragmentProgram: compiler msg (62):
Fragment shader was successfully compiled to run on hardware.

[W] OGLContext_CreateFragmentProgram: linker msg (150):
Fragment shader(s) linked, no vertex shader(s) defined.
Validation failed - samplers of different types are bound to the same texture image unit.

[W] OGLContext_CreateFragmentProgram: compiler msg (62):
Fragment shader was successfully compiled to run on hardware.

[W] OGLContext_CreateFragmentProgram: linker msg (150):
Fragment shader(s) linked, no vertex shader(s) defined.
Validation failed - samplers of different types are bound to the same texture image unit.

[W] OGLContext_CreateFragmentProgram: compiler msg (62):
Fragment shader was successfully compiled to run on hardware.

[W] OGLContext_CreateFragmentProgram: linker msg (150):
Fragment shader(s) linked, no vertex shader(s) defined.
Validation failed - samplers of different types are bound to the same texture image unit.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
trembovetski
Offline
Joined: 2003-12-31

Thanks for the report.

This problem is most likely caused by this bug:
http://bugs.sun.com/view_bug.do?bug_id=6635462

The OUTLINE drag mode in internal frames uses XOR, which causes this bad performance you see. Just don't use OUTLINE drag mode in your application.

Thanks,
Dmitri