1 ------------------------------------------------------------------------- 2 drawElements Quality Program Test Specification 3 ----------------------------------------------- 4 5 Copyright 2014 The Android Open Source Project 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 ------------------------------------------------------------------------- 19 Integer operator tests 20 21 Tests: 22 + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_int_* 23 + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_ivec_* 24 + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_uint_* 25 + dEQP-GLES3.functional.shaders.operator.unary_operator.*.*_uvec_* 26 + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_int_* 27 + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_ivec_* 28 + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_uint_* 29 + dEQP-GLES3.functional.shaders.operator.binary_operator.*.*_uvec_* 30 31 Includes: 32 + Integer scalar and vector unary operators: 33 - plus 34 - minus 35 - bitwise not 36 + Integer scalar and vector binary operators: 37 - add 38 - sub 39 - mul 40 - div 41 - mod 42 - bitwise and 43 - bitwise or 44 - bitwise xor 45 - less 46 - less or equal 47 - greater 48 - greater or equal 49 - equal 50 - not equal 51 + Scalar-scalar, vector-vector and vector-scalar binary operators 52 + Lowp, mediump operands where behaviour is well-defined 53 + Highp operands 54 55 Excludes: 56 + Integer type range and bitlayout verification 57 - Will be tested in later type range and storage tests 58 59 Description: 60 61 Integer test cases use shader rendering test framework. Depending on case type 62 (vertex or fragment) a single quad or a tight grid of quads is rendered with 63 the shader program that is being tested. Results are compared against a reference. 64 Reference image is rendered using a C reference of the shader. A fuzzy comparison 65 is used to allow small deviations due to fragment input interpolation. 66 67 Integer operator test shaders use floating-point attributes or varyings converted 68 to integers as operands. The value range is chosen based on precision. Results 69 from the operation are casted back to floating-point values and scaled to range 70 0..1. The resulting scalar or vector value is then written out as vertex or 71 fragment color. 72