# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

NAME = 'graphics_GLBench.bvt'
AUTHOR = 'chromeos-gfx'
PURPOSE = 'Benchmark the graphics library performance.'
CRITERIA = """
On bvt this test is not run as a benchmark. (One can find approximate
performance numbers in the logs though, but they are ignored.) It still
generates output images and verifies their bit accuracy using MD5 checksums
which are stored in
../../deps/glbench/glbench_reference_images.txt (for known good images)
and in ../../deps/glbench/glbench_knownbad_images.txt (for ignored failures -
this should be very rare though).

If unknown images are encountered the test fails. To resolve this use an
image diffing tool like Beyond Compare and visually check differences between
the unknown image and older versions in ../../deps/glbench-images/.
Note: it should nearly never be required to remove old versions of good/bad
images from these directories.
"""
# It is intentional that this suite is part of bvt-inline and bvt-perbuild
# suites to get more stability data. Do not change this.
ATTRIBUTES = "suite:bvt-inline, suite:bvt-perbuild, suite:graphics, suite:graphics_per-day, suite:graphics_system"
TIME='FAST'
TEST_CATEGORY = 'Performance'
TEST_CLASS = "gl"
TEST_TYPE = 'client'
JOB_RETRIES = 2
BUG_TEMPLATE = {
    'components': ['OS>Kernel>Graphics'],
}

DOC = """
On bvt we do not upload performance numbers to the chrome dashboard. We run
glbench with the "-hasty" option to stay well below the BVT limit of 20
minutes. This option will run each test at 512x512 resolution only, run it
only for a fraction of the loops we normally do, and not cool down the
machine between tests. For this PerfControl is disabled.

This benchmark executes glbench, a graphics benchmark designed to time how long
various graphic intensive activities take, which includes measuring:
  - fill rate
    - blended
    - opaque
  -Z reject rate
  -triangle rate
    - no cull
    - half cull (half triangles backface culled)
    - full cull (mix of back face and degenerates)
  - blend rate
  - texture fetch
    - nearest
    - bilinear
    - trilinear
  - compute
    - vertex shader
    - pixel shader
    - *fragement shader to test ddx and ddy
  - attribute fetch
  - color depth stencil test
  - *state change
  - texture upload
  - read back

* Not yet implemented.
"""

job.run_test('graphics_GLBench', hasty=True)
