i have a applet/application which is doing the following pseudo code in the frame’s paint method
create a offscreen buffer on VRAM ( VolatileImage )
draw something on that offscreen buffer
draw the offscreen buffer on the screen ( offscreen buffer on VRAM is drawn thru drawImage to visible portion of VRAM ) blit is accelerated
thats the trace ( running it with java 1.6.0_03 and no special sun.java2d, except trace enabled )
DXFillRect
DXFillRect
sun.java2d.loops.DrawGlyphList::DrawGlyphList(AnyColor, SrcNoEa, AnyInt)
sun.java2d.windows.DDBlitLoops::Blit(“Integer RGB DirectDraw”, SrcNoEa, “Integer RGB DirectDraw”)
when i set sun.java2d.d3d=True i get ( D3D pipeline was actived correctly )
Direct3D pipeline enabled on screen 0
D3DFillRect
D3DFillRect
D3DDrawGlyphs
sun.java2d.windows.DDBlitLoops::Blit(“Integer RGB DirectDraw”, SrcNoEa, “Integer RGB DirectDraw”)
you are not using D3DBlitLoops ( this is confusing me ) when d3d is enabled, also time for rendering is around 6ms with d3d enabled and 4ms with d3d disabled, seems like d3d is broken or not working correct.
Ok now i give 6uN a try and trace looks like this :o (D3D pipeline was actived correctly)
Direct3D pipeline enabled on screen 0
sun.java2d.loops.FillRect::FillRect(AnyColor, SrcNoEa, AnyInt)
sun.java2d.loops.FillRect::FillRect(AnyColor, SrcNoEa, AnyInt)
sun.java2d.loops.DrawGlyphList::DrawGlyphList(AnyColor, SrcNoEa, AnyInt)
sun.java2d.windows.GDIBlitLoops::Blit(IntRgb, SrcNoEa, “GDI”)
rendering time is 3ms, but can u please explain me the trace output, is it using the new d3d pipeline, i am confused …
this is output from trace J2D_TRACE_LEVEL=5
[I] CheckAdaptersInfo
[I] ------------------
[I] Adapter Ordinal : 0
[I] Description : Intel® 82945G Express Chipset Family
[I] GDI Name, Driver : \.\DISPLAY1, igxprd32.dll
[I] Vendor Id : 0x8086
[I] Version : 6.14.10.4764
[I] ------------------
[I] InitD3D: successfully created Direct3D9 object
[I] D3DGD_getDeviceCapsNative
[I] D3DPPLM::CheckDeviceCaps: device 0: Passed
[I] D3DContext::InitContext device 0
[I] D3DContext::ConfigureContext device 0
[I] D3DContext::ConfigureContext: successfully created device: 0
[I] D3DContext::InitDevice: device 0
[W] D3DContext::InitDevice: sync query not available
[I] D3DContext::InitDefice: successfully initialized device 0
[V] | CAPS_DEVICE_OK
[V] | CAPS_ALPHA_RT_PLAIN
[V] | CAPS_ALPHA_RTT
[V] | CAPS_OPAQUE_RTT
[V] | CAPS_LCD_SHADER | CAPS_BIOP_SHADER
[V] | CAPS_MULTITEXTURE
[V] | CAPS_TEXNONSQUARE
something is wrong, if this version gets not fixed, a lot of existing applications get killed, from acceleration to software loop, oops
this happens when i draw the volatile image ( offscreen ) to onscreen ( scaling on the fly )
D3DFillRect
D3DFillRect
D3DDrawGlyphs
sun.java2d.loops.Blit$GeneralMaskBlit::Blit(“D3D Surface (render-to-texture)”, S
rcNoEa, IntRgb)
sun.java2d.loops.MaskBlit$General::MaskBlit(“D3D Surface (render-to-texture)”, S
rcNoEa, IntRgb)
sun.java2d.d3d.D3DSurfaceToSwBlit::Blit(“D3D Surface”, SrcNoEa, IntArgb)
sun.java2d.loops.MaskBlit::MaskBlit(IntArgb, AnyAlpha, IntRgb)
sun.java2d.loops.TransformHelper::TransformHelper(IntRgb, SrcNoEa, IntArgbPre)
Note: this renders in 140ms, what happend ? u3 needs only 4ms
applets with version 1.6.0_03 are rendering this in 4 ms
DXFillRect
DXFillRect
sun.java2d.loops.DrawGlyphList::DrawGlyphList(AnyColor, SrcNoEa, AnyInt)
sun.java2d.loops.ScaledBlit::ScaledBlit(IntRgb, SrcNoEa, IntRgb)
I can give u a test applet/application if you want one