fuchsia / third_party / vulkan-cts / 30e25b62d60b36b923d19a0c0759ef6cb7201f9e / . / doc / testspecs / GLES3 / functional.shaders.int_op.txt

------------------------------------------------------------------------- | |

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