> Then in theory it should be fast once the cache is
> filled since images can be cached in textures- but
>  according to the primitives log there's lots of unaccelerated
>  rendering going on - may be the benchmark basically only catches the
>  "cache fill" phase?

Dmitri,

The benchmark should catch only the "cache hit" phase. Following your advice, i 
moved one of the image caches to use VolatileImages that get validated before 
every use. While it takes the same time to run on unaccelerated pipeline, it 
takes about 5% more to run on an NVidia card. Here is the output of 
J2D_TRACE_LEVEL=4:

[I] OS Version = OS_VISTA or newer
[I] CheckAdaptersInfo
[I] ------------------
[I] Adapter Ordinal  : 0
[I] Adapter Handle   : 0x10001
[I] Description      : NVIDIA MCP67M
[I] GDI Name, Driver : \\.\DISPLAY1, nvd3dum.dll
[I] Vendor Id        : 0x10de
[I] Device Id        : 0x0531
[I] SubSys Id        : 0x30cf103c
[I] Driver Version   : 7.15.11.147
[I] GUID             : {D7B71E3E-4671-11CF-1F73-C41002C2CA35}
[I] D3DPPLM::CheckDeviceCaps: adapter 0: Passed
[I] ------------------
[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_PS30
[V]   | CAPS_MULTITEXTURE
[V]   | CAPS_TEXNONPOW2
[V]   | CAPS_TEXNONSQUARE

This is what i did to validate the VolatileImage after fetching it from a cache:

existing.validate(GraphicsEnvironment.getLocalGraphicsEnvironment()
        .getDefaultScreenDevice().getDefaultConfiguration());

and the code for creating a new volatile image:

        GraphicsEnvironment e = GraphicsEnvironment
                        .getLocalGraphicsEnvironment();
        GraphicsDevice d = e.getDefaultScreenDevice();
        GraphicsConfiguration c = d.getDefaultConfiguration();
        VolatileImage compatibleImage = c.createCompatibleVolatileImage(width,
                        height, Transparency.TRANSLUCENT);
        return compatibleImage;

Thanks
Kirill
[Message sent by forum member 'kirillcool' (kirillcool)]

http://forums.java.net/jive/thread.jspa?messageID=270882

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to