[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 6/9] hw/display/omap_lcdc: Drop broken bigendian ifdef
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 6/9] hw/display/omap_lcdc: Drop broken bigendian ifdef |
Date: |
Mon, 15 Feb 2021 11:58:10 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
On 2/15/21 11:32 AM, Peter Maydell wrote:
> The draw_line16_32() function in the omap_lcdc template header
> includes an ifdef for the case where HOST_WORDS_BIGENDIAN matches
> TARGET_WORDS_BIGENDIAN. This is trying to optimise for "source
> bitmap and destination bitmap format match", but it is broken,
> because in this function the formats don't match: the source is
> 16-bit colour and the destination is 32-bit colour, so a memcpy()
> will produce corrupted graphics output. Drop the bogus ifdef.
>
> This bug was introduced in commit ea644cf343129, when we dropped
> support for DEPTH values other than 32 from the template header.
> The old #if line was
> #if DEPTH == 16 && defined(HOST_WORDS_BIGENDIAN) ==
> defined(TARGET_WORDS_BIGENDIAN)
> and this was mistakenly changed to
> #if defined(HOST_WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
> rather than deleting the #if as now having an always-false condition.
>
> Fixes: ea644cf343129
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> hw/display/omap_lcd_template.h | 4 ----
> 1 file changed, 4 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
- [PATCH 0/9] arm: drop dead code for non-32-bit-RGB surfaces, Peter Maydell, 2021/02/15
- [PATCH 1/9] hw/arm/musicpal: Remove dead code for non-32-bit-RGB surfaces, Peter Maydell, 2021/02/15
- [PATCH 5/9] hw/display/omap_lcdc: Expand out macros in template header, Peter Maydell, 2021/02/15
- [PATCH 3/9] hw/display/tc6393xb: Expand out macros in template header, Peter Maydell, 2021/02/15
- [PATCH 4/9] hw/display/tc6393xb: Inline tc6393xb_draw_graphic32() at its callsite, Peter Maydell, 2021/02/15
- [PATCH 2/9] hw/display/tc6393xb: Remove dead code for handling non-32bpp surfaces, Peter Maydell, 2021/02/15
- [PATCH 6/9] hw/display/omap_lcdc: Drop broken bigendian ifdef, Peter Maydell, 2021/02/15
- Re: [PATCH 6/9] hw/display/omap_lcdc: Drop broken bigendian ifdef,
Philippe Mathieu-Daudé <=
- [PATCH 7/9] hw/display/omap_lcdc: Fix coding style issues in template header, Peter Maydell, 2021/02/15
- [PATCH 8/9] hw/display/omap_lcdc: Inline template header into C file, Peter Maydell, 2021/02/15
- [PATCH 9/9] hw/display/omap_lcdc: Delete unnecessary macro, Peter Maydell, 2021/02/15
- Re: [PATCH 0/9] arm: drop dead code for non-32-bit-RGB surfaces, Richard Henderson, 2021/02/15