1------------------------------------------------------------------------- 2drawElements Quality Program Test Specification 3----------------------------------------------- 4 5Copyright 2014 The Android Open Source Project 6 7Licensed under the Apache License, Version 2.0 (the "License"); 8you may not use this file except in compliance with the License. 9You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13Unless required by applicable law or agreed to in writing, software 14distributed under the License is distributed on an "AS IS" BASIS, 15WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16See the License for the specific language governing permissions and 17limitations under the License. 18------------------------------------------------------------------------- 19 Matrix tests 20 21Tests: 22 + dEQP-GLES3.functional.shaders.matrix.* 23 + dEQP-GLES3.functional.shaders.conversions.scalar_to_matrix.* 24 + dEQP-GLES3.functional.shaders.conversions.matrix_to_matrix.* 25 + dEQP-GLES3.functional.shaders.conversions.matrix_combine.* 26 + dEQP-GLES3.functional.shaders.conversions.matrix_illegal.* 27 + dEQP-GLES3.functional.shaders.indexing.matrix_subscript.* 28 29Includes: 30 + matN and matNxM (rectangular) matrix types 31 + Matrix-Matrix and Matrix-Vector arithmetic 32 - Constant, uniform and shader in inputs 33 + Matrix constructors 34 - From scalar(s) 35 - From other matrices 36 - From mixed inputs 37 + Negative tests for illegal matrix constructor usage 38 + Matrix static and dynamic indexing 39 40Excludes: 41 + Matrices in uniform blocks 42 - Covered in separate UBO tests 43 44Description: 45 46Matrix arithmetic tests operate like other shader rendering tests. 47Input matrices and vectors are read from uniforms, shader inputs 48or constructed as constant values. Operation is performed in shader 49body and the final result is reduced to vec3 that is assigned to 50vertex or fragment color. Rendered image is compared against a 51reference image computed using same algorithm written in C. 52 53Matrix constructor and coversion tests compare results against 54pre-computed reference value in fragment shader. Fragment color 55is either white or black depending on whether the result were 56correct or not. 57 58Uniform buffer object tests are described in a separate test 59specification document. 60