The drawingbuffer-* tests fail, as we don't properly handle too-large resizes, sometimes leading to crashes.
This doesn't actually fix all the fails, because we're still resizing to sizes above the max viewport size, which is what the tests test against. On WGL+FBO, this can be fixed by clamping based on the viewport size. I suppose this makes sense, but would we like to keep the option of the larger canvas sizes? On EGL/ANGLE and WGL+PBuffers, I don't think we can request the max viewport size before creating the PBuffer surface, which gives us the GLContext. To clamp to viewport size, I think we will need to create a PBuffer surface (and associated GLContext) in order to query the max viewport size, then, if we're above this, destroy and recreate the surface at a valid size.
Also, this should probably be fixed on other platforms, but I'm primarily working with windows at the moment.
On (my) windows7, this now passes on EGL and WGL paths.
Attachment #561409 - Attachment is obsolete: true
I put together a patch which should help with this. It fixes and guarantees that ResizeOffscreen will not change the GLContext on failure, and it changes the webgl context resize operation to soft-fail if resize fails. That is, we attempt a resize, but if it fails, we just leave it in its previous valid state. Previously, if webgl context resize failed, we tried to create a new GLContext with the requested dimensions, which is why we are failing this pair of tests: The creation of a too-large context fails, leaving us with no valid context. I'll upload and pass it by try later today.
This is just an effect, though important, of 681791. Patch posted there.
What should we do with this bug and patch?
It's basically a dupe of bug 681791, so marking it as such.
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 681791
You need to log in before you can comment on or make changes to this bug.