[vk, ogl/IR, dynarmic/IR] friendlier IR identity pointer chasing, inline AA passes (#2565)

- use std::optional instead of std::unique_ptr for the Antialias (FXAA, etc) passes to avoid the extra deref
- use a pattern for deferencing the IR pointer chasing loop as suggested on the intel optimization manual
- this also removes std::vector<> overhead by using boost::container::small_vector<> (not a silver bullet but in the case of this function reduces access times)

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2565
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie 2025-12-31 17:00:29 +01:00 committed by crueter
parent 55646657e1
commit 46b32b7688
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
11 changed files with 141 additions and 149 deletions

View file

@ -12,7 +12,7 @@
#include "common/common_types.h"
#include "common/expected.h"
// All the constants in this file come from <http://switchbrew.org/index.php?title=Error_codes>
// All the constants in this file come from <https://switchbrew.org/wiki/Error_codes>
/**
* Identifies the module which caused the error. Error codes can be propagated through a call
@ -43,7 +43,7 @@ enum class ErrorModule : u32 {
NCMContent = 20,
SM = 21,
RO = 22,
GC = 23,
Gc = 23,
SDMMC = 24,
OVLN = 25,
SPL = 26,
@ -72,7 +72,7 @@ enum class ErrorModule : u32 {
Bluetooth = 113,
VI = 114,
NFP = 115,
Time = 116,
TimeService = 116,
FGM = 117,
OE = 118,
BH1730FVC = 119,

View file

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@ -7,18 +10,18 @@
namespace Service::PSC::Time {
constexpr Result ResultPermissionDenied{ErrorModule::Time, 1};
constexpr Result ResultClockMismatch{ErrorModule::Time, 102};
constexpr Result ResultClockUninitialized{ErrorModule::Time, 103};
constexpr Result ResultTimeNotFound{ErrorModule::Time, 200};
constexpr Result ResultOverflow{ErrorModule::Time, 201};
constexpr Result ResultFailed{ErrorModule::Time, 801};
constexpr Result ResultInvalidArgument{ErrorModule::Time, 901};
constexpr Result ResultTimeZoneOutOfRange{ErrorModule::Time, 902};
constexpr Result ResultTimeZoneParseFailed{ErrorModule::Time, 903};
constexpr Result ResultRtcTimeout{ErrorModule::Time, 988};
constexpr Result ResultTimeZoneNotFound{ErrorModule::Time, 989};
constexpr Result ResultNotImplemented{ErrorModule::Time, 990};
constexpr Result ResultAlarmNotRegistered{ErrorModule::Time, 1502};
constexpr Result ResultPermissionDenied{ErrorModule::TimeService, 1};
constexpr Result ResultClockMismatch{ErrorModule::TimeService, 102};
constexpr Result ResultClockUninitialized{ErrorModule::TimeService, 103};
constexpr Result ResultTimeNotFound{ErrorModule::TimeService, 200};
constexpr Result ResultOverflow{ErrorModule::TimeService, 201};
constexpr Result ResultFailed{ErrorModule::TimeService, 801};
constexpr Result ResultInvalidArgument{ErrorModule::TimeService, 901};
constexpr Result ResultTimeZoneOutOfRange{ErrorModule::TimeService, 902};
constexpr Result ResultTimeZoneParseFailed{ErrorModule::TimeService, 903};
constexpr Result ResultRtcTimeout{ErrorModule::TimeService, 988};
constexpr Result ResultTimeZoneNotFound{ErrorModule::TimeService, 989};
constexpr Result ResultNotImplemented{ErrorModule::TimeService, 990};
constexpr Result ResultAlarmNotRegistered{ErrorModule::TimeService, 1502};
} // namespace Service::PSC::Time