Feature #1900
Feature #7: Next-gen renderer (codename "Gloom")
OpenGL 3.3 Core Profile
100%
Description
The OpenGL 2.1 Compatibility profile that Doomsday has been using hitherto is rapidly becoming a thing of the past. Modern OpenGL is evolving at a healthy pace, and OpenGL drivers have the best support for the more recent versions. I've done some tests that indicate that for instance with Intel HD Graphics, things like multisampled render buffers work better when using OpenGL 3.3 Core profile.
In practice, we should probably just target OpenGL 3.3, since the latest OpenGL is already at version 4.
By migrating to OpenGL 3.3, we'll be automatically doing most of the work required to support OpenGL ES 2.0.
Related issues
History
#1 Updated by skyjake almost 10 years ago
- Parent task set to #7
#2 Updated by skyjake almost 10 years ago
- Related to Feature #1675: Switch to new Qt 5.4+ OpenGL APIs (from QGLWidget) added
#3 Updated by skyjake almost 10 years ago
- Related to Feature #1623: Shaders added
#4 Updated by skyjake almost 10 years ago
It is also worth noting that the 3.3 core profile supports multisampled textures, removing the need for multisampled render buffers completely (no need to render first to a buffer and then blit to a texture).
#5 Updated by skyjake over 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
#6 Updated by skyjake over 9 years ago
This work has been started in the opengl3.3
branch, although the crucial step of switching to QOpenGLWindow
has not yet been tackled.
#7 Updated by skyjake over 9 years ago
- Target version changed from 42 to 2.0 – Home UI & Packages
#8 Updated by skyjake over 9 years ago
- Priority changed from Normal to High
#9 Updated by skyjake over 9 years ago
- Priority changed from High to Urgent
#10 Updated by skyjake over 9 years ago
- Related to Feature #1991: Qt 5.5 as minimum requirement for GUI, Qt 5.x for non-GUI build added
#11 Updated by skyjake over 9 years ago
QOpenGLWindow
and QOpenGLWidget
were added in Qt 5.4, so the minimum required version of Qt would have to be 5.4. This would not be an issue with Windows and OS X, however Linux distros typically have somewhat older versions of Qt 5 available.
#12 Updated by skyjake over 8 years ago
- Target version changed from 2.0 – Home UI & Packages to Rendering
#13 Updated by skyjake over 8 years ago
- Status changed from In Progress to Progressed
#14 Updated by skyjake almost 8 years ago
- % Done changed from 10 to 30
The low-level GL code now uses the new Qt 5.4 OpenGL APIs, which means switching to newer OpenGL API versions is possible.
#15 Updated by skyjake over 7 years ago
- Target version changed from Rendering to 2.1 (Late 2018)
#16 Updated by skyjake over 7 years ago
- Status changed from Progressed to Resolved
- % Done changed from 30 to 100
This has now been largely implemented. In practice, all drawing occurs via the DGL abstraction layer and the DGL shader that emulates the old fixed-function OpenGL API behavior. Performance is negatively affected by this additional layer, though. Some optimizations will be necessary before the 2.1 stable release.
This puts us in the right place to start work on next-gen map rendering (#7).
#17 Updated by skyjake over 7 years ago
- Status changed from Resolved to Closed