diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5b426d..e9481b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,6 +42,11 @@ jobs: version: ${{ matrix.target }}-1.0 - name: Build run: | + sudo fallocate -l 4G /swapfile2 + sudo chmod 600 /swapfile2 + sudo mkswap /swapfile2 + sudo swapon /swapfile2 + free -h cargo build --release -v --target=${{ matrix.target }} - name: Upload file uses: actions/upload-artifact@v4 diff --git a/build.rs b/build.rs index a717c62..807dcd3 100644 --- a/build.rs +++ b/build.rs @@ -98,7 +98,6 @@ fn main() { .allowlist_function("rdp_close") .allowlist_function("rdp_set_vi_register") .allowlist_function("rdp_update_screen") - .allowlist_function("rdp_full_sync") .allowlist_function("rdp_process_commands") .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) .generate() diff --git a/parallel-rdp/interface.cpp b/parallel-rdp/interface.cpp index 5f8707d..8be5c43 100644 --- a/parallel-rdp/interface.cpp +++ b/parallel-rdp/interface.cpp @@ -62,7 +62,6 @@ static int cmd_cur; static int cmd_ptr; static bool emu_running; static GFX_INFO gfx_info; -static uint64_t sync_signal; static const unsigned cmd_len_lut[64] = { 1, @@ -432,7 +431,7 @@ uint64_t rdp_process_commands() if (RDP::Op(command) == RDP::Op::SyncFull) { - sync_signal = processor->signal_timeline(); + processor->wait_for_timeline(processor->signal_timeline()); uint32_t width = viCalculateHorizonalWidth(*gfx_info.VI_H_START_REG, *gfx_info.VI_X_SCALE_REG, *gfx_info.VI_WIDTH_REG); if (width == 0) @@ -456,8 +455,3 @@ uint64_t rdp_process_commands() return interrupt_timer; } - -void rdp_full_sync() -{ - processor->wait_for_timeline(sync_signal); -} diff --git a/parallel-rdp/interface.hpp b/parallel-rdp/interface.hpp index 67075e8..b53268e 100644 --- a/parallel-rdp/interface.hpp +++ b/parallel-rdp/interface.hpp @@ -28,7 +28,6 @@ extern "C" void rdp_set_vi_register(uint32_t reg, uint32_t value); bool rdp_update_screen(); uint64_t rdp_process_commands(); - void rdp_full_sync(); #ifdef __cplusplus } diff --git a/src/device/rdp.rs b/src/device/rdp.rs index 5d46e61..f9c2e21 100644 --- a/src/device/rdp.rs +++ b/src/device/rdp.rs @@ -186,7 +186,5 @@ pub fn init(device: &mut device::Device) { fn rdp_interrupt_event(device: &mut device::Device) { device.rdp.regs_dpc[DPC_STATUS_REG as usize] &= !(DPC_STATUS_START_GCLK | DPC_STATUS_PIPE_BUSY); - ui::video::full_sync(); - device::mi::set_rcp_interrupt(device, device::mi::MI_INTR_DP) } diff --git a/src/ui/video.rs b/src/ui/video.rs index ff38bf8..dfa52e5 100644 --- a/src/ui/video.rs +++ b/src/ui/video.rs @@ -73,10 +73,6 @@ pub fn process_rdp_list() -> u64 { unsafe { rdp_process_commands() } } -pub fn full_sync() { - unsafe { rdp_full_sync() } -} - pub fn draw_text(text: &str, renderer: *mut sdl3_sys::render::SDL_Renderer, font: &rusttype::Font) { let text_size = 32; let scale = rusttype::Scale::uniform(text_size as f32);