[EMAIL PROTECTED] wrote:
 I had to add a bunch of other jar files to the
  class path. Side note: I find it amusing that
 substance-all.zip distribution doesn't seem to
  include substance.jar

What other jars besides substance.jar did you have to add? The distribution 
file contains the build script, the sources and the documentation. This is by 
design and i don't really hear any complaints about this.

  OK, it must be only be (well, and at least one other Java2D
  team member) who got confused =)

  Also, isn't there some kind of way to reference the
 jars you need from a single jar so you don't need to
  specify them all in the class path?

What jars did you have to add? substance.jar should be the only one required 
for an application that uses only core Swing components. If you're using 
SwingX, then you'd have to add substance-swingx.jar.

  With only swingmark.jar in the class path:
    export CLASSPATH=".;c:/temp/subst50/lib/substance.jar"
    java -Dswing.defaultlaf=org.jvnet.substance.skin.SubstanceAutumnLookAndFeel 
SwingMark

  I get the following exception:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: 
org/jdesktop/beans/AbstractBean
        at java.lang.ClassLoader.defineClass1(Native Method)
...
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at 
org.jvnet.substance.SubstanceImageCreator.getColorSchemeImage(SubstanceImageCreator.java:2846)
        at 
org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.getColorizedTile(ImageWrapperDecorationPainter.java:326)

  And then a bunch of these:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: 
org/jvnet/substance/utils/ColorSchemeFilter
        at 
org.jvnet.substance.SubstanceImageCreator.getColorSchemeImage(SubstanceImageCreator.java:2846)
        at 
org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.getColorizedTile(ImageWrapperDecorationPainter.java:326)

  It works if I add lib/swingx.jar jar to the class path.

  I've also hacked the benchmark to check for null
 menu and skip it.

I think that it is a correct decision. Substance adds a JPanel to the menu bar, 
and this panel will show the menu search widget. The new default setting in 5.0 
is to have the panel, but not show the widget.

  OK.

The fact that Substance's score doesn't change a
whole lot no matter if the d3d pipeline is enabled or not
suggests that the rendering may not be the bottleneck.

At this stage i'm quite reluctant to use VolatileImages instead of BufferedImages. I've already mentioned (in this thread) that even moving one of the caches to use VolatileImages adds 5% to the benchmark time. And Nimbus had actually worse performance on the d3d pipeline (it was twice faster than Substance on software-rendering only, but only about 20% faster on d3d pipeline).

  That's fine. The Windows L&F doesn't use volatile images
  and is still quite fast. It does cache its rendering in
  BufferedImages (which are rendered to by GDI).

  I ran the benchmark with Substance L&F with trace=log
  and it looks like most operations are accelerated
  when the pipeline is enabled.

  This again points out that the bottleneck
  at least in this benchmark is not rendering since
  the score doesn't change with the pipeline change.

  Your benchmark (as you described it) seems to be testing
  only the rendering part (you call paint to an offscreen surface)
  and since it is rather short any minute variations show
  huge percentage differences - these differences may
  actually not be noticeable to the end user.

  And this is fine if all you want to measure is rendering
  performance, but from our benchmark it looks like
  you need to look at the whole stack.

One thing however I've noticed is that scrolling
(text area, table, tree) with Substance seems to be much slower
 (and the benchmark does lots of that).

I will look into this issue. Would be great, of course, to have access to your 
benchmark source code, but barring that - what exactly does it do? Is it driven 
by the Robot class (clicking in the scroll bar), is it scrolling the tables / 
trees programmatically with JScrollPane APIs, and what does it time? Is the 
main frame rendered to an offscreen image, and if not, how do you account for 
coalesced repaints? Or perhaps it's just counting how much time it takes to 
scroll the table.

  I will restart the discussion about open sourcing it,
  or at least giving you access if you'd like that.

  I'm not quite sure why we can't open it, it looks like
  it was developed by our SQE and performance teams.
  There were some talks about creating a new benchmark -
  this one isn't perfect by any means.

  The particular scrolling test seems to be rather simple -
  it just calls table.scrollRectToVisible() on a large table
  to simulate scrolling.

  Anther test that seems to be slow is a test which adds a bunch
  of lines to a text area. The tree test does something similar -
  creates a large tree, selects different nodes, that kind of thing.

  The test times how long does it take to complete a sequence.
  The sequence may be - adding stuff to the tree, selecting
  nodes, scrolling etc. Whatever rendering happens as this is being
  done is included in the test - the frame is visible on the
  screen all the time.

  Thanks,
    Dmitri

===========================================================================
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