Moving client leaves previous image on ivi-shell
I've changed a SoC chip from included arm gpu to imagination gpu recently. I ran weston-simple-shm and moved the location from <0,0,250,250> to <100,100,250,250> with LayerManagerControl tool. On chip with arm gpu, the previous image(0,0,250,250) is cleared, but on new chip with imagination gpu, the previous image remains. So I reported to imagination that there is an issue, but they said that there is different implementation each vendor.
"for EGL_BUFFER_DESTROYED, the spec. leave each GPU vendor decide if they want to destroy color buffer contents or change by the swapbuffer operation. From our previous debugging experience on ARM, it choose the first one.(destroy color buffer contents which might imply color buffer clear) IMG implement the second one.(changed by the swapbuffer operation which imply we just keep the content on color buffer so we will see the previous content) So if ARM EGL_SWAP_BEHAVIOR is this and if they will do color buffer clear for the EGL_BUFFER_DESTROYED swap behavior, we won't see this issue on ARM."
The arm gpu clears color buffer immediately, but img gpu keeps color buffer until eglSwapBuffers(). So If the GL_BLEND is enabled in first draw-call of gles context, img gpu refer to the previous image(framebuffer) and blending them. I attached dump of egl/gles calls.
Additionally, I ran same test with pixman renderer and there is still previous image. So I confused that is this intended? or am I missing something?
Thanks.