Skip to content

Tags: bvibber/yuv-canvas

Tags

1.2.11

Toggle 1.2.11's commit message
1.2.11 - 2022-03-04

* perf: further improvements to speed in Safari / macOS using alpha instead of luminance textures
* update shaders from low to medium precision, may fix pixel precision errors on some GPUs

1.2.10

Toggle 1.2.10's commit message
1.2.10 - re-disable stripe with fixes

Part of the reason the stripe mode was fast was that uploads
were not using gl.texSubImage2d on the non-stripe code path
when updating an existing texture.

This is still slower on macOS 12.3 than with the stripe mode
off, but is probably fast enough.

Note that Firefox has some troubles with the stripe mode on
macOS at present -- I'm not sure why, but it seems to be
something with the framebuffer used to unpack textures.

Anyway, leaving it off by default resolves functionality
at a modest cost of performance on current macOS/iOS and
I may remove the stripe code later, but am for now leaving
it in so it can be re-enabled manually if needed.

Resolves #37

1.2.9

Toggle 1.2.9's commit message
1.2.9: re-enable stripe unconditionally

Turns out that on macOS 12.2 with AMD GPU the stripe texture
hack is also helpful. Just leave it on, since it has low cost
and is very beneficial when it helps.

1.2.8

Toggle 1.2.8's commit message
Bump to 1.2.8; disable Windows "stripe" texture hack

This hack makes much less difference, if any, in 2022 vs
2014 and was an extra use of userAgent which is becoming
deprecated in Chrome

v.1.2.7

Toggle v.1.2.7's commit message
Bump to 1.2.7

v1.2.6

Toggle v1.2.6's commit message
1.2.6; fix canvas video capture in Firefox

Needed to preserve the back buffer

v1.2.5

Toggle v1.2.5's commit message
WebGL tweak and tag 1.2.5

Removed some extra WebGL options that just slowed things down and
could cause flicker in Safari during canvas video capture

v1.2.4

Toggle v1.2.4's commit message
tag 1.2.4; fix software rendering for crop offsets

Affects Theora frames at least, eg at 854x480

The dx and dy parameters of putImageData don't do
what you't expect in combination with the dirty
rect params. Well it makes sense when you think
of it as a dirty rect, but not when you think of
it as a source rect. :)

Must offset the offsets to place the image in the
correct place.

v1.2.3

Toggle v1.2.3's commit message
tag 1.2.3; software path micro-optimization

Use asm.js-style coercions to integer in a few places,
and avoid incrementing pointers when not needed.
About 10% improvement plus or minus on the demo page.

v1.2.2

Toggle v1.2.2's commit message
tag 1.2.2, prevent use of software WebGL

1.2.2 - 2019-02-04
* don't use WebGL when software rendering is in use (failIfMajorPerformanceCaveat)
* fix use of preferLowPowerToHighPerformance for preferring integrated GPU

Fixes #19