Closed Bug 1213431 Opened 10 years ago Closed 10 years ago

Support using Core profile for WebGL2 on Linux

Categories

(Core :: Graphics: CanvasWebGL, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed
b2g-v2.5 --- fixed

People

(Reporter: jrmuizel, Unassigned)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file, 1 obsolete file)

Mesa won't give us a version of OpenGL newer than 3.0 without core profile
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)
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+
(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?
Yes.
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.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
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.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: