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) 53 54include_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 106set(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 124set(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 176set(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 226if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4)) 227 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE") 228endif () 229 230PCH(DEQP_VK_SRCS pch.cpp) 231 232add_deqp_module(deqp-vk "${DEQP_VK_SRCS}" "${DEQP_VK_LIBS}" "tcutil-platform" vktTestPackageEntry.cpp ) 233 234add_deqp_module_skip_android(deqp-vksc "${DEQP_VK_SRCS}" "${DEQP_VKSC_LIBS}" "tcutil-sc-platform" vktTestPackageEntrySC.cpp) 235target_include_directories(deqp-vksc-package BEFORE PUBLIC ${CMAKE_SOURCE_DIR}/external/vulkancts/framework/vulkan/generated/vulkansc) 236if (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) 238endif () 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 255# Video parser used in vulkan video won't be part of android target 256if (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}) 258elseif(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}) 260endif() 261 262if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX) 263 add_executable(vk-build-programs vktBuildPrograms.cpp) 264 target_link_libraries(vk-build-programs deqp-vk${MODULE_LIB_TARGET_POSTFIX}) 265endif () 266