Hi, > I've spent a bit of time over the weekend attempting to convert the > SPARC CG3/TCX framebuffers over to use your new code and pushed the > result to my github branch here: > https://github.com/mcayland/qemu/commits/vga-fixes-sparc.
work/vga-fixes branch updated & rebased to latest master, with your patches added. > Using your current git branch, I get an assert() using VGA under > qemu-system-ppc on startup unless I change the first assert to > "assert(start >= snap->start)". > > I'm also not convinced by the second assert "assert(start + length < > snap->end)" either. In the example CG3/TCX conversions I ended up having > to subtract 1 from the size of the region passed to > memory_region_snapshot_get_dirty() in order to avoid it firing when > accessing the last scanline which seems wrong. I didn't explicitly add a > patch to change this to "<=" in my git patchset just in case it broke > further assumptions in the bitmap code relating to the end address. Both asserts should use inclusive compare. Added a patch fixing the other assert too. > 2) Redraw issues with CG3/TCX after conversion > > Despite the conversion from your patches looking reasonably > straightforward, I still see problems with areas of the screen not > updating after conversion. I can easily reproduce these locally as follows: > > ./qemu-system-sparc -vga cg3 -prom-env 'auto-boot?=false' > ./qemu-system-sparc -vga tcx -g 1024x768x8 -prom-env 'auto-boot?=false' > ./qemu-system-sparc -vga tcx -g 1024x768x24 -prom-env 'auto-boot?=false' Hmm, I have a blank screen only (yellow with cg3, black with tcx). No openfirmware prompt showing up ... > Finally on a slightly unrelated note, the TCX driver still has old code > for 8 and 16 bpp surfaces in QEMU. Am I right in understanding that all > surfaces in QEMU are now 32-bit and the 8/16 bpp code can be removed? Yes, that is correct. tcx uses qemu_resize_console() so surfaces will always be 32bpp. cheers, Gerd