am f1044096: am 79c79d54: Merge "Remove broken line interpolation tests from must...
[platform/upstream/VK-GL-CTS.git] / doc / testspecs / GLES3 / functional.vertex_arrays.single_attribute.txt
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         Single vertex attribute vertex array tests
20
21 Tests:
22  + dEQP-GLES3.functional.vertex_arrays.single_attribute.*
23
24 Includes:
25  + Rendering with different strides from buffer and user pointer.
26  + Attribute normalization with different types and component counts.
27  + Passing attributes to vec{N}, ivec{N} and uvec{N} (1 < n < 5).
28  + Passing integer types to float types.
29  + Passing ingerer types to intgeger types.
30  + Using buffers with different usage.
31  + Buffer attributes with different offsets.
32  + Different first values for glDrawArrays
33
34 Excludes:
35  + Buffer data modifications
36  + Stride less than types own size
37  + Robustness with nan or inf
38  + Index buffers or glDrawElements
39  + Exact precision of attributes as input is clamped to very few bits of output.
40
41 Description:
42
43 Testcases generate data that defines quads in testcase specifig format.
44 This takes account stride, offsets and other parameters. Input types must
45 have two or more components to form distinct coordinates. First two components
46 are coordinates and six subsequent attributes form two triangles which define a
47 quad. Third and fourth component are same for each vertex in quad.
48 This data is uploaded to buffer or used from user pointer while rendering.
49 Rendering uses simple shader that takes first two components and adds
50 first to third component and second to fourth component if more than
51 two components are used. First and third component are used as x coordinate
52 and second and fourth as y. These values are also scaled to range from -1.0 to 1.0.
53 Test renders only once and result is checked against reference implementations result.
54
55 Stride tests render different input type and component count combinations from buffer
56 and user pointer. Stride testcases test npot and pot strides and types real size as stride.
57 Data is passed to shader as vec4.
58
59 Normalization is tested with different input types and component counts. User
60 pointers are used as source for data and vec4 is used in shaders.
61
62 Output type tests pass different input types to different vector types in shader.
63 Also different input type and output type component counts are tested. Data is used
64 from user pointer.
65
66 Usage testcases test buffers with different usage parameters with different strides
67 and different sized types. The data is used as vec2 in shaders.