[Webkit-unassigned] [Bug 117550] [CSS Shaders] Animations and transitions should use validated custom programs

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Jun 23 18:02:20 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=117550





--- Comment #17 from Ralph T <ralpht+bugs at gmail.com>  2013-06-23 18:01:00 PST ---
(In reply to comment #15)
> GraphicsLayer should not do any loading. If you are going to kick off resource loads, you should do that in a similar way to how we load images for style, or something.

I misspoke. The loads are scheduled by StyleResolver when the animated style is computed.

I have a patch which does the following in RenderLayerBacking:

 1. Checks a filter list for custom filters. These will be of type StyleCustomFilterProgram. If any shaders haven't been downloaded then we don't offer them to GraphicsLayer to animate.

  XXX: The isLoaded method on StyleCustomFilterProgram isn't exactly what I want; I want to know if all of the shaders are available and not ASSERT that they are. Currently I add an empty CustomFilterProgramClient prior to calling isLoaded but this isn't really correct either.

 2. If a filter is loaded, then we can add a CustomFilterProgramClient for it, which grabs the cached shaders and lets us retrieve the shader strings.

 3. We can validate loaded shaders. This creates a list of filters with ValidatedCustomFilterPrograms, not StyleCustomFilterPrograms. We don't care about keeping the cached shaders or StyleCustomFilterPrograms anymore.

 4. Remove our empty client from the StyleCustomFilterPrograms, since they're unneeded.

My reasoning for doing the above is:
 1. If a shader isn't loaded yet, we can't animate it anyway, so the compositor shouldn't be offered it.

 2. It's OK to use an empty CustomFilterProgramClient in this case, because we only need the shader strings to mangle through ANGLE. We check that the shader is loaded, so the notifyCustomFilterProgram loaded is useless to us.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list