|  Results  SPECgpc  Download  Resources | 
    
    
        | 
 
  The
                            Graphics Performance Characterization Project
                            Group Rules Version
                    2.10 Last
                    Updated: 09/13/2007 
                
                     Overview   
                        Rules
                                            Inheritance                                         
                                All
                                            rules declared in "The
                                            Graphics and Workstation Performance
                                            Group (SPEC/GWPG): Rules For
                                            Project Groups" document
                                            (known hereinafter as the GWPG
                                            Project Groups Ruleset) shall
                                            apply, unless specifically overruled
                                            by a rule in this document.Rules
                                            declared in this document shall
                                            apply in addition to the rules
                                            declared in the GWPG Project
                                            Groups Ruleset.General
                                            Philosophy                                         
                                The
                                            Graphics Performance Characterization
                                            Project of SPEC/GWPG (henceforth
                                            abbreviated as SPECgpcSM)
                                            believes the user community will
                                            benefit from an objective series
                                            of tests, which can serve as
                                            common reference and be considered
                                            as part of an evaluation process.  The
                                            SPECgpc seeks to develop benchmarks
                                            for generating accurate graphics
                                            performance measures in an open,
                                            accessible and well-publicized
                                            manner.  The
                                            SPECgpc wishes to contribute
                                            to the coherence of the field
                                            of graphics performance measurement
                                            and evaluation so that vendors
                                            will be better able to present
                                            well-defined performance measures;
                                            and customers will be better
                                            able to compare and evaluate
                                            vendors' products and environments.  The
                                            SPECgpc will provide formal beta
                                            software to members and final
                                            software releases to the public
                                            in a timely fashion.  Hardware
                                            and software used to run the
                                            SPECgpc benchmarks must provide
                                            a suitable environment for running
                                            typical graphics programs.  SPECgpc
                                            reserves the right to adapt its
                                            benchmarks as it deems necessary
                                            to preserve its goal of fair
                                            and useful benchmarking (e.g.
                                            remove benchmark, modify benchmark
                                            code or data, etc). If a change
                                            is made to the suite, SPECgpc
                                            will notify the appropriate parties
                                            (i.e. SPECgpc members and users
                                            of the benchmark) and SPECgpc
                                            will re-designate the metrics
                                            (e.g. changing the metric from
                                            UGNX-01 composite to UGNX-02
                                            composite). In the case that
                                            a benchmark is removed in whole
                                            or in part, SPECgpc reserves
                                            the right to republish in summary
                                            form "adapted" results
                                            for previously published systems,
                                            converted to the new metric.
                                            In the case of other changes,
                                            such a republication may necessitate
                                            re-testing and may require support
                                            from the original test sponsor.  Overview
                                            of Optimizations                                         
                                SPECgpc
                                            is aware of the importance of
                                            optimizations in producing the
                                            best system performance. SPECgpc
                                            is also aware that it is sometimes
                                            hard to draw an exact line between
                                            legitimate optimizations that
                                            happen to benefit SPECgpc benchmarks
                                            and optimizations that specifically
                                            target SPECgpc benchmarks. However,
                                            with the list below, SPECgpc
                                            wants to increase awareness of
                                            implementers and end-users to
                                            issues of unwanted benchmark-specific
                                            optimizations that would be incompatible
                                            with SPECgpc's goal of fair benchmarking.  To
                                            ensure that results are relevant
                                            to end-users, SPECgpc expects
                                            that the hardware and software
                                            implementations used for running
                                            SPECgpc benchmarks adhere to
                                            a set of general rules for optimizations.  General
                                            Rules for Optimization                                         
                                Optimizations
                                            must generate correct images
                                            for a class of programs, where
                                            the class of programs must be
                                            larger than a single SPECgpc
                                            benchmark or SPECgpc benchmark
                                            suite. Correct images are those
                                            deemed by the majority of the
                                            SPECgpc electorate to be sufficiently
                                            adherent to the respective graphics
                                            API specification for the targeted
                                            end-user community (e.g. users
                                            of OpenGL on PDAs would have
                                            lower quality expectations than
                                            those using high-end workstations).  Optimizations
                                            must improve performance for
                                            a class of programs where the
                                            class of programs must be larger
                                            than a single SPECgpc benchmark
                                            or SPECgpc benchmark suite and
                                            applicable to at least one end
                                            user application. For any given
                                            optimization a system must generate
                                            correct images with and without
                                            said optimization. An optimization
                                            must not reduce system stability.  The
                                            vendor encourages the implementation
                                            for general use (not just for
                                            running a single SPECgpc benchmark
                                            or SPECgpc benchmark suite).
                                            As an indicator that the implementation
                                            is suitable for general use,
                                            graphics configurations submitted
                                            for the SPECgpc benchmark suite
                                            must be able to run the corresponding
                                            SPECapc application benchmarks
                                            if applicable.  The
                                            implementation is generally available,
                                            documented and supported by the
                                            providing vendor.  It
                                            is expected that vendors would
                                            endorse the general use of these
                                            optimizations by customers who
                                            seek to achieve good application
                                            performance.  No
                                            pre-computed (e.g. driver cached)
                                            images, geometric data, or graphics
                                            state may be substituted within
                                            an SPECgpc benchmark on the basis
                                            of detecting that said benchmark
                                            is running (e.g. pattern matching
                                            of command stream or recognition
                                            of benchmark's name).  Every
                                            OpenGL implementation in both
                                            immediate and display list mode
                                            must fully process every GL element
                                            presented to it that will impact
                                            the frame buffer and GL state.Differences
                                            to the frame buffer between immediate
                                            and display list modes must not
                                            exceed 0.01% of the number of
                                            pixels in the window.  In
                                            the case where it appears the
                                            guidelines in this document have
                                            not been followed, SPECgpc may
                                            investigate such a claim and
                                            request that the optimization
                                            in question (e.g. one using SPECgpc
                                            benchmark-specific pattern matching)
                                            be removed and the results resubmitted.
                                            Or, SPECgpc may request that
                                            the vendor correct the deficiency
                                            (e.g. make the optimization more
                                            general purpose or correct problems
                                            with image generation) before
                                            submitting results based on the
                                            optimization.   
 
                
                     Benchmarks   
                        Benchmark
                                            Acceptance                                         
                                Benchmark
                                            components are defined as                                     
                                        code
                                                sets (e.g. SPECviewperf®),  run
                                                    rules, scripts and associated
                                                data sets (e.g. viewsets).  New
                                            or modified benchmark components
                                            require a 2/3-majority vote of
                                            the SPECgpc electorate to be
                                            accepted for publication.  A
                                            minimum 3-week review period
                                            is required for new or significantly
                                            modified benchmark components.  At
                                            the end of the review period
                                            a vote will be called to approve
                                            the proposed changes.  An
                                            amendment to a benchmark component
                                            during the review period must
                                            be unanimously accepted. If not,
                                            the review period shall be restarted.  It
                                            is the option of any future SPECviewperf
                                            viewset author(s) to require
                                            passing of selected conformance
                                            tests prior to submission of
                                            results for that viewset.  Benchmark
                                            Code Versioning                                         
                                Benchmark
                                            code is defined as the set of
                                            source code required to build
                                            and run a benchmark executable
                                            (e.g. SPECviewperf).  SPECviewperf
                                            Benchmark code uses the following
                                            version coding: M.m.p (e.g. 8.0.1)
                                            M is the major release number,
                                            m is the minor release number
                                            and p is the patch level.                                     
                                        The
                                                    major release number
                                                    is only incremented when
                                                    large amounts of code
                                                    are changed and the scripting
                                                    language is dramatically
                                                    changed as a result --
                                                    backward compatibility
                                                    is highly unlikely when
                                                    moving scripts or data
                                                    sets between major releases
                                                    (e.g. running v2 scripts
                                                    on a v3 executable would
                                                almost certainly fail).  The
                                                    minor release number
                                                    is bumped if some small
                                                    set of code is replaced
                                                    or removed - but the
                                                    standard, unchanged scripts
                                                    and data sets, as a whole,
                                                    must run on the new version
                                                    (but perhaps with different
                                                performance).  Patch
                                                    releases can contain
                                                    additions of new properties
                                                    and additions of new
                                                    attributes to existing
                                                    properties, but cannot
                                                    change or remove any
                                                    existing properties,
                                                    attributes or functionality.
                                                    These are typically used
                                                    for bug fixes, small
                                                enhancements and so forth.  SPECviewperf
                                            Viewset Versioning                                         
                                The
                                            version of a SPECviewperf viewset
                                            should be incremented if:                                     
                                        changes
                                                    to SPECviewperf affect
                                                    the performance of the
                                                viewset,  or
                                                    changes to the viewset
                                                script affect performance,  or
                                                if the viewset data changes,  or
                                                    if rule changes affect
                                                the acceptance criteria.  New
                                            results for the previous version
                                            of a viewset will no longer be
                                            published. 
 
                
                     Benchmark
                                Run Rules   
                        Benchmark
                                            Run Rules                                         
                                The
                                            system under test must perform
                                            all of the respective graphics
                                            API's functionality requested
                                            by the benchmark with the exception
                                            that the system does not have
                                            to support dithering.  The
                                            systems under test must be OpenGL
                                            Conformant for the pixel format
                                            or visual used by the benchmark.  Settings
                                            for environment variables, registry
                                            variables and hints must not
                                            disable compliant behavior.  No
                                            interaction is allowed with the
                                            system under test during the
                                            benchmark, unless required by
                                            the benchmark.  The
                                            system under test can not skip
                                            frames during the benchmark run.  It
                                            is not permissible to change
                                            the system configuration during
                                            the running of a given benchmark.
                                            For example, one can not power
                                            off the system, make some changes,
                                            then power back on and run the
                                            rest of the benchmark.  Screen
                                            grabs for SPECviewperf will be
                                            full window size.  The
                                            color depth used must be at least
                                            24 bits (true color), with at
                                            least 8 bits of red, 8 bits of
                                            green and 8 bits of blue.  If
                                            a depth buffer is requested,
                                            it must have at least 16 bits
                                            of resolution.The
                                            display raster resolution must
                                            be at least 1280 pixels by 1024
                                            pixels.  The
                                            monitor refresh rate must be
                                            at least 75Hz. This requirement
                                            does not apply to digital flat
                                            panel displays.  The
                                            monitor must support the stated
                                            resolution and refresh rate and
                                            must fully display all of the
                                            benchmark tests being submitted.  Results
                                            to be made public must be run
                                            by official scripts that may
                                            not be changed, with the following
                                            exceptions (which must be documented
                                            if not the default):                                     
                                        In
                                                    SPECviewperf:                                             
                                                specific
                                                            selection of
                                                            visual/pixel
                                                            format on a per-test
                                                        basis  the
                                                            multithreading
                                                            flag (-th) on
                                                            approved multi-threading
                                                        viewsets  Visual/pixel
                                                    format required:                                             
                                                May
                                                            be selected on
                                                            a per-test basis
                                                            by submission
                                                            of the viewset
                                                        script.  If
                                                            RGB visual/pixel
                                                            format is requested,
                                                            it must have
                                                            at least eight
                                                            bits of red,
                                                            eight bits of
                                                            green and eight
                                                        bits of blue.  If
                                                            destination alpha
                                                            is requested,
                                                            it must have
                                                        at least 1 bit.  If
                                                            depth buffer
                                                            is requested,
                                                            it must have
                                                            at least 16 bits
                                                        of resolution.  Screen
                                            resolution must be large enough
                                            to run the individual tests at
                                            their requested window size,
                                            with no reduction or clipping
                                            of test window.  Tests
                                            may be run with or without a
                                            desktop/window manager, but must
                                            be run on some native windowing
                                            system.   
 
                
                     Submission
                                and Review Rules 
                        Submission
                                            Content Rules                                         
                                These
                                            rules are specific to SPECgpc
                                            and shall apply in addition to
                                            the Submission Content Rules
                                            in the GWPG Project Groups Ruleset.A
                                            SPECviewperf submission can be
                                            for one or more viewsets per
                                            configuration.  The
                                            SPECviewperf binary must be submitted
                                            if it is not one of the standard
                                            binaries.  The
                                            SPECviewperf submission upload
                                            file must have the structure
                                            defined in Figure 1:
                                     Figure
                                        1
                                     Submitters
                                            are not required to submit depth
                                            images with a submission. Submitters
                                            must retain depth images to be
                                            available upon request by any
                                            committee member during the review
                                            period. After the review period,
                                            submitters are not required to
                                            retain depth images.  Submission
                                            Process Rules                                         
                                These
                                            rules are specific to SPECgpc
                                            and shall apply in addition to
                                            the Submission Process Rules
                                            in the GWPG Project Groups Ruleset.The
                                            submission file names must contain
                                            gpc_v for SPECviewperf, contain
                                            all lower case letters and not
                                            contain '.' except prior to the
                                            zip or tar file extension (e.g.
                                            intel_gpc_v_jun99_v0.zip). The
                                            file version is denoted prior
                                            to the file extension. The initial
                                            file version is v0. Resubmitted
                                            files must increment the version
                                            number.Review
                                            Period Rules                                         
                                These
                                            rules are specific to SPECgpc
                                            and shall apply in addition to
                                            the Review Period Rules in the
                                            GWPG Project Groups Ruleset.Reviewers
                                            will decide if the image quality
                                            of the submission is sufficiently
                                            adherent to the respective graphics
                                            API's specification to satisfy
                                            the intended end user's expectations.
                                            If a reviewer rejects the quality
                                            of an image for a stated reason,
                                            the submitter can ask for a vote
                                            of the full SPECgpc electorate.
                                            In case of a tie the submission
                                            is rejected.  System
                                            configurations submitted for
                                            the SPECgpc benchmark suite must
                                            be able to run the corresponding
                                            SPECapc application benchmarks
                                            if applicable. If this criterion
                                            is not met the submission will
                                            be rejected.   
 |  
        | Adoption   
                 Changes for version 1.1 adopted June 10, 1999
 Changes for version 1.2 adopted January 12, 2000
 V1.4 changes -- 5.02 (d) added
 V1.5 changes -- 4.01.i.2(2), 4.01.i.2(4), 5.02.w
 V1.6 changes -- 1.03.c, 5.04.o - Adopted by the SPECopc
                    on January 23, 2003
 V1.17 Adopted by the SPECopc on August 13, 2004
 V1.18 Adopted by the SPECopc on October 21, 2004
 V1.19 Adopted by the SPECopc on April 19, 2005
 V1.20 Adopted by the SPECopc on October 20, 2005
 V2.00 Adopted by the SPECopc on January 26, 2006
 V2.10: Adopted on 13 September 2007 (reflects SPECopc->SPECgpc
                    name change and wider API charter scope)
 |  |