Le 27/03/24 - 13:11, Philipp Zabel a écrit : > Hi Louis, > > On Mi, 2024-03-13 at 18:45 +0100, Louis Chauvet wrote: > > From: Arthur Grillo <arthurgrillo@xxxxxxxxxx> > > > > Add support to the YUV formats bellow: > > > > - NV12/NV16/NV24 > > - NV21/NV61/NV42 > > - YUV420/YUV422/YUV444 > > - YVU420/YVU422/YVU444 > > > > The conversion from yuv to rgb is done with fixed-point arithmetic, using > > 32.32 floats and the drm_fixed helpers. > > s/floats/fixed-point numbers/ > > Nothing floating here, the point is fixed. > > [...] > > diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h > > index 23e1d247468d..f3116084de5a 100644 > > --- a/drivers/gpu/drm/vkms/vkms_drv.h > > +++ b/drivers/gpu/drm/vkms/vkms_drv.h > > @@ -99,6 +99,27 @@ typedef void (*pixel_read_line_t)(const struct vkms_plane_state *plane, int x_st > > int y_start, enum pixel_read_direction direction, int count, > > struct pixel_argb_u16 out_pixel[]); > > > > +/** > > + * CONVERSION_MATRIX_FLOAT_DEPTH - Number of digits after the point for conversion matrix values > > s/CONVERSION_MATRIX_FLOAT_DEPTH/CONVERSION_MATRIX_FRACTIONAL_BITS/ > > Just a suggestion, maybe there are better terms, but using "FLOAT" here > is confusing. > > > + */ > > +#define CONVERSION_MATRIX_FLOAT_DEPTH 32 > > + > > +/** > > + * struct conversion_matrix - Matrix to use for a specific encoding and range > > + * > > + * @matrix: Conversion matrix from yuv to rgb. The matrix is stored in a row-major manner and is > > + * used to compute rgb values from yuv values: > > + * [[r],[g],[b]] = @matrix * [[y],[u],[v]] > > + * OR for yvu formats: > > + * [[r],[g],[b]] = @matrix * [[y],[v],[u]] > > + * The values of the matrix are fixed floats, 32.CONVERSION_MATRIX_FLOAT_DEPTH > > s/fixed floats/fixed-point numbers/ Thanks for those precision, I will change the wording in v6. Louis Chauvet > regards > Philipp -- Louis Chauvet, Bootlin Embedded Linux and Kernel engineering https://bootlin.com