Closed
Bug 1213431
Opened 10 years ago
Closed 10 years ago
Support using Core profile for WebGL2 on Linux
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla45
People
(Reporter: jrmuizel, Unassigned)
Details
(Whiteboard: [gfx-noted])
Attachments
(1 file, 1 obsolete file)
|
13.72 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
Mesa won't give us a version of OpenGL newer than 3.0 without core profile
| Reporter | ||
Comment 1•10 years ago
|
||
| Reporter | ||
Comment 2•10 years ago
|
||
There are a couple of changes here:
1. a check for EXT_framebuffer_object is expanded to also check for ARB_framebuffer_object because mesa's core context supports the ARB variant with out the EXT variant.
2. Plumbing the choice of the compatibility profile through to the functions that do context creation.
3. A small refactoring of the GLX symbol loading so that we can create core contexts without needing the robustness extension
Attachment #8672142 -
Attachment is obsolete: true
Attachment #8673230 -
Flags: review?(jgilbert)
Updated•10 years ago
|
Whiteboard: [gfx-noted]
Comment 3•10 years ago
|
||
Comment on attachment 8673230 [details] [diff] [review]
Use a Core profile with GLX
Review of attachment 8673230 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/gl/GLContextProviderGLX.cpp
@@ +877,5 @@
> }
>
> + // EXT_framebuffer_object is not supported on Core contexts
> + // so we'll also check for ARB_framebuffer_object
> + if (!IsExtensionSupported(EXT_framebuffer_object) && !IsExtensionSupported(ARB_framebuffer_object))
We should be checking for the Feature, which might have gone Core in 3.2, which would leave no extension.
@@ +1294,5 @@
> }
>
> + ContextProfile profile = ContextProfile::OpenGLCompatibility;
> + if (!(flags & CreateContextFlags::REQUIRE_COMPAT_PROFILE)) {
> + profile = ContextProfile::OpenGLCore;
Surely we should do this the other way around:
profile = Core
if (flags & COMPAT)
profile = Compat
Attachment #8673230 -
Flags: review?(jgilbert) → review+
| Reporter | ||
Comment 4•10 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #3)
> Comment on attachment 8673230 [details] [diff] [review]
> Use a Core profile with GLX
>
> Review of attachment 8673230 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: gfx/gl/GLContextProviderGLX.cpp
> @@ +877,5 @@
> > }
> >
> > + // EXT_framebuffer_object is not supported on Core contexts
> > + // so we'll also check for ARB_framebuffer_object
> > + if (!IsExtensionSupported(EXT_framebuffer_object) && !IsExtensionSupported(ARB_framebuffer_object))
>
> We should be checking for the Feature, which might have gone Core in 3.2,
> which would leave no extension.
Makes sense.
>
> @@ +1294,5 @@
> > }
> >
> > + ContextProfile profile = ContextProfile::OpenGLCompatibility;
> > + if (!(flags & CreateContextFlags::REQUIRE_COMPAT_PROFILE)) {
> > + profile = ContextProfile::OpenGLCore;
>
> Surely we should do this the other way around:
> profile = Core
> if (flags & COMPAT)
> profile = Compat
Certainly. This was badly copied from the mac backend.
Bug 1053440 probably depends on this?
| Reporter | ||
Comment 6•10 years ago
|
||
Yes.
Comment 8•10 years ago
|
||
Backed out in https://hg.mozilla.org/integration/mozilla-inbound/rev/e02f986fbf94 to see what effect that has on the Mulet bustage in webgl-capturestream-test.html?preserve which started below you but persisted past the backout of the thing that started it below you.
Comment 10•10 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox45:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Comment 11•10 years ago
|
||
Patch works fine, but I found no follow-up Bug filed about wrong OpenGL Version reported in about:support.
Still says "Driver Version 3.0 Mesa 11.0.4" for OpenGL 3.3 Core Profile.
Comment 12•10 years ago
|
||
| bugherder uplift | ||
status-b2g-v2.5:
--- → fixed
You need to log in
before you can comment on or make changes to this bug.
Description
•