[hle/service{nvdrv,apm}] fixes for TetrisSwitch (#3983)

- testriswitch submits buffers with a fence id of -1, just skip them instead of trying to process them?
- apm:u, which is removed, but hey, backwards compat never hurted
- another instance of shared_memory crashing NPad

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3983
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
This commit is contained in:
lizzie 2026-05-24 01:04:32 +02:00 committed by crueter
parent 90164197dc
commit 2aa2ac7d9a
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
5 changed files with 37 additions and 29 deletions

View file

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2012 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later
@ -15,10 +18,8 @@ namespace Service::android {
class Fence {
public:
constexpr Fence() = default;
static constexpr Fence NoFence() {
Fence fence;
Fence fence{};
fence.fences[0].id = -1;
fence.fences[1].id = -1;
fence.fences[2].id = -1;
@ -26,7 +27,6 @@ public:
return fence;
}
public:
u32 num_fences{};
std::array<Service::Nvidia::NvFence, 4> fences{};
};