bugGNU Octave - Bugs: bug #61088, opengl renderer - render warning...

 
 

bug #61088: opengl renderer - render warning repetition, command window behavior

Submitted by:  Nicholas Jankowski <nrjank>
Submitted on:  Sun 29 Aug 2021 08:07:14 PM UTC  
 
Category:  Plotting with OpenGL Severity:  2 - Minor
Priority:  5 - Normal Item Group:  Unexpected Error or Warning
Status:  None Assigned to:  None
Originator Name:  Nicholas Jankowski Open/Closed:  Open
Release:  6.4.0 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.

 

Tue 30 Nov 2021 05:06:30 PM UTC, comment #5: 

updating that something similar came up again in bug #39243 and bug #61591

running the following triggers similar warning behavior:

>> xdata = cosd (0:60:360);
>> ydata = sind (0:60:360);
>> h = patch (xdata, ydata, 'b', 'marker', 's'); %%draws hexagon
>> set (h, 'xdata', xdata(1:end-3))
>> warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
get(h,'xdata'), get(h, 'ydata')
ans =

   1.0000   0.5000  -0.5000  -1.0000

ans =

        0
   0.8660
   0.8660
        0
  -0.8660
  -0.8660
        0
>> set (h, 'ydata', ydata(1:end-3)  %%figure renders 4pt trapezoid, warnings cease

Note the warning appears after the >>, which doesn't reappear until the next typed command as every figure interaction triggers the warning repetition until the condition is fixed. (no more warnings after the ydata set command)

the warning is also triggered when creating a mismatched figure (which errors in matlab), but ...

>> xdata = cosd (0:60:360);
>> ydata = sind (0:60:360);
>> h = patch (xdata, ydata(1:end-1), 'b', 'marker', 's');
>> warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
get(h,'xdata'), get(h, 'ydata')
ans =
   1.0000
   0.5000
  -0.5000
  -1.0000
  -0.5000
   0.5000
   1.0000

ans =
        0
   0.8660
   0.8660
        0
  -0.8660
  -0.8660

>> h = patch (xdata, ydata, 'b', 'marker', 's');
>> warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.
>> get(h,'xdata'), get(h, 'ydata')
ans =
   1.0000
   0.5000
  -0.5000
  -1.0000
  -0.5000
   0.5000
   1.0000

ans =
        0
   0.8660
   0.8660
        0
  -0.8660
  -0.8660
        0

>> warning: opengl_renderer: x/y/zdata must have the same dimensions.  Not rendering.

Even after overwriting h, the 'every interaction' warning persists.  maybe this is just my misunderstanding of how figures work. I understand adding another plot to that figure wouldn't clear the problem creating the warning, but I thought overwriting h should. or does the invalid plot still exist there, just no longer named h?

retitling with a more accurate description and removing tie to specific opengl warning

Nicholas Jankowski <nrjank>
Project Member
Wed 01 Sep 2021 07:06:42 PM UTC, comment #4: 

so somewhere in the call to _go_line_ it generates the warning but fails to actually draw the line.  the entire axes disappears and it's just a blank figure window. that's about as deep as i can go.

in debug mode a prompt is produced at each step, so I'm not sure what it is about the warning that causes a failure to produce the prompt in normal mode.

Nicholas Jankowski <nrjank>
Project Member
Wed 01 Sep 2021 06:51:59 PM UTC, comment #3: 

ok. so on windows in Octave 6.3.0, Octave 6.3.1 - and 6.3.1 mxe default   (hg id: d3298a58049e Mon, Aug 30, 2021)

the behavior is all the same.  the plot never appears in the figure window. the message appears once after the plot command, and then every time the window is interacted with.  the CLI never shows a prompt again (making me think control hadn't been returned), but typing does elicit a response, after which it shows the prompt. see:

>> plot(x)
>> warning: opengl_renderer: data values greater than fl
oat capacity.  (1) Scale data, or (2) Use gnuplot
warning: opengl_renderer: data values greater than float
 capacity.  (1) Scale data, or (2) Use gnuplot
warning: opengl_renderer: data values greater than float
 capacity.  (1) Scale data, or (2) Use gnuplot
abc
error: 'abc' undefined near line 1, column 1
>>

so, something is different on windows that is both preventing it from acutally drawing the plot, and preventing it from showing the prompt again in the CLI.   haven't stepped through m files yet.

Nicholas Jankowski <nrjank>
Project Member
Tue 31 Aug 2021 01:50:02 PM UTC, comment #2: 

i'll try the different 6.3.1 builds later today, this was in 6.3.0. 

it's not an infinitely spooling loop, but the image never plots and it fails to return control to the CLI. new messages are generated with any figure window interaction. it's seems to not be a waiting issue.  i see no way to return control to the CLI without a Ctrl-C, and it never does plot the image. if it persists in 6.3.1, i'll try stepping through to see if there's anything obvious in m-code.

Nicholas Jankowski <nrjank>
Project Member
Tue 31 Aug 2021 03:30:23 AM UTC, comment #1: 

At least on Linux it isn't infinite.  The plot is made and a few warnings are issued.  New warnings are issued whenever the plot is interacted with such as moving the window, clicking on the plot with the mouse, or re-sizing the window.  Otherwise, however, no new warnings are printed and the user is free to work at the CLI.

Rik <rik5>
Project Administrator
Sun 29 Aug 2021 08:07:14 PM UTC, original submission:  

looking at a bug report on the opengl plotting precision limits, I was running one of the simple test plots:

x = [1e38:1e38:1e39];
plot(x)

and it triggers an infinite warning loop.  After creating the figure, before drawing the axes, it hits

warning: opengl_renderer: data values greater than float capacity.  (1) Scale data, or (2) Use gnuplot

this warning repeats ad infinitum any time you click on the figure window, and the interpreter is stuck until you escape with a Ctrl-C.  .  Checked in both CLI and gui with qt toolkit.

I know there are quite a few bug reports related to the general opengl plotting precision issue, but didn't see this particular issue with the warning message. please close if duplicate or if should be attached to one of the other bugs.

Nicholas Jankowski <nrjank>
Project Member

 

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

Attach Files:
   
   
Comment:
   

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 rik5 (Posted a comment)
  • -email is unavailable- added by nrjank (Submitted the item)
  •  

    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 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-11-30 nrjank Severity3 - Normal => 2 - Minor
        Release6.3.0 => 6.4.0
        Summaryinfinite warning loop - opengl renderer - data greater than float capacity => opengl renderer - render warning repetition, command window behavior

    Back to the top


    Powered by Savane 3.7