On Mon, Jun 30, 2014 at 7:48 AM, Thomas Hellstrom thellstrom@vmware.com wrote:
I don't think we can blame video-vmware for this. A kernel driver change that breaks existing user-space is by definition a kernel driver bug, regardless whether exisiting user-space is doing something horrendously stupid.
I wouldn't be so quick to say it's a kernel bug. The fbdev contract hasn't changed. Also xf86-video-vmware isn't using the fbdev driver, and the fbdev driver code is obviously correct (see screenshots in link submitted with initial patch).
So the fix must IMO be a kernel driver fix. My initial guess is that once we set the bytes per line register, it might not be automatically updated when the screen width is changed, but the documentation is poor. I see if I can shed some light over this.
Having dumped all of the svga registers while hacking on vmwgfx, I noticed that the BYTES_PER_LINE field is initially incorrectly set to something way off. My initial reaction is that video-vmware doesn't properly compute the bytes-per-line register, and therefore that it is a video-vmware bug that has always existed.
I'm reproducing the problem and providing a fix for video-vmware as I write this.
C