Update reference images for fill tests

Due to ROUND_MODE being changed by mesa-amd v22.0

BUG=b:227280202
TEST=tast run <DUT_IP> graphics.GLBench
TEST=update_glbench_image_filelists.sh

Change-Id: Ifff41ffb6ddf9da866b73ecf4e620791d20a955d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/glbench/+/3578492
Tested-by: YIPENG CHEN <yipeng.chen@amd.corp-partner.google.com>
Reviewed-by: Louis Li <ching-shih.li@amd.corp-partner.google.com>
Reviewed-by: Ikshwaku Chauhan <ikshwaku.chauhan@amd.corp-partner.google.com>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Commit-Queue: YIPENG CHEN <yipeng.chen@amd.corp-partner.google.com>
5 files changed
tree: 1fc36eaadd56b727c0069c005b948117bdac8332
  1. ref_images/
  2. runtime/
  3. src/
  4. .gitignore
  5. glbench_fixedbad_images.txt
  6. glbench_knownbad_images.txt
  7. glbench_reference_images.txt
  8. Makefile
  9. OWNERS
  10. README.md
  11. update_glbench_image_filelists.sh
README.md

GLBench runs OpenGL or OpenGL ES microbenchmarks and writes performance numbers to stdout and resulting images to a directory for verification.

For the test to pass the performance numbers have to be better than a predefined threshold, while the resulting images have to be found in a repository of reference images. As the image name encodes the raw pixel MD5 this can be done as a simple file existence check. If we ever get too much pixel variation using a tool like perceptualdiff to waive small differences should be acceptable.

Build for Linux

It might be easier to develop new tests under Linux:

sudo apt-get install libgflags-dev
sudo apt-get install libwaffle-dev
sudo apt-get install waffle-utils (optional)
make

Executable Options

./glbench -notemp [-save [-outdir=<directory>]]

Example

./glbench -save -outdir=img
# board_id: NVIDIA Corporation - Quadro FX 380/PCI/SSE2
swap_swap                    =   214.77 us           [swap_swap.pixmd5-20dbc406b95e214a799a6a7f9c700d2f.png]
clear_color                  =  4448.28 mpixels_sec  [clear_color.pixmd5-e3609de1022a164fe240a562c69367de.png]
clear_depth                  = 10199.76 mpixels_sec  [clear_depth.pixmd5-e3609de1022a164fe240a562c69367de.png]
clear_colordepth             =  3250.57 mpixels_sec  [clear_colordepth.pixmd5-e3609de1022a164fe240a562c69367de.png]
clear_depthstencil           = 26447.22 mpixels_sec  [clear_depthstencil.pixmd5-e3609de1022a164fe240a562c69367de.png]
[...]

ls img
clear_color.pixmd5-e3609de122a164fe240a562c69367de.png
clear_colordepth.pixmd5-e3609de122a164fe240a562c69367de.png
clear_colordepthstencil.pixmd5-e3609de122a164fe240a562c69367de.png
compositing.pixmd5-7d02a16a7ac15cd6cbbc5c786f1.png
[...]

Running from the autotest harness

Running the autotest test_that $DUT graphics_GLBench will \

  1. run glbench -save \
  2. first try to identify known buggy images by searching in deps/glbench/glbench_knownbad_images.txt \
  3. then identify good images by searching in deps/glbench/glbench_reference_images.txt \
  4. TODO(ihf): use perceptualdiff to do a fuzzy compare \
  5. raise an error if the image is completely unknown \
  6. report performance numbers back to the harness \

Handling of reference images

Good reference images themselves are located at ./ref_images/glbench_reference_images/
Images that have outstanding defects and an open bug filed are at ./ref_images/glbench_knownbad_images/chromium-bug-NNNNN/
When that bug is closed the directory should be moved to ./ref_images/glbench_fixedbad_images/chromium-bug-NNNNN/ \

To push out new reference images place them in the appropriate directories (create a new bug if needed) and run ./update_glbench_image_filelists.sh to update the image filelists.