1# dEQP-VK
2
3set(DEQP_INL_DIR ${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan)
4
5add_subdirectory(api)
6add_subdirectory(pipeline)
7add_subdirectory(binding_model)
8add_subdirectory(spirv_assembly)
9add_subdirectory(shaderrender)
10add_subdirectory(shaderexecutor)
11add_subdirectory(memory)
12add_subdirectory(ubo)
13add_subdirectory(dynamic_state)
14add_subdirectory(ssbo)
15add_subdirectory(query_pool)
16add_subdirectory(conditional_rendering)
17add_subdirectory(draw)
18add_subdirectory(device_group)
19add_subdirectory(compute)
20add_subdirectory(image)
21add_subdirectory(wsi)
22add_subdirectory(sparse_resources)
23add_subdirectory(tessellation)
24add_subdirectory(rasterization)
25add_subdirectory(synchronization)
26add_subdirectory(clipping)
27add_subdirectory(fragment_ops)
28add_subdirectory(geometry)
29add_subdirectory(texture)
30add_subdirectory(robustness)
31add_subdirectory(renderpass)
32add_subdirectory(multiview)
33add_subdirectory(subgroups)
34add_subdirectory(ycbcr)
35add_subdirectory(protected_memory)
36add_subdirectory(memory_model)
37add_subdirectory(transform_feedback)
38add_subdirectory(util)
39add_subdirectory(amber)
40add_subdirectory(imageless_framebuffer)
41add_subdirectory(descriptor_indexing)
42add_subdirectory(fragment_shader_interlock)
43add_subdirectory(modifiers)
44add_subdirectory(ray_tracing)
45add_subdirectory(ray_query)
46add_subdirectory(postmortem)
47add_subdirectory(fragment_shading_rate)
48add_subdirectory(reconvergence)
49add_subdirectory(mesh_shader)
50add_subdirectory(fragment_shading_barycentric)
51add_subdirectory(sc)
52add_subdirectory(video)
53add_subdirectory(shader_object)
54
55include_directories(
56	api
57	pipeline
58	binding_model
59	spirv_assembly
60	shaderrender
61	shaderexecutor
62	memory
63	ubo
64	dynamic_state
65	ssbo
66	query_pool
67	conditional_rendering
68	draw
69	device_group
70	compute
71	image
72	wsi
73	sparse_resources
74	tessellation
75	rasterization
76	synchronization
77	clipping
78	fragment_ops
79	texture
80	geometry
81	robustness
82	renderpass
83	multiview
84	subgroups
85	ycbcr
86	protected_memory
87	memory_model
88	transform_feedback
89	util
90	amber
91	imageless_framebuffer
92	descriptor_indexing
93	fragment_shader_interlock
94	fragment_shading_rate
95	modifiers
96	ray_tracing
97	ray_query
98	postmortem
99	reconvergence
100	mesh_shader
101	fragment_shading_barycentric
102	video
103	${DEQP_INL_DIR}
104	sc
105	video
106	shader_object
107	)
108
109set(DEQP_VK_SRCS
110	vktTestCaseDefs.hpp
111	vktTestCase.cpp
112	vktTestCase.hpp
113	vktTestCaseUtil.cpp
114	vktTestCaseUtil.hpp
115	vktTestPackage.cpp
116	vktTestPackage.hpp
117	vktShaderLibrary.cpp
118	vktShaderLibrary.hpp
119	vktTestGroupUtil.cpp
120	vktTestGroupUtil.hpp
121	vktInfoTests.cpp
122	vktInfoTests.hpp
123	vktCustomInstancesDevices.cpp
124	vktCustomInstancesDevices.hpp
125	)
126
127set(DEQP_VK_LIBS
128	tcutil
129	vkutil
130	glutil
131	deqp-vk-api
132	deqp-vk-pipeline
133	deqp-vk-binding-model
134	deqp-vk-spirv-assembly
135	deqp-vk-shaderrender
136	deqp-vk-shaderexecutor
137	deqp-vk-memory
138	deqp-vk-ubo
139	deqp-vk-dynamic-state
140	deqp-vk-ssbo
141	deqp-vk-query-pool
142	deqp-vk-conditional-rendering
143	deqp-vk-draw
144	deqp-vk-device-group
145	deqp-vk-compute
146	deqp-vk-image
147	deqp-vk-wsi
148	deqp-vk-sparse-resources
149	deqp-vk-tessellation
150	deqp-vk-rasterization
151	deqp-vk-synchronization
152	deqp-vk-clipping
153	deqp-vk-fragment-ops
154	deqp-vk-texture
155	deqp-vk-geometry
156	deqp-vk-robustness
157	deqp-vk-render-pass
158	deqp-vk-multiview
159	deqp-vk-subgroups
160	deqp-vk-ycbcr
161	deqp-vk-protected-memory
162	deqp-vk-memory-model
163	deqp-vk-amber
164	deqp-vk-imageless-framebuffer
165	deqp-vk-transform-feedback
166	deqp-vk-descriptor-indexing
167	deqp-vk-fragment-shader-interlock
168	deqp-vk-modifiers
169	deqp-vk-ray-tracing
170	deqp-vk-ray-query
171	deqp-vk-postmortem
172	deqp-vk-fragment-shading-rate
173	deqp-vk-reconvergence
174	deqp-vk-mesh-shader
175	deqp-vk-fragment-shading-barycentric
176	deqp-vk-video
177	deqp-vk-shader-object
178	)
179
180set(DEQP_VKSC_LIBS
181	tcutil
182	vkscutil
183	glutil
184	deqp-vksc-api
185	deqp-vksc-pipeline
186	deqp-vksc-binding-model
187	deqp-vksc-spirv-assembly
188	deqp-vksc-shaderrender
189	deqp-vksc-shaderexecutor
190	deqp-vksc-memory
191	deqp-vksc-ubo
192	deqp-vksc-dynamic-state
193	deqp-vksc-ssbo
194	deqp-vksc-query-pool
195#x	deqp-vksc-conditional-rendering
196	deqp-vksc-draw
197	deqp-vksc-device-group
198	deqp-vksc-compute
199	deqp-vksc-image
200#x	deqp-vksc-wsi
201#x	deqp-vksc-sparse-resources
202	deqp-vksc-tessellation
203	deqp-vksc-rasterization
204	deqp-vksc-synchronization
205	deqp-vksc-clipping
206	deqp-vksc-fragment-ops
207	deqp-vksc-texture
208	deqp-vksc-geometry
209	deqp-vksc-robustness
210	deqp-vksc-render-pass
211	deqp-vksc-multiview
212	deqp-vksc-subgroups
213	deqp-vksc-ycbcr
214	deqp-vksc-protected-memory
215	deqp-vksc-memory-model
216#x	deqp-vksc-amber
217	deqp-vksc-imageless-framebuffer
218#x	deqp-vksc-transform-feedback
219	deqp-vksc-descriptor-indexing
220	deqp-vksc-fragment-shader-interlock
221#x	deqp-vksc-modifiers
222#x	deqp-vksc-ray-tracing
223#x	deqp-vksc-ray-query
224#x	deqp-vksc-postmortem
225	deqp-vksc-fragment-shading-rate
226	deqp-vksc-sc
227	)
228
229
230if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4))
231	set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
232endif ()
233
234PCH(DEQP_VK_SRCS pch.cpp)
235
236add_deqp_module(deqp-vk "${DEQP_VK_SRCS}" "${DEQP_VK_LIBS}" "tcutil-platform" vktTestPackageEntry.cpp )
237
238add_deqp_module_skip_android(deqp-vksc "${DEQP_VK_SRCS}" "${DEQP_VKSC_LIBS}" "tcutil-sc-platform" vktTestPackageEntrySC.cpp)
239
240add_data_dir(deqp-vk ../../data/vulkan vulkan)
241add_data_dir(deqp-vk ../../mustpass/main/vk-default vk-default)
242
243# add all directories containing android mustpass
244file(GLOB PATHS_MATCHING_PATTERN ${CMAKE_SOURCE_DIR}/android/cts/master/vk-*/)
245FOREACH(FOUND_PATH ${PATHS_MATCHING_PATTERN})
246	IF(IS_DIRECTORY ${FOUND_PATH})
247		SET(LAST_DIRECTORY "")
248		file(RELATIVE_PATH LAST_DIRECTORY ${CMAKE_SOURCE_DIR}/android/cts/master ${FOUND_PATH})
249		add_data_dir(deqp-vk ../../../../android/cts/master/${LAST_DIRECTORY} ${LAST_DIRECTORY})
250	ENDIF()
251ENDFOREACH()
252
253set(BINARY_COPY_DIR "./")
254
255if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)
256	add_executable(vk-build-programs vktBuildPrograms.cpp)
257	target_link_libraries(vk-build-programs deqp-vk${MODULE_LIB_TARGET_POSTFIX})
258endif ()
259
260if(DE_OS_IS_ANDROID)
261	add_definitions(-DDEQP_EXCLUDE_VK_VIDEO_TESTS)
262endif()