diff --git a/android/app/src/main/cpp/CMakeLists.txt b/android/app/src/main/cpp/CMakeLists.txt index b9658a55df..d7e918c9f8 100644 --- a/android/app/src/main/cpp/CMakeLists.txt +++ b/android/app/src/main/cpp/CMakeLists.txt @@ -78,6 +78,17 @@ FetchContent_Declare( ) FetchContent_MakeAvailable(tomlplusplus) +# --- nv2a_vsh_cpu --- +set(NV2A_VSH_CPU_GIT_REV "1115255708c10c4841b65dcd2223262e7a316598") +set(nv2a_vsh_cpu_UNIT_TEST OFF CACHE BOOL "" FORCE) +FetchContent_Declare( + nv2a_vsh_cpu + GIT_REPOSITORY "https://github.com/xemu-project/nv2a_vsh_cpu.git" + GIT_TAG "${NV2A_VSH_CPU_GIT_REV}" + GIT_SHALLOW FALSE +) +FetchContent_MakeAvailable(nv2a_vsh_cpu) + # --- libslirp --- set(LIBSLIRP_GIT_REV "26be815b86e8d49add8c9a8b320239b9594ff03d") FetchContent_Declare( @@ -716,7 +727,6 @@ list(APPEND XEMU_CORE_SOURCES "${REPO_ROOT}/ui/vnc-stubs.c" "${REPO_ROOT}/target/i386/kvm/hyperv-stub.c" "${CMAKE_CURRENT_LIST_DIR}/kvmclock_stub.c" - "${CMAKE_CURRENT_LIST_DIR}/nv2a_vsh_emulator_stub.c" "${CMAKE_CURRENT_LIST_DIR}/samplerate_stub.c" "${CMAKE_CURRENT_LIST_DIR}/fast_hash_stub.c" "${CMAKE_CURRENT_LIST_DIR}/libintl_stub.c" @@ -968,6 +978,7 @@ target_compile_options(xemu_core PRIVATE -g0 ) target_include_directories(xemu_core PRIVATE + "${nv2a_vsh_cpu_SOURCE_DIR}/src" "${REPO_ROOT}" "${REPO_ROOT}/include" "${REPO_ROOT}/ui" @@ -994,6 +1005,12 @@ target_include_directories(xemu_core PRIVATE add_dependencies(xemu_core glib_ep) +target_link_libraries(xemu_core PRIVATE + nv2a_vsh_emulator + nv2a_vsh_cpu + nv2a_vsh_disassembler +) + if(TARGET SDL2::SDL2) target_link_libraries(xemu_core PRIVATE SDL2::SDL2) endif() diff --git a/android/app/src/main/cpp/nv2a_vsh_emulator_stub.c b/android/app/src/main/cpp/nv2a_vsh_emulator_stub.c deleted file mode 100644 index 1afd2c8b30..0000000000 --- a/android/app/src/main/cpp/nv2a_vsh_emulator_stub.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "nv2a_vsh_emulator.h" - -Nv2aVshParseResult nv2a_vsh_parse_program(Nv2aVshProgram *program, - const uint32_t *code, - uint32_t code_length) -{ - (void)program; - (void)code; - (void)code_length; - return NV2AVPR_SUCCESS; -} - -void nv2a_vsh_program_destroy(Nv2aVshProgram *program) -{ - (void)program; -} - -Nv2aVshExecutionState nv2a_vsh_emu_initialize_xss_execution_state( - Nv2aVshCPUXVSSExecutionState *linkage, - float *constants) -{ - Nv2aVshExecutionState state; - state.linkage = linkage; - state.constants = constants; - return state; -} - -void nv2a_vsh_emu_execute_track_context_writes( - Nv2aVshExecutionState *state, - const Nv2aVshProgram *program, - bool *constants_dirty) -{ - (void)state; - (void)program; - (void)constants_dirty; -} diff --git a/include/nv2a_vsh_emulator.h b/include/nv2a_vsh_emulator.h deleted file mode 100644 index a29b53a7b3..0000000000 --- a/include/nv2a_vsh_emulator.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef NV2A_VSH_EMULATOR_H -#define NV2A_VSH_EMULATOR_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Nv2aVshProgram { - uint32_t placeholder; -} Nv2aVshProgram; - -typedef enum Nv2aVshParseResult { - NV2AVPR_SUCCESS = 0, - NV2AVPR_ERROR = 1, -} Nv2aVshParseResult; - -typedef struct Nv2aVshCPUXVSSExecutionState { - float input_regs[4]; -} Nv2aVshCPUXVSSExecutionState; - -typedef struct Nv2aVshExecutionState { - Nv2aVshCPUXVSSExecutionState *linkage; - float *constants; -} Nv2aVshExecutionState; - -Nv2aVshParseResult nv2a_vsh_parse_program(Nv2aVshProgram *program, - const uint32_t *code, - uint32_t code_length); - -void nv2a_vsh_program_destroy(Nv2aVshProgram *program); - -Nv2aVshExecutionState nv2a_vsh_emu_initialize_xss_execution_state( - Nv2aVshCPUXVSSExecutionState *linkage, - float *constants); - -void nv2a_vsh_emu_execute_track_context_writes( - Nv2aVshExecutionState *state, - const Nv2aVshProgram *program, - bool *constants_dirty); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/subprojects/nv2a_vsh_cpu.wrap b/subprojects/nv2a_vsh_cpu.wrap index 816847e673..d481d6d75d 100644 --- a/subprojects/nv2a_vsh_cpu.wrap +++ b/subprojects/nv2a_vsh_cpu.wrap @@ -1,4 +1,3 @@ [wrap-git] url=https://github.com/xemu-project/nv2a_vsh_cpu -revision=561fe80da57a881f89000256b459440c0178a7ce -depth=1 +revision=1115255708c10c4841b65dcd2223262e7a316598