I added some fancy transitions to my app. Just animating position and rotation for QGraphicsTextItem and QGraphicsWidgetProxy that are in QGraphicsSCene in QGraphicsView.
On desktop version (win32) everything works as excepted. Items rotate and there is no artifacts and everything looks great.
But on N8 only a small part of the item, or not even that, is visible during animation. QGraphicsView background is rendered correctly and so is foreground. I debugged this by rendering item bounds manually to foreground. Bounds are rendered correctly, but only a small portion is visible inside bounds. It's like it's rendering is stopped to some random horizontal line. Somebody might call it flickering, but an item is not rendered fully even once.
I tried few things. First I thought that animation framework was messing something up, because I used QPropertyAnimation. So I did animation manually. Same result.
I tried without background or foreground. I tested with different z-values. I tried QGraphicsView optimization flags and viewport update modes. Different sort of update timers etc. No effect.
I tried without rotation and now it worked. This made me think that behaviour has something to do with incorrect bounds. Somehow bounding box is messed up when item is rotated (and perhaps this happens with scale too.) If I understood right, Qt uses axis-aligned bounding boxes, so naturally when object is rotated bounding box should change it's geometry. However when I tried to force rendering of everything, there was no difference what so ever. (I am not sure if I did that right though.)
Animated Tiles example uses DeviceCoordinateCache mode for items. I tried that and in fact it worked, but for some reason it causes recursive paint events leading to warnings and out of memory errors. Animated Tiles example works perfectly on N8, but it doesn't rotate items.
Then I tried ItemCoordinateCache mode. Now animation works without errors or warnings. Downside is that as this mode uses separate buffer, visual quality is a bit bad. That's not a big problem since I can just set this mode on when animation starts and disable cache after transition.
However, I think rotation should work without changing cache mode. And it does work, when object is not animated.
What I didn't try, is to manually calculate bounds, because it's a bit too much work for just testing. I didn't found a way to easily take existing item instance and just overload bound functions. I mean, like in decorator-pattern.
I'm using Qt 4.6.x. On N8 I use version supplied with device/os.