This uses the mailbox model to move pixel downloading to its own thread, eliminating Nvidia's warnings and (possibly) making use of GPU copy engine. To achieve this, we created a new mailbox type that is different from the presentation mailbox in that it never discards a rendered frame. Also, I tweaked the projection matrix thing so that it can just draw the frame upside down instead of having the CPU flip it.
104 lines
2.9 KiB
CMake
104 lines
2.9 KiB
CMake
add_library(video_core STATIC
|
|
command_processor.cpp
|
|
command_processor.h
|
|
debug_utils/debug_utils.cpp
|
|
debug_utils/debug_utils.h
|
|
geometry_pipeline.cpp
|
|
geometry_pipeline.h
|
|
gpu_debugger.h
|
|
pica.cpp
|
|
pica.h
|
|
pica_state.h
|
|
pica_types.h
|
|
primitive_assembly.cpp
|
|
primitive_assembly.h
|
|
rasterizer_interface.h
|
|
regs.cpp
|
|
regs.h
|
|
regs_framebuffer.h
|
|
regs_lighting.h
|
|
regs_pipeline.h
|
|
regs_rasterizer.h
|
|
regs_shader.h
|
|
regs_texturing.h
|
|
renderer_base.cpp
|
|
renderer_base.h
|
|
renderer_opengl/frame_dumper_opengl.cpp
|
|
renderer_opengl/frame_dumper_opengl.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_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_vars.cpp
|
|
renderer_opengl/gl_vars.h
|
|
renderer_opengl/pica_to_gl.h
|
|
renderer_opengl/post_processing_opengl.cpp
|
|
renderer_opengl/post_processing_opengl.h
|
|
renderer_opengl/renderer_opengl.cpp
|
|
renderer_opengl/renderer_opengl.h
|
|
shader/debug_data.h
|
|
shader/shader.cpp
|
|
shader/shader.h
|
|
shader/shader_interpreter.cpp
|
|
shader/shader_interpreter.h
|
|
swrasterizer/clipper.cpp
|
|
swrasterizer/clipper.h
|
|
swrasterizer/framebuffer.cpp
|
|
swrasterizer/framebuffer.h
|
|
swrasterizer/lighting.cpp
|
|
swrasterizer/lighting.h
|
|
swrasterizer/proctex.cpp
|
|
swrasterizer/proctex.h
|
|
swrasterizer/rasterizer.cpp
|
|
swrasterizer/rasterizer.h
|
|
swrasterizer/swrasterizer.cpp
|
|
swrasterizer/swrasterizer.h
|
|
swrasterizer/texturing.cpp
|
|
swrasterizer/texturing.h
|
|
texture/etc1.cpp
|
|
texture/etc1.h
|
|
texture/texture_decode.cpp
|
|
texture/texture_decode.h
|
|
utils.h
|
|
vertex_loader.cpp
|
|
vertex_loader.h
|
|
video_core.cpp
|
|
video_core.h
|
|
)
|
|
|
|
if(ARCHITECTURE_x86_64)
|
|
target_sources(video_core
|
|
PRIVATE
|
|
shader/shader_jit_x64.cpp
|
|
shader/shader_jit_x64_compiler.cpp
|
|
|
|
shader/shader_jit_x64.h
|
|
shader/shader_jit_x64_compiler.h
|
|
)
|
|
endif()
|
|
|
|
create_target_directory_groups(video_core)
|
|
|
|
target_link_libraries(video_core PUBLIC common core)
|
|
target_link_libraries(video_core PRIVATE glad nihstro-headers)
|
|
|
|
if (ARCHITECTURE_x86_64)
|
|
target_link_libraries(video_core PUBLIC xbyak)
|
|
endif()
|