Message ID | YKwLOP/IAGG1u7em@ls3530 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/display/artist: Fix bug in coordinate extraction in artist_vram_read() | expand |
Hi Helge, On 5/24/21 10:23 PM, Helge Deller wrote: > The CDE desktop on HP-UX 10 shows wrongly rendered pixels when the local screen > menu is closed. This bug was introduced by commit c7050f3f167b > ("hw/display/artist: Refactor x/y coordination extraction") which converted the > coordinate extraction in artist_vram_read() to use the ADDR_TO_X and ADDR_TO_Y > macros, but forgot to right-shift the address by 2 as it was done before. OK, but there is a similar issue in artist_vram_write(), right? > > Signed-off-by: Helge Deller <deller@gmx.de> > Fixes: c7050f3f167b ("hw/display/artist: Refactor x/y coordination extraction") > Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> > Cc: Richard Henderson <richard.henderson@linaro.org> > Cc: Sven Schnelle <svens@stackframe.org> > Cc: qemu-stable@nongnu.org > > diff --git a/hw/display/artist.c b/hw/display/artist.c > index ed0e637f25..34efd3a565 100644 > --- a/hw/display/artist.c > +++ b/hw/display/artist.c > @@ -1233,8 +1233,8 @@ static uint64_t artist_vram_read(void *opaque, hwaddr addr, unsigned size) > return 0; > } > > - posy = ADDR_TO_Y(addr); > - posx = ADDR_TO_X(addr); > + posy = ADDR_TO_Y(addr >> 2); > + posx = ADDR_TO_X(addr >> 2); > > if (posy > buf->height || posx > buf->width) { > return 0; >
On 5/25/21 5:53 AM, Philippe Mathieu-Daudé wrote: > Hi Helge, Hi Plilippe, > On 5/24/21 10:23 PM, Helge Deller wrote: >> The CDE desktop on HP-UX 10 shows wrongly rendered pixels when the local screen >> menu is closed. This bug was introduced by commit c7050f3f167b >> ("hw/display/artist: Refactor x/y coordination extraction") which converted the >> coordinate extraction in artist_vram_read() to use the ADDR_TO_X and ADDR_TO_Y >> macros, but forgot to right-shift the address by 2 as it was done before. > > OK, but there is a similar issue in artist_vram_write(), right? Similar code: Yes. Issue: Maybe. I applied the same patch in artist_vram_write() and it didn't showed any negative (or positive) effects. So, I'll resend my patch with artist_vram_write() adjusted as well. Thanks! Helge >> Signed-off-by: Helge Deller <deller@gmx.de> >> Fixes: c7050f3f167b ("hw/display/artist: Refactor x/y coordination extraction") >> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> >> Cc: Richard Henderson <richard.henderson@linaro.org> >> Cc: Sven Schnelle <svens@stackframe.org> >> Cc: qemu-stable@nongnu.org >> >> diff --git a/hw/display/artist.c b/hw/display/artist.c >> index ed0e637f25..34efd3a565 100644 >> --- a/hw/display/artist.c >> +++ b/hw/display/artist.c >> @@ -1233,8 +1233,8 @@ static uint64_t artist_vram_read(void *opaque, hwaddr addr, unsigned size) >> return 0; >> } >> >> - posy = ADDR_TO_Y(addr); >> - posx = ADDR_TO_X(addr); >> + posy = ADDR_TO_Y(addr >> 2); >> + posx = ADDR_TO_X(addr >> 2); >> >> if (posy > buf->height || posx > buf->width) { >> return 0; >>
diff --git a/hw/display/artist.c b/hw/display/artist.c index ed0e637f25..34efd3a565 100644 --- a/hw/display/artist.c +++ b/hw/display/artist.c @@ -1233,8 +1233,8 @@ static uint64_t artist_vram_read(void *opaque, hwaddr addr, unsigned size) return 0; } - posy = ADDR_TO_Y(addr); - posx = ADDR_TO_X(addr); + posy = ADDR_TO_Y(addr >> 2); + posx = ADDR_TO_X(addr >> 2); if (posy > buf->height || posx > buf->width) { return 0;
The CDE desktop on HP-UX 10 shows wrongly rendered pixels when the local screen menu is closed. This bug was introduced by commit c7050f3f167b ("hw/display/artist: Refactor x/y coordination extraction") which converted the coordinate extraction in artist_vram_read() to use the ADDR_TO_X and ADDR_TO_Y macros, but forgot to right-shift the address by 2 as it was done before. Signed-off-by: Helge Deller <deller@gmx.de> Fixes: c7050f3f167b ("hw/display/artist: Refactor x/y coordination extraction") Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> Cc: Richard Henderson <richard.henderson@linaro.org> Cc: Sven Schnelle <svens@stackframe.org> Cc: qemu-stable@nongnu.org