Project

General

Profile

Bug #2049

Inadequate minimum OpenGL version detection/handling (Windows)

Added by danij almost 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Defect
Target version:
Start date:
2015-05-13
% Done:

100%

Tags:

Description

The default display driver on Windows 7 does not support OpenGL 2.0 (or later) resulting in the Doomsday client failing to start. The client either does not display an error dialog or, the standard Windows "An error has occurred" dialog is displayed instead. At the very least a native dialog should be displayed, presenting a user friendly description of the problem and allowing the user to terminate the client gracefully.

Furthermore, it is not possible to use QtCreator to debug this issue because the IDE itself requires OpenGL to function at all.

doomsday.out (3.31 KB) doomsday.out danij, 2015-05-13 10:10

Associated revisions

Revision 6a0815b1 (diff)
Added by skyjake almost 9 years ago

Fixed|Windows|libgui: Crash during startup if display driver doesn't support OpenGL 2

Entrypoints were null, calls were still being made.

IssueID #2049

Revision a73892f9 (diff)
Added by skyjake almost 9 years ago

Fixed|Windows|libgui: Crash during startup if display driver doesn't support OpenGL 2

Entrypoints were null, calls were still being made.

IssueID #2049

History

#1 Updated by danij almost 9 years ago

#2 Updated by skyjake almost 9 years ago

If the minimum OpenGL version check fails, the current behavior is to show an error dialog box (using nativeui.cpp). I take it this isn't working on Windows (7)?

danij wrote:

standard Windows "An error has occurred" dialog is displayed instead

That would mean it crashes before/during Doomsday's dialog is shown.

#3 Updated by skyjake almost 9 years ago

  • Subject changed from Inadequate minimum OpenGL version detection/handling to Inadequate minimum OpenGL version detection/handling (Windows)

#4 Updated by danij almost 9 years ago

Doomsday's dialog is not shown and no error is printed in the log, on Windows 7 64-bit.

#5 Updated by skyjake almost 9 years ago

  • Status changed from New to In Progress
  • Assignee set to skyjake
  • Target version set to 1.15
  • % Done changed from 0 to 100

The problem was that a number of calls were attempted to the OpenGL 2+ entrypoints that were all nullptr because of the old driver. These occurred when the window first appears and tries to get itself painted.

It is good to note that the OpenGL context is not available before the window has appeared. It would make sense to delay drawing anything in the window before the OpenGL checks have been made.

(I used Windows 8.1 Pro 64-bit with the Nvidia driver uninstalled, MSVC for debugging.)

#6 Updated by skyjake almost 9 years ago

  • Status changed from In Progress to Closed

#7 Updated by danij almost 9 years ago

Very glad to hear this is now fixed.

(Trying to debug anything using Qt Creator on Windows is a complete nightmare and given the IDE won't even start up without OpenGL - I gave up in sheer frustration trying to address this).

Also available in: Atom PDF