# 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 glbench_reference_images.txt (for known good images)
and in 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.
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)
