Skip to main content

[JAVA2D] Performance problems on multiple monitors

4 replies [Last post]
Anonymous

Hi everyone,

I noticed a strange behavior in a Swing application using JAI.

The application involves displaying images on JPanels contained in a JFrame.
Operations allowed on the displayed images involve contrast modification, zooming, panning...
Multiple monitors are supported.

The strange thing is, if the frame is opened on the second monitor, the performances of the imaging operations are noticeably slower than when the frame is opened on the first monitor.
Even stranger: if the frame is dragged across the desktop to the first monitor and then back to the second, the operations are fast again.

Has anyone noticed a similar behavior ?

I posted this on the JAI-INTEREST mailing list and the answers I received pointed at Swing/JFC since other users had also experienced this problems when using other media API's (JMF) and even in "non image-related" applications. I'm posting it here too since, even though I don't have the slightest clue to how Multiple Monitors support have been implemented, it seems to be a Java-2D feature...

Any suggestion is more than welcome :-)

Dimitri
*********************************************
Dimitri del Marmol
dimitri.del.marmol@telemis.com
Telemis s.a.
Tel: +32 (0)10 48 00 14
Fax: +32 (0)10 48 00 20
Avenue du Grand Cortil, 34
B-1348 Louvain-la-Neuve
*********************************************

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Chet Haase

Hi Dimitri,

Multimon is indeed Java2D functionality (and AWT). In general,
it should be possible to get good performance, including
hardware acceleration, from a secondary monitor; it's not
clear why your application is having this problem.

First of all, I assume you are using some relatively
recent version of Java; the multimon support on
releases prior to 1.4 was somewhat shaky, and has
improved with every release since then.

There is definitely a performance issue for windows that
span the monitors (have visible portions of the window
on both monitors at once); we need to fix this eventually.
But when windows are completely contained on a single monitor,
the amount of performance you see should not be related
to whether you are on the primary or secondary screen.

Note: The performance you see on each monitor may certainly
be different if they come from different graphics devices,
or those displays have different performance characteristics.
For example, if you have a high-end card driving the primary
and a low-end PCI card with little VRAM driving the second
display, then you will definitely see different performance
between the two. But your situation sounds more like a bug where
2D is not doing the right thing to accelerate operations on
the secondary monitor at all (until you move the window back and
forth again).

I can't chase the problem down any more without further
information, but if you can send us more about the
problem we will look into it. Specifically, it would be
great to get:
- The version of Java you are using
- The platform (Windows XP? Linux?)
- The video card driving each display
- A small test case that shows the problem. If you could
do this with a simple Swing app it would be better than some
huge JAI app (just in terms of narrowing down the problem
so that we can reproduce and debug it).

Thanks,
Chet.

Dimitri del Marmol wrote:
> Hi everyone,
>
> I noticed a strange behavior in a Swing application using JAI.
>
> The application involves displaying images on JPanels contained in a JFrame.
> Operations allowed on the displayed images involve contrast
> modification, zooming, panning...
> Multiple monitors are supported.
>
> The strange thing is, if the frame is opened on the second monitor, the
> performances of the imaging operations are noticeably slower than when
> the frame is opened on the first monitor.
> Even stranger: if the frame is dragged across the desktop to the first
> monitor and then back to the second, the operations are fast again.
>
> Has anyone noticed a similar behavior ?
>
> I posted this on the JAI-INTEREST mailing list and the answers I
> received pointed at Swing/JFC since other users had also experienced
> this problems when using other media API's (JMF) and even in "non
> image-related" applications. I'm posting it here too since, even
> though I don't have the slightest clue to how Multiple Monitors support
> have been implemented, it seems to be a Java-2D feature...
>
> Any suggestion is more than welcome :-)
>
> Dimitri
> *********************************************
> Dimitri del Marmol
> dimitri.del.marmol@telemis.com
> Telemis s.a.
> Tel: +32 (0)10 48 00 14
> Fax: +32 (0)10 48 00 20
> Avenue du Grand Cortil, 34
> B-1348 Louvain-la-Neuve
> *********************************************
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the
> body of the message "signoff JAVA2D-INTEREST". For general help, send
> email to listserv@java.sun.com and include in the body of the message
> "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Dimitri del Marmol

Chet,

Thanks for your interest concerning this problem. I will collect all
necessary information in order to fill a complete report. For now all I'm
sure of is that the problem was spotted on Windows XP using JDK 1.4.2.02.

Should I publish it as an answer in this thread or as a separate thread ?
Should I fill a bug report (if so, where should I post it) ?

Regards,

Dimitri

----- Original Message -----
From: "Chet Haase"
To: "Dimitri del Marmol"
Cc:
Sent: Wednesday, March 16, 2005 3:26 PM
Subject: Re: [JAVA2D] Performance problems on multiple monitors

>
> Hi Dimitri,
>
> Multimon is indeed Java2D functionality (and AWT). In general,
> it should be possible to get good performance, including
> hardware acceleration, from a secondary monitor; it's not
> clear why your application is having this problem.
>
> First of all, I assume you are using some relatively
> recent version of Java; the multimon support on
> releases prior to 1.4 was somewhat shaky, and has
> improved with every release since then.
>
> There is definitely a performance issue for windows that
> span the monitors (have visible portions of the window
> on both monitors at once); we need to fix this eventually.
> But when windows are completely contained on a single monitor,
> the amount of performance you see should not be related
> to whether you are on the primary or secondary screen.
>
> Note: The performance you see on each monitor may certainly
> be different if they come from different graphics devices,
> or those displays have different performance characteristics.
> For example, if you have a high-end card driving the primary
> and a low-end PCI card with little VRAM driving the second
> display, then you will definitely see different performance
> between the two. But your situation sounds more like a bug where
> 2D is not doing the right thing to accelerate operations on
> the secondary monitor at all (until you move the window back and
> forth again).
>
> I can't chase the problem down any more without further
> information, but if you can send us more about the
> problem we will look into it. Specifically, it would be
> great to get:
> - The version of Java you are using
> - The platform (Windows XP? Linux?)
> - The video card driving each display
> - A small test case that shows the problem. If you could
> do this with a simple Swing app it would be better than some
> huge JAI app (just in terms of narrowing down the problem
> so that we can reproduce and debug it).
>
> Thanks,
> Chet.
>
>
> Dimitri del Marmol wrote:
>> Hi everyone,
>>
>> I noticed a strange behavior in a Swing application using JAI.
>>
>> The application involves displaying images on JPanels contained in a
>> JFrame.
>> Operations allowed on the displayed images involve contrast modification,
>> zooming, panning...
>> Multiple monitors are supported.
>>
>> The strange thing is, if the frame is opened on the second monitor, the
>> performances of the imaging operations are noticeably slower than when
>> the frame is opened on the first monitor.
>> Even stranger: if the frame is dragged across the desktop to the first
>> monitor and then back to the second, the operations are fast again.
>>
>> Has anyone noticed a similar behavior ?
>>
>> I posted this on the JAI-INTEREST mailing list and the answers I received
>> pointed at Swing/JFC since other users had also experienced this problems
>> when using other media API's (JMF) and even in "non image-related"
>> applications. I'm posting it here too since, even though I don't have the
>> slightest clue to how Multiple Monitors support have been implemented, it
>> seems to be a Java-2D feature...
>>
>> Any suggestion is more than welcome :-)
>>
>> Dimitri
>> *********************************************
>> Dimitri del Marmol
>> dimitri.del.marmol@telemis.com
>>
>> Telemis s.a.
>> Tel: +32 (0)10 48 00 14
>> Fax: +32 (0)10 48 00 20
>> Avenue du Grand Cortil, 34
>> B-1348 Louvain-la-Neuve
>> *********************************************
>> ===========================================================================
>> To unsubscribe, send email to listserv@java.sun.com and include in the
>> body of the message "signoff JAVA2D-INTEREST". For general help, send
>> email to listserv@java.sun.com and include in the body of the message
>> "help".
>
>

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Chet Haase

Hi Dimitri,

Since you're on 142, it does sound like a bug (we had multimon
working much better by that release). But it's worth at least
testing your app with 5.0 in case there's something we
fixed by that time (I know of a particular Swing multimon
bug that was fixed in 5.0, although I think that bug had
more effect on apps that had windows on both screens
simultaneously, which is not the case here).

If the problem still persists in 5.0, the best thing to do
is to report the bug at:
http://bugs.sun.com/bugdatabase/index.jsp

You could also email me the details and test case when
you file the bug, but filing the bug will ensure that it
stays on our radar.

Thanks,
Chet.

Dimitri del Marmol wrote:
> Chet,
>
> Thanks for your interest concerning this problem. I will collect all
> necessary information in order to fill a complete report. For now all
> I'm sure of is that the problem was spotted on Windows XP using JDK
> 1.4.2.02.
>
> Should I publish it as an answer in this thread or as a separate thread
> ? Should I fill a bug report (if so, where should I post it) ?
>
> Regards,
>
> Dimitri
>
> ----- Original Message ----- From: "Chet Haase"
> To: "Dimitri del Marmol"
> Cc:
> Sent: Wednesday, March 16, 2005 3:26 PM
> Subject: Re: [JAVA2D] Performance problems on multiple monitors
>
>
>>
>> Hi Dimitri,
>>
>> Multimon is indeed Java2D functionality (and AWT). In general,
>> it should be possible to get good performance, including
>> hardware acceleration, from a secondary monitor; it's not
>> clear why your application is having this problem.
>>
>> First of all, I assume you are using some relatively
>> recent version of Java; the multimon support on
>> releases prior to 1.4 was somewhat shaky, and has
>> improved with every release since then.
>>
>> There is definitely a performance issue for windows that
>> span the monitors (have visible portions of the window
>> on both monitors at once); we need to fix this eventually.
>> But when windows are completely contained on a single monitor,
>> the amount of performance you see should not be related
>> to whether you are on the primary or secondary screen.
>>
>> Note: The performance you see on each monitor may certainly
>> be different if they come from different graphics devices,
>> or those displays have different performance characteristics.
>> For example, if you have a high-end card driving the primary
>> and a low-end PCI card with little VRAM driving the second
>> display, then you will definitely see different performance
>> between the two. But your situation sounds more like a bug where
>> 2D is not doing the right thing to accelerate operations on
>> the secondary monitor at all (until you move the window back and
>> forth again).
>>
>> I can't chase the problem down any more without further
>> information, but if you can send us more about the
>> problem we will look into it. Specifically, it would be
>> great to get:
>> - The version of Java you are using
>> - The platform (Windows XP? Linux?)
>> - The video card driving each display
>> - A small test case that shows the problem. If you could
>> do this with a simple Swing app it would be better than some
>> huge JAI app (just in terms of narrowing down the problem
>> so that we can reproduce and debug it).
>>
>> Thanks,
>> Chet.
>>
>>
>> Dimitri del Marmol wrote:
>>
>>> Hi everyone,
>>>
>>> I noticed a strange behavior in a Swing application using JAI.
>>>
>>> The application involves displaying images on JPanels contained in a
>>> JFrame.
>>> Operations allowed on the displayed images involve contrast
>>> modification, zooming, panning...
>>> Multiple monitors are supported.
>>>
>>> The strange thing is, if the frame is opened on the second monitor,
>>> the performances of the imaging operations are noticeably slower than
>>> when the frame is opened on the first monitor.
>>> Even stranger: if the frame is dragged across the desktop to the
>>> first monitor and then back to the second, the operations are fast
>>> again.
>>>
>>> Has anyone noticed a similar behavior ?
>>>
>>> I posted this on the JAI-INTEREST mailing list and the answers I
>>> received pointed at Swing/JFC since other users had also experienced
>>> this problems when using other media API's (JMF) and even in "non
>>> image-related" applications. I'm posting it here too since, even
>>> though I don't have the slightest clue to how Multiple Monitors
>>> support have been implemented, it seems to be a Java-2D feature...
>>>
>>> Any suggestion is more than welcome :-)
>>>
>>> Dimitri
>>> *********************************************
>>> Dimitri del Marmol
>>> dimitri.del.marmol@telemis.com
>>>
>>> Telemis s.a.
>>> Tel: +32 (0)10 48 00 14
>>> Fax: +32 (0)10 48 00 20
>>> Avenue du Grand Cortil, 34
>>> B-1348 Louvain-la-Neuve
>>> *********************************************
>>> ===========================================================================
>>> To unsubscribe, send email to listserv@java.sun.com and include in
>>> the body of the message "signoff JAVA2D-INTEREST". For general help,
>>> send email to listserv@java.sun.com and include in the body of the
>>> message "help".
>>
>>
>>
>
>

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Dimitri del Marmol

Chet,

Actually I did run a brief test under 5.0 (Windows XP, same machine...) with
the same results.

It also seems that the problem is worse with some display adapters than with
others. That is why it will take a little time to fill a consistent report.
I would like to check this with all available configurations (mostly on
Windows but with different hardware).

I will publish the results both here (for additional feedback from other
users) and as a bug report.

Dimitri

----- Original Message -----
From: "Chet Haase"
To: "Dimitri del Marmol"
Cc:
Sent: Wednesday, March 16, 2005 4:58 PM
Subject: Re: [JAVA2D] Performance problems on multiple monitors

>
> Hi Dimitri,
>
> Since you're on 142, it does sound like a bug (we had multimon
> working much better by that release). But it's worth at least
> testing your app with 5.0 in case there's something we
> fixed by that time (I know of a particular Swing multimon
> bug that was fixed in 5.0, although I think that bug had
> more effect on apps that had windows on both screens
> simultaneously, which is not the case here).
>
> If the problem still persists in 5.0, the best thing to do
> is to report the bug at:
> http://bugs.sun.com/bugdatabase/index.jsp
>
> You could also email me the details and test case when
> you file the bug, but filing the bug will ensure that it
> stays on our radar.
>
> Thanks,
> Chet.
>
>
> Dimitri del Marmol wrote:
>> Chet,
>>
>> Thanks for your interest concerning this problem. I will collect all
>> necessary information in order to fill a complete report. For now all I'm
>> sure of is that the problem was spotted on Windows XP using JDK 1.4.2.02.
>>
>> Should I publish it as an answer in this thread or as a separate thread ?
>> Should I fill a bug report (if so, where should I post it) ?
>>
>> Regards,
>>
>> Dimitri
>>
>> ----- Original Message ----- From: "Chet Haase"
>> To: "Dimitri del Marmol"
>> Cc:
>> Sent: Wednesday, March 16, 2005 3:26 PM
>> Subject: Re: [JAVA2D] Performance problems on multiple monitors
>>
>>
>>>
>>> Hi Dimitri,
>>>
>>> Multimon is indeed Java2D functionality (and AWT). In general,
>>> it should be possible to get good performance, including
>>> hardware acceleration, from a secondary monitor; it's not
>>> clear why your application is having this problem.
>>>
>>> First of all, I assume you are using some relatively
>>> recent version of Java; the multimon support on
>>> releases prior to 1.4 was somewhat shaky, and has
>>> improved with every release since then.
>>>
>>> There is definitely a performance issue for windows that
>>> span the monitors (have visible portions of the window
>>> on both monitors at once); we need to fix this eventually.
>>> But when windows are completely contained on a single monitor,
>>> the amount of performance you see should not be related
>>> to whether you are on the primary or secondary screen.
>>>
>>> Note: The performance you see on each monitor may certainly
>>> be different if they come from different graphics devices,
>>> or those displays have different performance characteristics.
>>> For example, if you have a high-end card driving the primary
>>> and a low-end PCI card with little VRAM driving the second
>>> display, then you will definitely see different performance
>>> between the two. But your situation sounds more like a bug where
>>> 2D is not doing the right thing to accelerate operations on
>>> the secondary monitor at all (until you move the window back and
>>> forth again).
>>>
>>> I can't chase the problem down any more without further
>>> information, but if you can send us more about the
>>> problem we will look into it. Specifically, it would be
>>> great to get:
>>> - The version of Java you are using
>>> - The platform (Windows XP? Linux?)
>>> - The video card driving each display
>>> - A small test case that shows the problem. If you could
>>> do this with a simple Swing app it would be better than some
>>> huge JAI app (just in terms of narrowing down the problem
>>> so that we can reproduce and debug it).
>>>
>>> Thanks,
>>> Chet.
>>>
>>>
>>> Dimitri del Marmol wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I noticed a strange behavior in a Swing application using JAI.
>>>>
>>>> The application involves displaying images on JPanels contained in a
>>>> JFrame.
>>>> Operations allowed on the displayed images involve contrast
>>>> modification, zooming, panning...
>>>> Multiple monitors are supported.
>>>>
>>>> The strange thing is, if the frame is opened on the second monitor, the
>>>> performances of the imaging operations are noticeably slower than when
>>>> the frame is opened on the first monitor.
>>>> Even stranger: if the frame is dragged across the desktop to the first
>>>> monitor and then back to the second, the operations are fast again.
>>>>
>>>> Has anyone noticed a similar behavior ?
>>>>
>>>> I posted this on the JAI-INTEREST mailing list and the answers I
>>>> received pointed at Swing/JFC since other users had also experienced
>>>> this problems when using other media API's (JMF) and even in "non
>>>> image-related" applications. I'm posting it here too since, even though
>>>> I don't have the slightest clue to how Multiple Monitors support have
>>>> been implemented, it seems to be a Java-2D feature...
>>>>
>>>> Any suggestion is more than welcome :-)
>>>>
>>>> Dimitri
>>>> *********************************************
>>>> Dimitri del Marmol
>>>> dimitri.del.marmol@telemis.com
>>>>
>>>> Telemis s.a.
>>>> Tel: +32 (0)10 48 00 14
>>>> Fax: +32 (0)10 48 00 20
>>>> Avenue du Grand Cortil, 34
>>>> B-1348 Louvain-la-Neuve
>>>> *********************************************
>>>> ===========================================================================
>>>> To unsubscribe, send email to listserv@java.sun.com and include in the
>>>> body of the message "signoff JAVA2D-INTEREST". For general help, send
>>>> email to listserv@java.sun.com and include in the body of the message
>>>> "help".
>>>
>>>
>>>
>>
>>
>
>

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".