-------------------------------------------------------------------------
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.