f546fb35ed
The scheduler abstracts command buffer and fence management with an interface that's able to do OpenGL-like operations on Vulkan command buffers. It returns by value a command buffer and fence that have to be used for subsequent operations until Flush or Finish is executed, after that the current execution context (the pair of command buffers and fences) gets invalidated a new one must be fetched. Thankfully validation layers will quickly detect if this is skipped throwing an error due to modifications to a sent command buffer.
124 lines
3.8 KiB
CMake
124 lines
3.8 KiB
CMake
add_library(video_core STATIC
|
|
dma_pusher.cpp
|
|
dma_pusher.h
|
|
debug_utils/debug_utils.cpp
|
|
debug_utils/debug_utils.h
|
|
engines/fermi_2d.cpp
|
|
engines/fermi_2d.h
|
|
engines/kepler_compute.cpp
|
|
engines/kepler_compute.h
|
|
engines/kepler_memory.cpp
|
|
engines/kepler_memory.h
|
|
engines/maxwell_3d.cpp
|
|
engines/maxwell_3d.h
|
|
engines/maxwell_dma.cpp
|
|
engines/maxwell_dma.h
|
|
engines/shader_bytecode.h
|
|
engines/shader_header.h
|
|
gpu.cpp
|
|
gpu.h
|
|
macro_interpreter.cpp
|
|
macro_interpreter.h
|
|
memory_manager.cpp
|
|
memory_manager.h
|
|
morton.cpp
|
|
morton.h
|
|
rasterizer_cache.cpp
|
|
rasterizer_cache.h
|
|
rasterizer_interface.h
|
|
renderer_base.cpp
|
|
renderer_base.h
|
|
renderer_opengl/gl_buffer_cache.cpp
|
|
renderer_opengl/gl_buffer_cache.h
|
|
renderer_opengl/gl_global_cache.cpp
|
|
renderer_opengl/gl_global_cache.h
|
|
renderer_opengl/gl_primitive_assembler.cpp
|
|
renderer_opengl/gl_primitive_assembler.h
|
|
renderer_opengl/gl_rasterizer.cpp
|
|
renderer_opengl/gl_rasterizer.h
|
|
renderer_opengl/gl_rasterizer_cache.cpp
|
|
renderer_opengl/gl_rasterizer_cache.h
|
|
renderer_opengl/gl_resource_manager.cpp
|
|
renderer_opengl/gl_resource_manager.h
|
|
renderer_opengl/gl_shader_cache.cpp
|
|
renderer_opengl/gl_shader_cache.h
|
|
renderer_opengl/gl_shader_decompiler.cpp
|
|
renderer_opengl/gl_shader_decompiler.h
|
|
renderer_opengl/gl_shader_disk_cache.cpp
|
|
renderer_opengl/gl_shader_disk_cache.h
|
|
renderer_opengl/gl_shader_gen.cpp
|
|
renderer_opengl/gl_shader_gen.h
|
|
renderer_opengl/gl_shader_manager.cpp
|
|
renderer_opengl/gl_shader_manager.h
|
|
renderer_opengl/gl_shader_util.cpp
|
|
renderer_opengl/gl_shader_util.h
|
|
renderer_opengl/gl_state.cpp
|
|
renderer_opengl/gl_state.h
|
|
renderer_opengl/gl_stream_buffer.cpp
|
|
renderer_opengl/gl_stream_buffer.h
|
|
renderer_opengl/maxwell_to_gl.h
|
|
renderer_opengl/renderer_opengl.cpp
|
|
renderer_opengl/renderer_opengl.h
|
|
renderer_opengl/utils.cpp
|
|
renderer_opengl/utils.h
|
|
shader/decode/arithmetic.cpp
|
|
shader/decode/arithmetic_immediate.cpp
|
|
shader/decode/bfe.cpp
|
|
shader/decode/bfi.cpp
|
|
shader/decode/shift.cpp
|
|
shader/decode/arithmetic_integer.cpp
|
|
shader/decode/arithmetic_integer_immediate.cpp
|
|
shader/decode/arithmetic_half.cpp
|
|
shader/decode/arithmetic_half_immediate.cpp
|
|
shader/decode/ffma.cpp
|
|
shader/decode/hfma2.cpp
|
|
shader/decode/conversion.cpp
|
|
shader/decode/memory.cpp
|
|
shader/decode/float_set_predicate.cpp
|
|
shader/decode/integer_set_predicate.cpp
|
|
shader/decode/half_set_predicate.cpp
|
|
shader/decode/predicate_set_register.cpp
|
|
shader/decode/predicate_set_predicate.cpp
|
|
shader/decode/register_set_predicate.cpp
|
|
shader/decode/float_set.cpp
|
|
shader/decode/integer_set.cpp
|
|
shader/decode/half_set.cpp
|
|
shader/decode/video.cpp
|
|
shader/decode/xmad.cpp
|
|
shader/decode/other.cpp
|
|
shader/decode.cpp
|
|
shader/shader_ir.cpp
|
|
shader/shader_ir.h
|
|
shader/track.cpp
|
|
surface.cpp
|
|
surface.h
|
|
textures/astc.cpp
|
|
textures/astc.h
|
|
textures/decoders.cpp
|
|
textures/decoders.h
|
|
textures/texture.h
|
|
video_core.cpp
|
|
video_core.h
|
|
)
|
|
|
|
if (ENABLE_VULKAN)
|
|
target_sources(video_core PRIVATE
|
|
renderer_vulkan/declarations.h
|
|
renderer_vulkan/vk_device.cpp
|
|
renderer_vulkan/vk_device.h
|
|
renderer_vulkan/vk_memory_manager.cpp
|
|
renderer_vulkan/vk_memory_manager.h
|
|
renderer_vulkan/vk_resource_manager.cpp
|
|
renderer_vulkan/vk_resource_manager.h
|
|
renderer_vulkan/vk_scheduler.cpp
|
|
renderer_vulkan/vk_scheduler.h)
|
|
|
|
target_include_directories(video_core PRIVATE ../../externals/Vulkan-Headers/include)
|
|
target_compile_definitions(video_core PRIVATE HAS_VULKAN)
|
|
endif()
|
|
|
|
create_target_directory_groups(video_core)
|
|
|
|
target_link_libraries(video_core PUBLIC common core)
|
|
target_link_libraries(video_core PRIVATE glad lz4_static)
|