[PATCH libdrm v2 01/10] util: Improve SMPTE color LUT accuracy

Sam Ravnborg sam at ravnborg.org
Sun Jul 10 11:55:49 UTC 2022


Hi Geert,

On Sun, Jul 10, 2022 at 01:04:23PM +0200, Geert Uytterhoeven wrote:
> Hi Sam,
> 
> On Sun, Jul 10, 2022 at 12:31 PM Sam Ravnborg <sam at ravnborg.org> wrote:
> > On Fri, Jul 08, 2022 at 08:21:31PM +0200, Geert Uytterhoeven wrote:
> > > Fill in the LSB when converting color components from 8-bit to 16-bit.
> > >
> > > Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
> > > ---
> > > v2:
> > >   - New.
> > > ---
> > >  tests/util/pattern.c | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/tests/util/pattern.c b/tests/util/pattern.c
> > > index 178aee8341a38920..3753ebc1eeae6c9a 100644
> > > --- a/tests/util/pattern.c
> > > +++ b/tests/util/pattern.c
> > > @@ -646,9 +646,9 @@ void util_smpte_c8_gamma(unsigned size, struct drm_color_lut *lut)
> > >       memset(lut, 0, size * sizeof(struct drm_color_lut));
> > >
> > >  #define FILL_COLOR(idx, r, g, b) \
> > > -     lut[idx].red = (r) << 8; \
> > > -     lut[idx].green = (g) << 8; \
> > > -     lut[idx].blue = (b) << 8
> > > +     lut[idx].red = (r) * 0x101; \
> >
> >         (lut[idx].red = (r) << 8) | 1;
> >
> > had IMO been easier to read.
> 
> I guess you mean "| (r)" instead of "| 1"?
Well, I meant what I wrote but it is obviously wrong.

So yes
	lut[idx].red = (r) << 8 | (r);

is the equivalent of multiplying with 0x101.

Whatever works, but if you update this patch, then please update the
later patch where the multiply with 0x101 is also used.

	Sam


More information about the dri-devel mailing list