When the style of an element changes the shader is recompiled and uploaded to the GPU. Reuse the shaders as much as possible.
Created attachment 153910 [details] Patch V1
Comment on attachment 153910 [details] Patch V1 View in context: https://bugs.webkit.org/attachment.cgi?id=153910&action=review Cool! > LayoutTests/css3/filters/custom/custom-filter-shader-reuse.html:26 > + function runTest() > + { { on line above > Source/WebCore/ChangeLog:10 > + CustomFilterGlobalContext now acts as a cache for the compiled shaders. Note that only the shaders displayed on screen > + are cached, making it useful in animations or when more elements share the same shader filter. maybe "only the shaders displayed on the page" because I guess a filtered element might be scrolled off screen? > Source/WebCore/ChangeLog:20 > + is allowed to be null. A null strings is the placeholder for the default shader. typo: strings -> string. > Source/WebCore/platform/graphics/filters/CustomFilterCompiledProgram.h:82 > + // Note that, CustomFilterGlobalContext doesn't not keep a strong reference to > + // the CustomFilterCompiledProgram. typo: no comma necessary
(In reply to comment #2) Thanks! I will submit an updated patch soon.
Landed in http://trac.webkit.org/changeset/124897 .