66 lines
2.8 KiB
Text
66 lines
2.8 KiB
Text
GLBench runs a bunch of OpenGL or OpenGL ES performance tests 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.
|
|
|
|
|
|
Executable options
|
|
==================
|
|
|
|
./glbench [-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
|
|
=================================
|
|
|
|
The autotest script graphics_GLBench.py will
|
|
0) run glbench -save
|
|
1) first try to identify known buggy images by searching in
|
|
deps/glbench/glbench_knownbad_images.txt
|
|
2) then identify good images by searching in
|
|
deps/glbench/glbench_reference_images.txt
|
|
3) if it is unable to find the test image it will do a second lookup at
|
|
http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/glbench_*
|
|
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 ../glbench-images/glbench_reference_images/
|
|
Images that have outstanding defects and an open bug filed are at ../glbench-images/glbench_knownbad_images/chromium-bug-NNNNN/
|
|
When that bug is closed the directory should be moved to ../glbench-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 in deps/glbench/glbench_reference_images.txt etc.
|