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