[PATCH i-g-t 0/2] tests/kms_dither: New IGT to validate crtc Dithering

Bhanuprakash Modem bhanuprakash.modem at intel.com
Fri Jul 31 15:16:44 UTC 2020


Many of the display devices have color format support less than
the color format of the input data (Ex: 8-bit input data and 6-bit
display color depth). Then the input data will be either truncated
or rounded, but this approach usually causes loss of detail and also
produce large banded areas of a single color that significantly
differs from the original image.

Dithering is a technique used to enhance these colors by creating the
illusion of smoothness by adjusting the nearby pixel color.
For Eg: Converting 8-bit to 6-bit by modifying the pixel information.

Dithering should be enabled when a panel color depth is lower than the
color depth of the framebuffer.

Even though feature Dithering is there since legacy, there is no
specific IGT for this. This patch will create New IGT for Dithering.
And below is the truth table for CRTC Dithering.

Example:

For panels with 12 BPC, and Input is greater than 12 BPC, then driver
should enable the dithering next to the color conversion (CC) blocks.
For panels with less than 12 BPC, dithering will be at the end of the
pipe.

Below is the truth table:

|----------------|---------|-------------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |  Dithering  |
|                |         |  (After CC) |(end of pipe)|
|----------------|---------|-------------|-------------|
|      8 BPC     |  6 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|      8 BPC     |  8 BPC  |     No      |     No      |
|----------------|---------|-------------|-------------|
|      8 BPC     | 10 BPC  |     No      |     No      |
|----------------|---------|-------------|-------------|
|      8 BPC     | 12 BPC  |     No      |     No      |
|----------------|---------|-------------|-------------|
|     10 BPC     |  6 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|     10 BPC     |  8 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|     10 BPC     | 10 BPC  |     No      |     No      |
|----------------|---------|-------------|-------------|
|     10 BPC     | 12 BPC  |     No      |     No      |
|----------------|---------|-------------|-------------|
|     16 BPC     |  6 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|     16 BPC     |  8 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|     16 BPC     | 10 BPC  |     No      |     Yes     |
|----------------|---------|-------------|-------------|
|     16 BPC     | 12 BPC  |     Yes     |     No      |
|----------------|---------|-------------|-------------|

Bhanuprakash Modem (2):
  tests/kms_dither: New IGT to validate crtc Dithering
  tests/kms_dither: Validate newly added dither after CC blocks

 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 335 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 337 insertions(+)
 create mode 100644 tests/kms_dither.c

-- 
2.20.1



More information about the Intel-gfx-trybot mailing list