am 7d6b7aac: am a8f81cc2: Merge "Remove tessellation.user_defined_io.per_patch cases...
[platform/upstream/VK-GL-CTS.git] / scripts / opengl / gen_query_util.py
1 # -*- coding: utf-8 -*-
2
3 #-------------------------------------------------------------------------
4 # drawElements Quality Program utilities
5 # --------------------------------------
6 #
7 # Copyright 2015 The Android Open Source Project
8 #
9 # Licensed under the Apache License, Version 2.0 (the "License");
10 # you may not use this file except in compliance with the License.
11 # You may obtain a copy of the License at
12 #
13 #      http://www.apache.org/licenses/LICENSE-2.0
14 #
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS,
17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 # See the License for the specific language governing permissions and
19 # limitations under the License.
20 #
21 #-------------------------------------------------------------------------
22
23 from src_util import *
24 from khr_util.gen_str_util import genSetEnumUtilImpls, genQueryEnumUtilImpls
25
26 QUERY_NUM_OUT_ARGUMENTS = [
27
28         ("Basic", [
29                 ("VIEWPORT",                                            4),
30                 ("DEPTH_RANGE",                                         2),
31                 ("SCISSOR_BOX",                                         4),
32                 ("COLOR_WRITEMASK",                                     4),
33                 ("ALIASED_POINT_SIZE_RANGE",            2),
34                 ("ALIASED_LINE_WIDTH_RANGE",            2),
35                 ("MAX_VIEWPORT_DIMS",                           2),
36                 ("MAX_COMPUTE_WORK_GROUP_COUNT",        3),
37                 ("MAX_COMPUTE_WORK_GROUP_SIZE",         3),
38                 ("PRIMITIVE_BOUNDING_BOX_EXT",          8),
39                 ]),
40
41         ("Indexed", [
42                 ("COLOR_WRITEMASK",                             4),
43                 ]),
44
45         ("Attribute", [
46                 ("CURRENT_VERTEX_ATTRIB",               4),
47                 ]),
48
49         ("Program", [
50                 ("COMPUTE_WORK_GROUP_SIZE",             3),
51                 ]),
52
53         ("TextureParam", [
54                 ("TEXTURE_BORDER_COLOR",                4),
55                 ]),
56 ]
57
58 SET_NUM_IN_ARGUMENTS = [
59         ("TextureParam", [
60                 ("TEXTURE_BORDER_COLOR",                4),
61                 ]),
62 ]
63
64
65 def addNamePrefix (prefix, groups):
66         return [(groupName, [(prefix + queryName, querySize) for queryName, querySize in groupQueries]) for groupName, groupQueries in groups]
67
68 def genQueryUtil (iface):
69         queryNumOutArgs = addNamePrefix("GL_", QUERY_NUM_OUT_ARGUMENTS);
70         setNumInArgs    = addNamePrefix("GL_", SET_NUM_IN_ARGUMENTS);
71
72         utilFile = os.path.join(OPENGL_DIR, "gluQueryUtil.inl")
73         writeInlFile(utilFile, genQueryEnumUtilImpls(iface, queryNumOutArgs))
74
75         utilFile = os.path.join(OPENGL_DIR, "gluCallLogUtil.inl")
76         writeInlFile(utilFile, genSetEnumUtilImpls(iface, setNumInArgs))
77
78 if __name__ == "__main__":
79         genQueryUtil(getHybridInterface())