Re: [compositing-1] please move non-separable effects to Level 2

On 18 Apr 2014, at 10:45 pm, Robert O'Callahan <robert@ocallahan.org> wrote:

> On Sat, Apr 19, 2014 at 5:38 PM, Dean Jackson <dino@apple.com> wrote:
> We support them in software mode too, just not in compositing mode. Since we don’t want to have blending disappear if an element becomes composited (99.9% of developers would not be able to explain all the cases in which this could happen), we’d only ship an implementation that supports them everywhere.
> 
> In Gecko, blending doesn't disappear, instead we prevent the content from being offloaded to the compositor. So we support them everywhere, but they cause performance degradation in some cases.

Sometimes that performance degradation might be unacceptable to our users. That is, we might be penalising existing features (such as video playback) because a new feature comes along, even when it has not yet demonstrated its usefulness.

> I'll note that Safari 6 release notes claim support for SVG filters. I'm pretty sure you can implement all the blend modes in terms of SVG filters. So either Webkit's SVG filter support is partial (in which case partial support for mix-blend-mode should be OK too right?) or whatever implementation tradeoffs you made for SVG filters you're declining to make for mix-blend-mode (which I think is not accurately described as "can't implement”).

That’s right.

I’d also say that people don’t use SVG filters on the Web because they are horribly slow. Providing full hardware acceleration for them is possible, but not easy. Meanwhile we see people use the shorthand filters exactly because they are fast.

So yeah, we don’t want to add things to WebKit until we know we can make them fast.

Some more background on the non-separable modes:

- Now that Rik has clarified that they are supported in Adobe products, it’s worth noting that Photoshop and Illustrator are not interactive Web content that has to run well on a range of devices.

- Non-separable modes are not supported by default in OpenGL (glBlendFunc). There are some extensions available on some hardware to expose them, but these are recent proposals (see [1]). Otherwise you’re going to have to do color format conversion in and out.

Anyway, I think we’ve gone as far as we can with this discussion. I’m going to add the prefix back in WebKit while the spec includes those modes and we don’t support them.

[1] http://www.slideshare.net/Mark_Kilgard/blend-modes-for-opengl

Dean

Received on Saturday, 19 April 2014 06:09:41 UTC