bugGNU Octave - Bugs: bug #53651, Severe performance regression of...


bug #53651: Severe performance regression of ui-functionality

Submitted by:  None
Submitted on:  Sat 14 Apr 2018 09:36:48 AM UTC  
Category:  Plotting with OpenGL Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Performance
Status:  None Assigned to:  None
Originator Name:  Originator Email:  -email is unavailable-
Open/Closed:  Closed Release:  dev
Operating System:  Microsoft Windows

Add a New Comment (Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


( Jump to the original submission)

Fri 15 Feb 2019 10:26:33 AM UTC, comment #6: 

Closing report since the OP didn't answer the request for additional testing.

Pantxo Diribarne <pantxo>
Project Member
Fri 02 Nov 2018 10:19:05 AM UTC, comment #5: 

@OP: Can you test Octave 4.4.1 in which the default opengl driver has been switched to llvm-pipe based Mesa driver. It is still a software render but much faster and with much more up to date features than the one Windows provides.

Pantxo Diribarne <pantxo>
Project Member
Wed 16 May 2018 10:14:11 AM UTC, comment #4: 

I think this boils down to implementing the "opengl" function and being able to switch from software to hardware OpenGL at run time (see also bug #44916).

The default native Windows opengl32.dll only supports OpenGL-1.1 and lacks some functionalities (framebuffer objects in particular). I think that is the reason why print/getframe won't work unless opengl32.dll is provided by Octave (MESA software rendering, OpenGL-3+) or by a specific driver you installed with your graphics hardware (which generally support OpenGL3+).

Pantxo Diribarne <pantxo>
Project Member
Tue 15 May 2018 07:38:30 PM UTC, comment #3: 

However, on my system the opengl32.dll fix below also causes print to hang when trying to print figures to pnf files, so not really a viable workaround...

Mon 14 May 2018 08:11:46 AM UTC, comment #2: 

I'm see this too on a moderatley complex GUI that works fine with Octave 4.2.2 on Windows and 4.4 on Linux. With 4.4 on Windows interactivity is awful. This may be related to Bug #53845 - I renamed opengl32.dll in the bin directory as suggested in that bug report and the performance went is back to "normal".

Sat 14 Apr 2018 04:30:43 PM UTC, comment #1: 

I will add that on linux, for multiple frameworks (Cinnamon/KDE) and systems, I find the resizing/redraw to be visually problematic.  It's fast, but oh how bad it looks when redrawing.  It's as though the window size that Octave is rendering with doesn't match the OS window size in re-rendering.  There are these black edge areas and the re-rendered contents seems to bounce around.  If I drag and resize, say, Variable Editor window or any other Qt-derivative window it looks rather smooth.  Furthermore, I recall previous versions of Octave not having this issue I see in the development code...  As I write this, maybe the effect I'm seeing has to do with arbitrary delays introduced to plotting to solve some crash bugs.  That is, Octave is asked to re-rending and delays for a fraction of a second but in that fraction of a second the window size could have changed significantly.  Is Octave getting the window size, delaying, rendering?  Or is a delaying, getting the window size, rendering?  The order of things would make a big difference.

For the original poster, could you describe the slowness when resizing the window?  What does the rate of refresh seem to be?  I.e., how many frames/per/second, roughly.

Dan Sebald <sebald>
Sat 14 Apr 2018 09:36:48 AM UTC, original submission:  

The performance of the uipanel/uicontrol custom ui functionality
seem to have regressed to the point of being practically
unusable for any moderately complex custom ui (on the tested Win10 system).

Simply creating and rezising a uipanel is significantly slower on
the alpha 4.3.90 build compared to previous releases:

uipanel( 'units', 'normalized', 'position', [.2 .2 .6 .6], 'backgroundcolor', 'r' );



(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by pantxo (Posted a comment)
  • -email is unavailable- added by sebald (Posted a comment)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.




    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-02-15 pantxo Open/ClosedOpen => Closed
    2018-11-02 pantxo CategoryGUI => Plotting with OpenGL
    2018-04-27 mtmiller Carbon-CopyRemoved 80942 => -
    2018-04-27 mtmiller Item GroupRegression => Performance
        Release4.3.90 => dev

    Back to the top

    Powered by Savane 3.5