CMakeLists.txt 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  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_interpreter.cpp
  31. macro/macro_interpreter.h
  32. macro/macro_jit_x64.cpp
  33. macro/macro_jit_x64.h
  34. fence_manager.h
  35. gpu.cpp
  36. gpu.h
  37. gpu_asynch.cpp
  38. gpu_asynch.h
  39. gpu_synch.cpp
  40. gpu_synch.h
  41. gpu_thread.cpp
  42. gpu_thread.h
  43. guest_driver.cpp
  44. guest_driver.h
  45. memory_manager.cpp
  46. memory_manager.h
  47. morton.cpp
  48. morton.h
  49. query_cache.h
  50. rasterizer_accelerated.cpp
  51. rasterizer_accelerated.h
  52. rasterizer_cache.cpp
  53. rasterizer_cache.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/decode/arithmetic.cpp
  99. shader/decode/arithmetic_immediate.cpp
  100. shader/decode/bfe.cpp
  101. shader/decode/bfi.cpp
  102. shader/decode/shift.cpp
  103. shader/decode/arithmetic_integer.cpp
  104. shader/decode/arithmetic_integer_immediate.cpp
  105. shader/decode/arithmetic_half.cpp
  106. shader/decode/arithmetic_half_immediate.cpp
  107. shader/decode/ffma.cpp
  108. shader/decode/hfma2.cpp
  109. shader/decode/conversion.cpp
  110. shader/decode/memory.cpp
  111. shader/decode/texture.cpp
  112. shader/decode/image.cpp
  113. shader/decode/float_set_predicate.cpp
  114. shader/decode/integer_set_predicate.cpp
  115. shader/decode/half_set_predicate.cpp
  116. shader/decode/predicate_set_register.cpp
  117. shader/decode/predicate_set_predicate.cpp
  118. shader/decode/register_set_predicate.cpp
  119. shader/decode/float_set.cpp
  120. shader/decode/integer_set.cpp
  121. shader/decode/half_set.cpp
  122. shader/decode/video.cpp
  123. shader/decode/warp.cpp
  124. shader/decode/xmad.cpp
  125. shader/decode/other.cpp
  126. shader/ast.cpp
  127. shader/ast.h
  128. shader/compiler_settings.cpp
  129. shader/compiler_settings.h
  130. shader/control_flow.cpp
  131. shader/control_flow.h
  132. shader/decode.cpp
  133. shader/expr.cpp
  134. shader/expr.h
  135. shader/memory_util.cpp
  136. shader/memory_util.h
  137. shader/node_helper.cpp
  138. shader/node_helper.h
  139. shader/node.h
  140. shader/registry.cpp
  141. shader/registry.h
  142. shader/shader_ir.cpp
  143. shader/shader_ir.h
  144. shader/track.cpp
  145. shader/transform_feedback.cpp
  146. shader/transform_feedback.h
  147. surface.cpp
  148. surface.h
  149. texture_cache/format_lookup_table.cpp
  150. texture_cache/format_lookup_table.h
  151. texture_cache/surface_base.cpp
  152. texture_cache/surface_base.h
  153. texture_cache/surface_params.cpp
  154. texture_cache/surface_params.h
  155. texture_cache/surface_view.cpp
  156. texture_cache/surface_view.h
  157. texture_cache/texture_cache.h
  158. textures/astc.cpp
  159. textures/astc.h
  160. textures/convert.cpp
  161. textures/convert.h
  162. textures/decoders.cpp
  163. textures/decoders.h
  164. textures/texture.cpp
  165. textures/texture.h
  166. video_core.cpp
  167. video_core.h
  168. )
  169. if (ENABLE_VULKAN)
  170. target_sources(video_core PRIVATE
  171. renderer_vulkan/fixed_pipeline_state.cpp
  172. renderer_vulkan/fixed_pipeline_state.h
  173. renderer_vulkan/maxwell_to_vk.cpp
  174. renderer_vulkan/maxwell_to_vk.h
  175. renderer_vulkan/nsight_aftermath_tracker.cpp
  176. renderer_vulkan/nsight_aftermath_tracker.h
  177. renderer_vulkan/renderer_vulkan.h
  178. renderer_vulkan/renderer_vulkan.cpp
  179. renderer_vulkan/vk_blit_screen.cpp
  180. renderer_vulkan/vk_blit_screen.h
  181. renderer_vulkan/vk_buffer_cache.cpp
  182. renderer_vulkan/vk_buffer_cache.h
  183. renderer_vulkan/vk_compute_pass.cpp
  184. renderer_vulkan/vk_compute_pass.h
  185. renderer_vulkan/vk_compute_pipeline.cpp
  186. renderer_vulkan/vk_compute_pipeline.h
  187. renderer_vulkan/vk_descriptor_pool.cpp
  188. renderer_vulkan/vk_descriptor_pool.h
  189. renderer_vulkan/vk_device.cpp
  190. renderer_vulkan/vk_device.h
  191. renderer_vulkan/vk_fence_manager.cpp
  192. renderer_vulkan/vk_fence_manager.h
  193. renderer_vulkan/vk_graphics_pipeline.cpp
  194. renderer_vulkan/vk_graphics_pipeline.h
  195. renderer_vulkan/vk_image.cpp
  196. renderer_vulkan/vk_image.h
  197. renderer_vulkan/vk_memory_manager.cpp
  198. renderer_vulkan/vk_memory_manager.h
  199. renderer_vulkan/vk_pipeline_cache.cpp
  200. renderer_vulkan/vk_pipeline_cache.h
  201. renderer_vulkan/vk_query_cache.cpp
  202. renderer_vulkan/vk_query_cache.h
  203. renderer_vulkan/vk_rasterizer.cpp
  204. renderer_vulkan/vk_rasterizer.h
  205. renderer_vulkan/vk_renderpass_cache.cpp
  206. renderer_vulkan/vk_renderpass_cache.h
  207. renderer_vulkan/vk_resource_manager.cpp
  208. renderer_vulkan/vk_resource_manager.h
  209. renderer_vulkan/vk_sampler_cache.cpp
  210. renderer_vulkan/vk_sampler_cache.h
  211. renderer_vulkan/vk_scheduler.cpp
  212. renderer_vulkan/vk_scheduler.h
  213. renderer_vulkan/vk_shader_decompiler.cpp
  214. renderer_vulkan/vk_shader_decompiler.h
  215. renderer_vulkan/vk_shader_util.cpp
  216. renderer_vulkan/vk_shader_util.h
  217. renderer_vulkan/vk_staging_buffer_pool.cpp
  218. renderer_vulkan/vk_staging_buffer_pool.h
  219. renderer_vulkan/vk_state_tracker.cpp
  220. renderer_vulkan/vk_state_tracker.h
  221. renderer_vulkan/vk_stream_buffer.cpp
  222. renderer_vulkan/vk_stream_buffer.h
  223. renderer_vulkan/vk_swapchain.cpp
  224. renderer_vulkan/vk_swapchain.h
  225. renderer_vulkan/vk_texture_cache.cpp
  226. renderer_vulkan/vk_texture_cache.h
  227. renderer_vulkan/vk_update_descriptor.cpp
  228. renderer_vulkan/vk_update_descriptor.h
  229. renderer_vulkan/wrapper.cpp
  230. renderer_vulkan/wrapper.h
  231. )
  232. endif()
  233. create_target_directory_groups(video_core)
  234. target_link_libraries(video_core PUBLIC common core)
  235. target_link_libraries(video_core PRIVATE glad xbyak)
  236. if (ENABLE_VULKAN)
  237. target_include_directories(video_core PRIVATE sirit ../../externals/Vulkan-Headers/include)
  238. target_compile_definitions(video_core PRIVATE HAS_VULKAN)
  239. target_link_libraries(video_core PRIVATE sirit)
  240. endif()
  241. if (ENABLE_NSIGHT_AFTERMATH)
  242. if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
  243. message(ERROR "Environment variable NSIGHT_AFTERMATH_SDK has to be provided")
  244. endif()
  245. if (NOT WIN32)
  246. message(ERROR "Nsight Aftermath doesn't support non-Windows platforms")
  247. endif()
  248. target_compile_definitions(video_core PRIVATE HAS_NSIGHT_AFTERMATH)
  249. target_include_directories(video_core PRIVATE "$ENV{NSIGHT_AFTERMATH_SDK}/include")
  250. endif()
  251. if (MSVC)
  252. target_compile_options(video_core PRIVATE /we4267)
  253. else()
  254. target_compile_options(video_core PRIVATE -Werror=conversion -Wno-error=sign-conversion)
  255. endif()