Improper synchronization in iPad Safari canvas drawImage()

Originator:mike.jumper
Number:rdar://11238027 Date Originated:12-Apr-2012 11:54 AM
Status:Open Resolved:No
Product:iPad Product Version:5.1
Classification:Serious Bug Reproducible:Always
 
12-Apr-2012 11:54 AM Michael Jumper:
Summary:

In Safari on iPad, when using drawImage() to copy a rectangle of image data from one canvas to another, the drawImage() call runs asynchronously, allowing further draw operations on the source canvas without ensuring that the previous drawImage() call has actually finished. Further drawing on the source canvas has a random chance of affecting the result of a previous drawImage() call.

Steps to Reproduce:

View the following test page in iPad Safari: http://guac-dev.org/pub/tests/async-test.html

Expected Results:

The test page renders correctly, as a 27x27 grid of circles, where each row is identical, and each column is unique.

Actual Results:

The colorization of the circles in the grid is random, as drawing to the source canvas after a drawImage() call has a random chance of affecting the result of that call.

Regression:

Notes:

See attached reference image for expected results.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!