LDraw.org Discussion Forums
[LDCad] LDCad problem with graphics card driver, linux - Printable Version

+- LDraw.org Discussion Forums (https://forums.ldraw.org)
+-- Forum: LDraw Programs (https://forums.ldraw.org/forum-7.html)
+--- Forum: LDraw Editors and Viewers (https://forums.ldraw.org/forum-11.html)
+--- Thread: [LDCad] LDCad problem with graphics card driver, linux (/thread-24026.html)



LDCad problem with graphics card driver, linux - Owen Dive - 2020-05-10

Hi Roland (and anyone else who cares to partake of this discussion!)



I've noticed a problem with LDCad (1.6d) and the latest graphics card drivers that my system updates manager wants me to install.

After upgrading my nvidia drivers from 390.116-0ubuntu0.18.04.3 to 390.132-0ubuntu0.18.04.1, I find that LDCad won't start. Running it in my terminal, I get the following error message:



Code:
$ /usr/bin/LDCad
The program 'LDCad' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 459 error_code 2 request_code 154 minor_code 24)
  (Note to programmers: normally, X errors are reported asynchronously;
  that is, you will receive the error a while after causing it.
  To debug your program, run it with the --sync command line
  option to change this behavior. You can then get a meaningful
  backtrace from your debugger if you break on the gdk_x_error() function.)
I am almost certain this message was produced by some software other than LDCad, perhaps something in the desktop management stack. Certainly adding the --sync flag didn't change anything.



I've had a look at LDCad's logfiles, and can't see anything immediately wrong. It goes through setting up the color bins etc, and then just stops. The last line in the logfile is:

Code:
00257 | 2020-05-10_15:01:09 | Progress | Validating inventories. | done.
When it's working, the next logfile lines are all about setting up the rendering engine, which would be problematic if there's some incompatibility with the graphics card driver.



It's no real difficulty to roll back to the old version of the driver (fortunately, it was only a day or so ago that I installed these updates - it's possible that I could have gone for quite some time before noticing the problem), but I wondered if you had any thoughts as to what might be the root cause.



In short, I'm not really expecting you to fix my problem, but if, as the message suggests, there's a bug in LDCad, I figured you ought to know!

I hope you're keeping well in these interesting times.



Owen.


RE: LDCad problem with graphics card driver, linux - Roland Melkert - 2020-05-10

(2020-05-10, 5:53)Owen Dive Wrote: The last line in the logfile is:
This probably has to do with initializing the gl context

I usually get a

Code:
Warning  | Could not make the newly created OpenGL context current, will try alternative method.

line on my Linux system right after the bin one

I think whatever fails in that situation causes your crash

I have to revisit the code to be sure what's going on there as it's been awhile. i"ll get back to you this evening (cest).


RE: LDCad problem with graphics card driver, linux - Owen Dive - 2020-05-10

(2020-05-10, 6:25)Roland Melkert Wrote: I usually get a

Code:
Warning  | Could not make the newly created OpenGL context current, will try alternative method.

line on my Linux system right after the bin one

I see that one too, normally. But whatever happens with the new driver, happens before that line can be saved to the log.

I'll hold off rolling back to the old driver for another day or two, in case I can provide any extra debugging assistance.

Owen.


RE: LDCad problem with graphics card driver, linux - Roland Melkert - 2020-05-10

(2020-05-10, 7:26)Owen Dive Wrote: I see that one too, normally. But whatever happens with the new driver, happens before that line can be saved to the log.

I'll hold off rolling back to the old driver for another day or two, in case I can provide any extra debugging assistance.

I've checked the code and the reason for that warning is that sometimes (just on Linux it seems) the main application window is not yet fully initialized/active at the moment I try to make the OpenGL context the current one.

The alternative method mentioned does nothing more then an extra show/put on top dialog call before trying the make current thing again.

All functions involved are from the wxWidgets library.

The Linux version still uses wxWidgets 3.0 because when last tried 3.1 broke more then it fixed.

I was planning to compile 1.7 with the latest wxWidgets version for both platforms as it's going to be an alpha anyway.

I could try to compile the current 1.6d with a newer wxWidgets but I have to find the time as it's a very busy week for me.

Does the new driver actually fixes anything for you, making the rollback somewhat unwanted?

I usually have a 'If it isn't broke don't fix' policy with the vga drivers as I have had on too many problems after upgrades myself on both Windows and Linux. Big Grin


RE: LDCad problem with graphics card driver, linux - Owen Dive - 2020-05-10

Thanks for looking into it.

The only reason I have not to roll back, is that my updates manager is going to keep asking me to roll forward again - unless I can find a way to tell it to ignore that particular update. Presumably that shouldn't be too hard.

Owen.


RE: LDCad problem with graphics card driver, linux - Owen Dive - 2020-05-11

Ok, this is truly strange.

In what may or may not be related to the graphics card driver issue that started this thread (probably not, given that I've rolled back to the old version), I'm getting some really odd behaviour of LDCad, with its dialog boxes (e.g. manual rotation, edit header information, etc).

I can type normal characters into the text boxes just fine, but if I try to type a 'control' character (backspace, del, arrow key, etc. Even enter to close the box), nothing happens. That is, until I give focus to some other application, when they all happen at once.
So I can enter, say, 12.3456, hit backspace twice (still shows 12.3456), use the mouse to place the cursor to the left of the 3, then give some other app focus, at which time the two backspaces happen, and the dialog is left with 13456.

Has anyone seen anything like this before?

There isn't anything relevant produced in the LDCad log, and the only thing that is printed to stdout/stderr is:
Code:
(LDCad:<process ID>): Gtk-CRITICAL **: 21:11:32.331: IA__gtk_window_resize: assertion 'width > 0' failed
This line sometimes appears on opening of some (but not all) dialogs. I think it's not relevant, because it doesn't happen every time, and some of the dialogs for which it does happen don't accept text. Besides, it's not uncommon to see GUI applications, which are normally launched by clicking an icon, spew all manner of this kind of error to the console.

I'm at a complete loss as to what's causing this, though I suspect it's not LDCad's fault, but some glitch in my tk library.

Owen.


RE: LDCad problem with graphics card driver, linux - Stefan Frenz - 2020-05-11

(2020-05-10, 22:41)Owen Dive Wrote: my updates manager is going to keep asking me to roll forward again - unless I can find a way to tell it to ignore that particular update.
If it's -buntu or Debian, you can use "apt-mark hold PACKAGE" to prevent all update managers from updating this package.


RE: LDCad problem with graphics card driver, linux - Roland Melkert - 2020-05-11

(2020-05-11, 11:27)Owen Dive Wrote: There isn't anything relevant produced in the LDCad log, and the only thing that is printed to stdout/stderr is:
Code:
(LDCad:<process ID>): Gtk-CRITICAL **: 21:11:32.331: IA__gtk_window_resize: assertion 'width > 0' failed

Yes I get that message too on my mint and debian setups. This while all dialogs are created with the 'defaultSize' constant which is apparently zero.

Sometimes I get the feeling wxWidgets is somewhat over engineered. especially for how I'm using it in LDCad (basically as an OpenGL panel wrapper).

This is why I started LDCad 2 by using GLFW instead.

I will try to get rid of the assertion warnings in the next version, will have to do some more research on it though.


RE: LDCad problem with graphics card driver, linux - Owen Dive - 2020-05-11

(2020-05-11, 18:12)Roland Melkert Wrote: I will try to get rid of the assertion warnings in the next version, will have to do some more research on it though.
I'm not so concerned with the tk warnings - don't spend any effort getting rid of them on my behalf - I only mentioned it in case it might have provided some clue as to what was happening with the text boxes.


RE: LDCad problem with graphics card driver, linux - Roland Melkert - 2020-05-11

(2020-05-11, 21:48)Owen Dive Wrote: I'm not so concerned with the tk warnings - don't spend any effort getting rid of them on my behalf - I only mentioned it in case it might have provided some clue as to what was happening with the text boxes.

I want to get rid of them because some other code might be having troubles handling zero sized dialogs too, causing the crashes you're having.