| ------------------------------------------------------------------------- |
| drawElements Quality Program Test Specification |
| ----------------------------------------------- |
| |
| Copyright 2014 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ------------------------------------------------------------------------- |
| Integer operator tests |
| |
| Tests: |
| + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_int_* |
| + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_ivec_* |
| + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_uint_* |
| + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_uvec_* |
| + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_int_* |
| + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_ivec_* |
| + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_uint_* |
| + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_uvec_* |
| |
| Includes: |
| + Integer scalar and vector unary operators: |
| - plus |
| - minus |
| - bitwise not |
| + Integer scalar and vector binary operators: |
| - add |
| - sub |
| - mul |
| - div |
| - mod |
| - bitwise and |
| - bitwise or |
| - bitwise xor |
| - less |
| - less or equal |
| - greater |
| - greater or equal |
| - equal |
| - not equal |
| + Scalar-scalar, vector-vector and vector-scalar binary operators |
| + Lowp, mediump operands where behaviour is well-defined |
| + Highp operands |
| |
| Excludes: |
| + Integer type range and bitlayout verification |
| - Will be tested in later type range and storage tests |
| |
| Description: |
| |
| Integer test cases use shader rendering test framework. Depending on case type |
| (vertex or fragment) a single quad or a tight grid of quads is rendered with |
| the shader program that is being tested. Results are compared against a reference. |
| Reference image is rendered using a C reference of the shader. A fuzzy comparison |
| is used to allow small deviations due to fragment input interpolation. |
| |
| Integer operator test shaders use floating-point attributes or varyings converted |
| to integers as operands. The value range is chosen based on precision. Results |
| from the operation are casted back to floating-point values and scaled to range |
| 0..1. The resulting scalar or vector value is then written out as vertex or |
| fragment color. |