Summary: | Mapped GLProfile's (e.g. GL2ES2, GL2ES1) select software renderer GL2 instead of hardware renderer GLES1 & GLES2 | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | Xerxes Rånby <xerxes> |
Component: | core | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gottfried.haider, gouessej, sgothel |
Priority: | P4 | ||
Version: | 2.4.0 | ||
Hardware: | All | ||
OS: | all | ||
Type: | DEFECT | SCM Refs: |
jogl e2223107cc54e08031bd9505ce8a9ccc72673be0
|
Workaround: | --- | ||
Attachments: | ARM Mali EGL and Mesa GL at the same time on C.H.I.P. GLWindow log |
Description
Xerxes Rånby
2016-11-14 10:51:55 CET
Do you obtain GLES1 when calling GLProfile.getMaxFixedFunc(true)? GLProfile.getMaxFixedFunc(true) returns GLES2 hardware (just getGL2ES2() returns GL2 software) GLProfile.computeProfileImpl(..) as of Bug 1084 is not the culprit here and its hardware criteria filter works. The issue is commit 99a064327bf991318841c858d21d13e55d6b39db of Bug 1203, in particular the change in GLProfile re: "Merge computed EGL-Profile-Map (1) and Desktop-Profile-Map (2) per device, instead of just using the last computation, preserving and favoratizing the Desktop-Profile-Map." Here the Desktop-Profile-Map overwrites the EGL-Profile-Map and hence the software mapping gets used. Indeed, this is a regression cause by the work of Bug 1203. +++ Resolution is to revert the explicit 'union mapping' and rely on an enhanced 'GLContextImpl.remapAvailableGLVersions(fromDevice, toDevice)' function. Here the EGLDrawableFactory _already_ maps the EGL device's GL Versions to the 'host' device (e.g. X11). This has to be refined so that the remap will not overwrite the 'host' device's already detected GL Versions. That alone is enough, so that GLProfile can simply use the 'mappedEGLProfiles' of the 'host' device if detected, which already is a merged mapping of X11 host- and EGL sub-device. In case no 'mappedEGLProfiles' are available, we simply use the 'mappedDesktopProfiles'. |