CMakeLists.txt 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. add_library(video_core STATIC
  2. buffer_cache/buffer_block.h
  3. buffer_cache/buffer_cache.h
  4. buffer_cache/map_interval.cpp
  5. buffer_cache/map_interval.h
  6. dirty_flags.cpp
  7. dirty_flags.h
  8. dma_pusher.cpp
  9. dma_pusher.h
  10. engines/const_buffer_engine_interface.h
  11. engines/const_buffer_info.h
  12. engines/engine_interface.h
  13. engines/engine_upload.cpp
  14. engines/engine_upload.h
  15. engines/fermi_2d.cpp
  16. engines/fermi_2d.h
  17. engines/kepler_compute.cpp
  18. engines/kepler_compute.h
  19. engines/kepler_memory.cpp
  20. engines/kepler_memory.h
  21. engines/maxwell_3d.cpp
  22. engines/maxwell_3d.h
  23. engines/maxwell_dma.cpp
  24. engines/maxwell_dma.h
  25. engines/shader_bytecode.h
  26. engines/shader_header.h
  27. engines/shader_type.h
  28. macro/macro.cpp
  29. macro/macro.h
  30. macro/macro_hle.cpp
  31. macro/macro_hle.h
  32. macro/macro_interpreter.cpp
  33. macro/macro_interpreter.h
  34. macro/macro_jit_x64.cpp
  35. macro/macro_jit_x64.h
  36. fence_manager.h
  37. gpu.cpp
  38. gpu.h
  39. gpu_asynch.cpp
  40. gpu_asynch.h
  41. gpu_synch.cpp
  42. gpu_synch.h
  43. gpu_thread.cpp
  44. gpu_thread.h
  45. guest_driver.cpp
  46. guest_driver.h
  47. memory_manager.cpp
  48. memory_manager.h
  49. morton.cpp
  50. morton.h
  51. query_cache.h
  52. rasterizer_accelerated.cpp
  53. rasterizer_accelerated.h
  54. rasterizer_interface.h
  55. renderer_base.cpp
  56. renderer_base.h
  57. renderer_opengl/gl_arb_decompiler.cpp
  58. renderer_opengl/gl_arb_decompiler.h
  59. renderer_opengl/gl_buffer_cache.cpp
  60. renderer_opengl/gl_buffer_cache.h
  61. renderer_opengl/gl_device.cpp
  62. renderer_opengl/gl_device.h
  63. renderer_opengl/gl_fence_manager.cpp
  64. renderer_opengl/gl_fence_manager.h
  65. renderer_opengl/gl_framebuffer_cache.cpp
  66. renderer_opengl/gl_framebuffer_cache.h
  67. renderer_opengl/gl_rasterizer.cpp
  68. renderer_opengl/gl_rasterizer.h
  69. renderer_opengl/gl_resource_manager.cpp
  70. renderer_opengl/gl_resource_manager.h
  71. renderer_opengl/gl_sampler_cache.cpp
  72. renderer_opengl/gl_sampler_cache.h
  73. renderer_opengl/gl_shader_cache.cpp
  74. renderer_opengl/gl_shader_cache.h
  75. renderer_opengl/gl_shader_decompiler.cpp
  76. renderer_opengl/gl_shader_decompiler.h
  77. renderer_opengl/gl_shader_disk_cache.cpp
  78. renderer_opengl/gl_shader_disk_cache.h
  79. renderer_opengl/gl_shader_manager.cpp
  80. renderer_opengl/gl_shader_manager.h
  81. renderer_opengl/gl_shader_util.cpp
  82. renderer_opengl/gl_shader_util.h
  83. renderer_opengl/gl_state_tracker.cpp
  84. renderer_opengl/gl_state_tracker.h
  85. renderer_opengl/gl_stream_buffer.cpp
  86. renderer_opengl/gl_stream_buffer.h
  87. renderer_opengl/gl_texture_cache.cpp
  88. renderer_opengl/gl_texture_cache.h
  89. renderer_opengl/gl_query_cache.cpp
  90. renderer_opengl/gl_query_cache.h
  91. renderer_opengl/maxwell_to_gl.h
  92. renderer_opengl/renderer_opengl.cpp
  93. renderer_opengl/renderer_opengl.h
  94. renderer_opengl/utils.cpp
  95. renderer_opengl/utils.h
  96. sampler_cache.cpp
  97. sampler_cache.h
  98. shader_cache.h
  99. shader/decode/arithmetic.cpp
  100. shader/decode/arithmetic_immediate.cpp
  101. shader/decode/bfe.cpp
  102. shader/decode/bfi.cpp
  103. shader/decode/shift.cpp
  104. shader/decode/arithmetic_integer.cpp
  105. shader/decode/arithmetic_integer_immediate.cpp
  106. shader/decode/arithmetic_half.cpp
  107. shader/decode/arithmetic_half_immediate.cpp
  108. shader/decode/ffma.cpp
  109. shader/decode/hfma2.cpp
  110. shader/decode/conversion.cpp
  111. shader/decode/memory.cpp
  112. shader/decode/texture.cpp
  113. shader/decode/image.cpp
  114. shader/decode/float_set_predicate.cpp
  115. shader/decode/integer_set_predicate.cpp
  116. shader/decode/half_set_predicate.cpp
  117. shader/decode/predicate_set_register.cpp
  118. shader/decode/predicate_set_predicate.cpp
  119. shader/decode/register_set_predicate.cpp
  120. shader/decode/float_set.cpp
  121. shader/decode/integer_set.cpp
  122. shader/decode/half_set.cpp
  123. shader/decode/video.cpp
  124. shader/decode/warp.cpp
  125. shader/decode/xmad.cpp
  126. shader/decode/other.cpp
  127. shader/ast.cpp
  128. shader/ast.h
  129. shader/compiler_settings.cpp
  130. shader/compiler_settings.h
  131. shader/control_flow.cpp
  132. shader/control_flow.h
  133. shader/decode.cpp
  134. shader/expr.cpp
  135. shader/expr.h
  136. shader/memory_util.cpp
  137. shader/memory_util.h
  138. shader/node_helper.cpp
  139. shader/node_helper.h
  140. shader/node.h
  141. shader/registry.cpp
  142. shader/registry.h
  143. shader/shader_ir.cpp
  144. shader/shader_ir.h
  145. shader/track.cpp
  146. shader/transform_feedback.cpp
  147. shader/transform_feedback.h
  148. surface.cpp
  149. surface.h
  150. texture_cache/format_lookup_table.cpp
  151. texture_cache/format_lookup_table.h
  152. texture_cache/surface_base.cpp
  153. texture_cache/surface_base.h
  154. texture_cache/surface_params.cpp
  155. texture_cache/surface_params.h
  156. texture_cache/surface_view.cpp
  157. texture_cache/surface_view.h
  158. texture_cache/texture_cache.h
  159. textures/astc.cpp
  160. textures/astc.h
  161. textures/convert.cpp
  162. textures/convert.h
  163. textures/decoders.cpp
  164. textures/decoders.h
  165. textures/texture.cpp
  166. textures/texture.h
  167. video_core.cpp
  168. video_core.h
  169. )
  170. if (ENABLE_VULKAN)
  171. target_sources(video_core PRIVATE
  172. renderer_vulkan/fixed_pipeline_state.cpp
  173. renderer_vulkan/fixed_pipeline_state.h
  174. renderer_vulkan/maxwell_to_vk.cpp
  175. renderer_vulkan/maxwell_to_vk.h
  176. renderer_vulkan/nsight_aftermath_tracker.cpp
  177. renderer_vulkan/nsight_aftermath_tracker.h
  178. renderer_vulkan/renderer_vulkan.h
  179. renderer_vulkan/renderer_vulkan.cpp
  180. renderer_vulkan/vk_blit_screen.cpp
  181. renderer_vulkan/vk_blit_screen.h
  182. renderer_vulkan/vk_buffer_cache.cpp
  183. renderer_vulkan/vk_buffer_cache.h
  184. renderer_vulkan/vk_compute_pass.cpp
  185. renderer_vulkan/vk_compute_pass.h
  186. renderer_vulkan/vk_compute_pipeline.cpp
  187. renderer_vulkan/vk_compute_pipeline.h
  188. renderer_vulkan/vk_descriptor_pool.cpp
  189. renderer_vulkan/vk_descriptor_pool.h
  190. renderer_vulkan/vk_device.cpp
  191. renderer_vulkan/vk_device.h
  192. renderer_vulkan/vk_fence_manager.cpp
  193. renderer_vulkan/vk_fence_manager.h
  194. renderer_vulkan/vk_graphics_pipeline.cpp
  195. renderer_vulkan/vk_graphics_pipeline.h
  196. renderer_vulkan/vk_image.cpp
  197. renderer_vulkan/vk_image.h
  198. renderer_vulkan/vk_memory_manager.cpp
  199. renderer_vulkan/vk_memory_manager.h
  200. renderer_vulkan/vk_pipeline_cache.cpp
  201. renderer_vulkan/vk_pipeline_cache.h
  202. renderer_vulkan/vk_query_cache.cpp
  203. renderer_vulkan/vk_query_cache.h
  204. renderer_vulkan/vk_rasterizer.cpp
  205. renderer_vulkan/vk_rasterizer.h
  206. renderer_vulkan/vk_renderpass_cache.cpp
  207. renderer_vulkan/vk_renderpass_cache.h
  208. renderer_vulkan/vk_resource_manager.cpp
  209. renderer_vulkan/vk_resource_manager.h
  210. renderer_vulkan/vk_sampler_cache.cpp
  211. renderer_vulkan/vk_sampler_cache.h
  212. renderer_vulkan/vk_scheduler.cpp
  213. renderer_vulkan/vk_scheduler.h
  214. renderer_vulkan/vk_shader_decompiler.cpp
  215. renderer_vulkan/vk_shader_decompiler.h
  216. renderer_vulkan/vk_shader_util.cpp
  217. renderer_vulkan/vk_shader_util.h
  218. renderer_vulkan/vk_staging_buffer_pool.cpp
  219. renderer_vulkan/vk_staging_buffer_pool.h
  220. renderer_vulkan/vk_state_tracker.cpp
  221. renderer_vulkan/vk_state_tracker.h
  222. renderer_vulkan/vk_stream_buffer.cpp
  223. renderer_vulkan/vk_stream_buffer.h
  224. renderer_vulkan/vk_swapchain.cpp
  225. renderer_vulkan/vk_swapchain.h
  226. renderer_vulkan/vk_texture_cache.cpp
  227. renderer_vulkan/vk_texture_cache.h
  228. renderer_vulkan/vk_update_descriptor.cpp
  229. renderer_vulkan/vk_update_descriptor.h
  230. renderer_vulkan/wrapper.cpp
  231. renderer_vulkan/wrapper.h
  232. )
  233. endif()
  234. create_target_directory_groups(video_core)
  235. target_link_libraries(video_core PUBLIC common core)
  236. target_link_libraries(video_core PRIVATE glad xbyak)
  237. if (ENABLE_VULKAN)
  238. target_include_directories(video_core PRIVATE sirit ../../externals/Vulkan-Headers/include)
  239. target_compile_definitions(video_core PRIVATE HAS_VULKAN)
  240. target_link_libraries(video_core PRIVATE sirit)
  241. endif()
  242. if (ENABLE_NSIGHT_AFTERMATH)
  243. if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
  244. message(ERROR "Environment variable NSIGHT_AFTERMATH_SDK has to be provided")
  245. endif()
  246. if (NOT WIN32)
  247. message(ERROR "Nsight Aftermath doesn't support non-Windows platforms")
  248. endif()
  249. target_compile_definitions(video_core PRIVATE HAS_NSIGHT_AFTERMATH)
  250. target_include_directories(video_core PRIVATE "$ENV{NSIGHT_AFTERMATH_SDK}/include")
  251. endif()
  252. if (MSVC)
  253. target_compile_options(video_core PRIVATE /we4267)
  254. else()
  255. target_compile_options(video_core PRIVATE -Werror=conversion -Wno-error=sign-conversion)
  256. endif()