WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
93252
Make GraphicsSurface double buffered by default.
https://bugs.webkit.org/show_bug.cgi?id=93252
Summary
Make GraphicsSurface double buffered by default.
Zeno Albisser
Reported
2012-08-06 03:54:23 PDT
The current GraphicsSurface implementation is mainly used for WebGL. To achieve a reasonable performance, WebGL requires at least two buffers. Therefore we currently create two GraphicsSurfaces on mac so we can switch between them. On Linux nevertheless we only create a single GraphicsSurface, because the GraphicsSurfaceGLX is backed by an XWindow which already has a front and a back buffer. We should unify this behaviour and only create a single GraphicsSurface which always provides two buffers on the writing side. For mac this would mean that a GraphicsSurface will be backed by two IOSurfaces that will be used alternated.
Attachments
patch for feedback.
(47.49 KB, patch)
2012-08-06 05:52 PDT
,
Zeno Albisser
noam
: review-
Details
Formatted Diff
Diff
patch for review.
(46.61 KB, patch)
2012-08-08 04:14 PDT
,
Zeno Albisser
no flags
Details
Formatted Diff
Diff
patch for review.
(46.71 KB, patch)
2012-08-08 05:15 PDT
,
Zeno Albisser
webkit-ews
: commit-queue-
Details
Formatted Diff
Diff
patch for review.
(46.66 KB, patch)
2012-08-08 07:23 PDT
,
Zeno Albisser
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Zeno Albisser
Comment 1
2012-08-06 05:52:54 PDT
Created
attachment 156673
[details]
patch for feedback.
Noam Rosenthal
Comment 2
2012-08-06 06:30:35 PDT
Comment on
attachment 156673
[details]
patch for feedback. View in context:
https://bugs.webkit.org/attachment.cgi?id=156673&action=review
Make sure this doesn't break WebGL on WebKit1.
> Source/WebCore/ChangeLog:9 > + two provide a front and a back buffer.
two -> to
> Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:267 > - const QOpenGLContext* currentContext = QOpenGLContext::currentContext(); > - QSurface* currentSurface = 0; > - if (currentContext != m_platformContext) { > - currentSurface = currentContext->surface(); > + if (QOpenGLContext::currentContext() != m_platformContext) > m_platformContext->makeCurrent(m_surface); > - } > + > blitMultisampleFramebuffer(); > - if (currentSurface) > - const_cast<QOpenGLContext*>(currentContext)->makeCurrent(currentSurface); > + m_platformContext->makeCurrent(m_surface);
This will break WebGL on WebKit1.
Zeno Albisser
Comment 3
2012-08-06 07:34:23 PDT
Comment on
attachment 156673
[details]
patch for feedback. View in context:
https://bugs.webkit.org/attachment.cgi?id=156673&action=review
>> Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:267 >> + m_platformContext->makeCurrent(m_surface); > > This will break WebGL on WebKit1.
Good point! I'll look at this again. Do you agree with the general direction of the patch?
Noam Rosenthal
Comment 4
2012-08-06 07:36:00 PDT
(In reply to
comment #3
)
> (From update of
attachment 156673
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=156673&action=review
> > >> Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:267 > >> + m_platformContext->makeCurrent(m_surface); > > > > This will break WebGL on WebKit1. > > Good point! I'll look at this again. > > Do you agree with the general direction of the patch?
Definitely! Good work.
Zeno Albisser
Comment 5
2012-08-08 04:14:15 PDT
Comment on
attachment 156673
[details]
patch for feedback. View in context:
https://bugs.webkit.org/attachment.cgi?id=156673&action=review
>>>> Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp:267 >>>> + m_platformContext->makeCurrent(m_surface); >>> >>> This will break WebGL on WebKit1. >> >> Good point! I'll look at this again. >> >> Do you agree with the general direction of the patch? > > Definitely! Good work.
I was wrong about this hunk. It is actually wrong and also unnecessary. - I will remove it.
Zeno Albisser
Comment 6
2012-08-08 04:14:57 PDT
Created
attachment 157177
[details]
patch for review.
Zeno Albisser
Comment 7
2012-08-08 04:43:23 PDT
Comment on
attachment 157177
[details]
patch for review. Patch needs to be rebased first.
Zeno Albisser
Comment 8
2012-08-08 05:15:30 PDT
Created
attachment 157189
[details]
patch for review.
Early Warning System Bot
Comment 9
2012-08-08 06:03:49 PDT
Comment on
attachment 157189
[details]
patch for review.
Attachment 157189
[details]
did not pass qt-ews (qt): Output:
http://queues.webkit.org/results/13454490
Early Warning System Bot
Comment 10
2012-08-08 06:17:02 PDT
Comment on
attachment 157189
[details]
patch for review.
Attachment 157189
[details]
did not pass qt-wk2-ews (qt): Output:
http://queues.webkit.org/results/13456479
Zeno Albisser
Comment 11
2012-08-08 07:23:04 PDT
Created
attachment 157213
[details]
patch for review.
Kenneth Russell
Comment 12
2012-08-13 11:26:33 PDT
Comment on
attachment 157213
[details]
patch for review. Interesting. This looks good to me for what it's worth, but Noam should review it.
Zeno Albisser
Comment 13
2012-08-16 06:24:44 PDT
Comment on
attachment 157213
[details]
patch for review. Clearing flags on attachment: 157213 Committed
r125773
: <
http://trac.webkit.org/changeset/125773
>
Zeno Albisser
Comment 14
2012-08-16 06:24:53 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug