mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-08-20 13:43:22 +02:00
This object's job is to contain an image and manage its transitions. Since Nvidia hardware doesn't know what a transition is but Vulkan requires them anyway, we have to state track image subresources individually. To avoid the overhead of tracking each subresource in images with many subresources (think of cubemap arrays with several mipmaps), this commit tracks when subresources have diverged. As long as this doesn't happen we can check the state of the first subresource (that will be shared with all subresources) and update accordingly. Image transitions are deferred to the scheduler command buffer.
196 lines
6.0 KiB
CMake
196 lines
6.0 KiB
CMake
add_library(video_core STATIC
|
|
buffer_cache/buffer_block.h
|
|
buffer_cache/buffer_cache.h
|
|
buffer_cache/map_interval.h
|
|
dma_pusher.cpp
|
|
dma_pusher.h
|
|
debug_utils/debug_utils.cpp
|
|
debug_utils/debug_utils.h
|
|
engines/const_buffer_engine_interface.h
|
|
engines/const_buffer_info.h
|
|
engines/engine_upload.cpp
|
|
engines/engine_upload.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
|
|
engines/shader_type.h
|
|
gpu.cpp
|
|
gpu.h
|
|
gpu_asynch.cpp
|
|
gpu_asynch.h
|
|
gpu_synch.cpp
|
|
gpu_synch.h
|
|
gpu_thread.cpp
|
|
gpu_thread.h
|
|
macro_interpreter.cpp
|
|
macro_interpreter.h
|
|
memory_manager.cpp
|
|
memory_manager.h
|
|
morton.cpp
|
|
morton.h
|
|
rasterizer_accelerated.cpp
|
|
rasterizer_accelerated.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_device.cpp
|
|
renderer_opengl/gl_device.h
|
|
renderer_opengl/gl_framebuffer_cache.cpp
|
|
renderer_opengl/gl_framebuffer_cache.h
|
|
renderer_opengl/gl_rasterizer.cpp
|
|
renderer_opengl/gl_rasterizer.h
|
|
renderer_opengl/gl_resource_manager.cpp
|
|
renderer_opengl/gl_resource_manager.h
|
|
renderer_opengl/gl_sampler_cache.cpp
|
|
renderer_opengl/gl_sampler_cache.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/gl_texture_cache.cpp
|
|
renderer_opengl/gl_texture_cache.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
|
|
sampler_cache.cpp
|
|
sampler_cache.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/texture.cpp
|
|
shader/decode/image.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/warp.cpp
|
|
shader/decode/xmad.cpp
|
|
shader/decode/other.cpp
|
|
shader/ast.cpp
|
|
shader/ast.h
|
|
shader/compiler_settings.cpp
|
|
shader/compiler_settings.h
|
|
shader/const_buffer_locker.cpp
|
|
shader/const_buffer_locker.h
|
|
shader/control_flow.cpp
|
|
shader/control_flow.h
|
|
shader/decode.cpp
|
|
shader/expr.cpp
|
|
shader/expr.h
|
|
shader/node_helper.cpp
|
|
shader/node_helper.h
|
|
shader/node.h
|
|
shader/shader_ir.cpp
|
|
shader/shader_ir.h
|
|
shader/track.cpp
|
|
surface.cpp
|
|
surface.h
|
|
texture_cache/format_lookup_table.cpp
|
|
texture_cache/format_lookup_table.h
|
|
texture_cache/surface_base.cpp
|
|
texture_cache/surface_base.h
|
|
texture_cache/surface_params.cpp
|
|
texture_cache/surface_params.h
|
|
texture_cache/surface_view.cpp
|
|
texture_cache/surface_view.h
|
|
texture_cache/texture_cache.h
|
|
textures/astc.cpp
|
|
textures/astc.h
|
|
textures/convert.cpp
|
|
textures/convert.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/fixed_pipeline_state.cpp
|
|
renderer_vulkan/fixed_pipeline_state.h
|
|
renderer_vulkan/maxwell_to_vk.cpp
|
|
renderer_vulkan/maxwell_to_vk.h
|
|
renderer_vulkan/vk_buffer_cache.cpp
|
|
renderer_vulkan/vk_buffer_cache.h
|
|
renderer_vulkan/vk_device.cpp
|
|
renderer_vulkan/vk_device.h
|
|
renderer_vulkan/vk_image.cpp
|
|
renderer_vulkan/vk_image.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_sampler_cache.cpp
|
|
renderer_vulkan/vk_sampler_cache.h
|
|
renderer_vulkan/vk_scheduler.cpp
|
|
renderer_vulkan/vk_scheduler.h
|
|
renderer_vulkan/vk_shader_decompiler.cpp
|
|
renderer_vulkan/vk_shader_decompiler.h
|
|
renderer_vulkan/vk_stream_buffer.cpp
|
|
renderer_vulkan/vk_stream_buffer.h
|
|
renderer_vulkan/vk_swapchain.cpp
|
|
renderer_vulkan/vk_swapchain.h)
|
|
|
|
target_include_directories(video_core PRIVATE sirit ../../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)
|
|
if (ENABLE_VULKAN)
|
|
target_link_libraries(video_core PRIVATE sirit)
|
|
endif()
|
|
|
|
if (MSVC)
|
|
target_compile_options(video_core PRIVATE /we4267)
|
|
else()
|
|
target_compile_options(video_core PRIVATE -Werror=conversion -Wno-error=sign-conversion)
|
|
endif()
|