mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-08 06:36:01 +00:00
me when sed goes wrong
This commit is contained in:
@@ -20,7 +20,7 @@ struct RomMetadata {
|
|||||||
std::vector<u8> icon;
|
std::vector<u8> icon;
|
||||||
bool isHomebrew;
|
bool isHomebrew;
|
||||||
};
|
};
|
||||||
static boost::container::unordered_flat_map<std::string, RomMetadata> m_rom_metadata_cache;
|
static boost::unordered::unordered_flat_map<std::string, RomMetadata> m_rom_metadata_cache;
|
||||||
|
|
||||||
static RomMetadata CacheRomMetadata(const std::string& path) {
|
static RomMetadata CacheRomMetadata(const std::string& path) {
|
||||||
auto& instance = EmulationSession::GetInstance();
|
auto& instance = EmulationSession::GetInstance();
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#include "input_common/drivers/virtual_gamepad.h"
|
#include "input_common/drivers/virtual_gamepad.h"
|
||||||
#include "native.h"
|
#include "native.h"
|
||||||
|
|
||||||
boost::container::unordered_flat_map<std::string, std::unique_ptr<AndroidConfig>> map_profiles;
|
boost::unordered::unordered_flat_map<std::string, std::unique_ptr<AndroidConfig>> map_profiles;
|
||||||
|
|
||||||
bool IsHandheldOnly() {
|
bool IsHandheldOnly() {
|
||||||
const auto npad_style_set =
|
const auto npad_style_set =
|
||||||
|
|||||||
@@ -197,8 +197,8 @@ private:
|
|||||||
SetLegacyPathImpl(legacy_path, new_path);
|
SetLegacyPathImpl(legacy_path, new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::container::unordered_flat_map<EdenPath, fs::path> eden_paths;
|
boost::unordered::unordered_flat_map<EdenPath, fs::path> eden_paths;
|
||||||
boost::container::unordered_flat_map<EmuPath, fs::path> legacy_paths;
|
boost::unordered::unordered_flat_map<EmuPath, fs::path> legacy_paths;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ValidatePath(const fs::path& path) {
|
bool ValidatePath(const fs::path& path) {
|
||||||
|
|||||||
@@ -392,7 +392,7 @@ private:
|
|||||||
|
|
||||||
std::mutex placeholder_mutex; ///< Mutex for placeholders
|
std::mutex placeholder_mutex; ///< Mutex for placeholders
|
||||||
boost::icl::separate_interval_set<size_t> placeholders; ///< Mapped placeholders
|
boost::icl::separate_interval_set<size_t> placeholders; ///< Mapped placeholders
|
||||||
boost::container::unordered_flat_map<size_t, size_t> placeholder_host_pointers; ///< Placeholder backing offset
|
boost::unordered::unordered_flat_map<size_t, size_t> placeholder_host_pointers; ///< Placeholder backing offset
|
||||||
};
|
};
|
||||||
|
|
||||||
#elif defined(__OPENORBIS__) || defined(__managarm__)
|
#elif defined(__OPENORBIS__) || defined(__managarm__)
|
||||||
|
|||||||
+1
-1
@@ -413,7 +413,7 @@ public:
|
|||||||
namespace Impl {
|
namespace Impl {
|
||||||
|
|
||||||
template <typename InputDeviceType>
|
template <typename InputDeviceType>
|
||||||
using FactoryListType = boost::container::unordered_flat_map<std::string, std::shared_ptr<Factory<InputDeviceType>>>;
|
using FactoryListType = boost::unordered::unordered_flat_map<std::string, std::shared_ptr<Factory<InputDeviceType>>>;
|
||||||
|
|
||||||
template <typename InputDeviceType>
|
template <typename InputDeviceType>
|
||||||
struct FactoryList {
|
struct FactoryList {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Common {
|
|||||||
/// A string-based key-value container supporting serializing to and deserializing from a string
|
/// A string-based key-value container supporting serializing to and deserializing from a string
|
||||||
class ParamPackage {
|
class ParamPackage {
|
||||||
public:
|
public:
|
||||||
using DataType = boost::container::unordered_flat_map<std::string, std::string>;
|
using DataType = boost::unordered::unordered_flat_map<std::string, std::string>;
|
||||||
|
|
||||||
ParamPackage() = default;
|
ParamPackage() = default;
|
||||||
explicit ParamPackage(const std::string& serialized);
|
explicit ParamPackage(const std::string& serialized);
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
#include <boost/unordered/unordered_flat_map.hpp>
|
#include <boost/unordered/unordered_flat_map.hpp>
|
||||||
#include <boost/unordered/unordered_flat_set.hpp>
|
#include <boost/unordered/unordered_flat_set.hpp>
|
||||||
#include <boost/unordered_map.hpp>
|
#include <boost/unordered_map.hpp>
|
||||||
#define XBYAK_STD_UNORDERED_SET boost::container::unordered_flat_set
|
#define XBYAK_STD_UNORDERED_SET boost::unordered::unordered_flat_set
|
||||||
#define XBYAK_STD_UNORDERED_MAP boost::container::unordered_flat_map
|
#define XBYAK_STD_UNORDERED_MAP boost::unordered::unordered_flat_map
|
||||||
#define XBYAK_STD_UNORDERED_MULTIMAP boost::unordered_multimap
|
#define XBYAK_STD_UNORDERED_MULTIMAP boost::unordered_multimap
|
||||||
#include <xbyak/xbyak.h>
|
#include <xbyak/xbyak.h>
|
||||||
#include <xbyak/xbyak_util.h>
|
#include <xbyak/xbyak_util.h>
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ struct IPSwitchRecord {
|
|||||||
size_t count;
|
size_t count;
|
||||||
};
|
};
|
||||||
struct IPSwitchCompiler::IPSwitchPatch {
|
struct IPSwitchCompiler::IPSwitchPatch {
|
||||||
boost::container::unordered_flat_map<u32, IPSwitchRecord> records;
|
boost::unordered::unordered_flat_map<u32, IPSwitchRecord> records;
|
||||||
bool enabled;
|
bool enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -566,7 +566,7 @@ VirtualFile RegisteredCache::GetFileAtID(NcaID id) const {
|
|||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::optional<NcaID> CheckMapForContentRecord(const boost::container::unordered_flat_map<u64, CNMT>& map, u64 title_id, ContentRecordType type) {
|
static std::optional<NcaID> CheckMapForContentRecord(const boost::unordered::unordered_flat_map<u64, CNMT>& map, u64 title_id, ContentRecordType type) {
|
||||||
auto cmnt_iter = map.find(title_id);
|
auto cmnt_iter = map.find(title_id);
|
||||||
u8 id_offset = 0;
|
u8 id_offset = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ private:
|
|||||||
std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{};
|
std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{};
|
||||||
std::map<KProcessAddress, u64> m_debug_page_refcounts{};
|
std::map<KProcessAddress, u64> m_debug_page_refcounts{};
|
||||||
#ifdef HAS_NCE
|
#ifdef HAS_NCE
|
||||||
boost::container::unordered_flat_map<u64, u64> m_post_handlers{};
|
boost::unordered::unordered_flat_map<u64, u64> m_post_handlers{};
|
||||||
#endif
|
#endif
|
||||||
std::unique_ptr<Core::ExclusiveMonitor> m_exclusive_monitor;
|
std::unique_ptr<Core::ExclusiveMonitor> m_exclusive_monitor;
|
||||||
Core::Memory::Memory m_memory;
|
Core::Memory::Memory m_memory;
|
||||||
@@ -494,7 +494,7 @@ public:
|
|||||||
static void Switch(KernelCore& kernel, KProcess* cur_process, KProcess* next_process);
|
static void Switch(KernelCore& kernel, KProcess* cur_process, KProcess* next_process);
|
||||||
|
|
||||||
#ifdef HAS_NCE
|
#ifdef HAS_NCE
|
||||||
boost::container::unordered_flat_map<u64, u64>& GetPostHandlers() noexcept {
|
boost::unordered::unordered_flat_map<u64, u64>& GetPostHandlers() noexcept {
|
||||||
return m_post_handlers;
|
return m_post_handlers;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -793,8 +793,8 @@ struct KernelCore::Impl {
|
|||||||
|
|
||||||
std::optional<KObjectNameGlobalData> object_name_global_data;
|
std::optional<KObjectNameGlobalData> object_name_global_data;
|
||||||
|
|
||||||
boost::container::unordered_flat_set<KAutoObject*> registered_objects;
|
boost::unordered::unordered_flat_set<KAutoObject*> registered_objects;
|
||||||
boost::container::unordered_flat_set<KAutoObject*> registered_in_use_objects;
|
boost::unordered::unordered_flat_set<KAutoObject*> registered_in_use_objects;
|
||||||
|
|
||||||
std::mutex server_lock;
|
std::mutex server_lock;
|
||||||
std::vector<std::unique_ptr<Service::ServerManager>> server_managers;
|
std::vector<std::unique_ptr<Service::ServerManager>> server_managers;
|
||||||
|
|||||||
@@ -177,6 +177,6 @@ struct WebCommonReturnValue {
|
|||||||
};
|
};
|
||||||
static_assert(sizeof(WebCommonReturnValue) == 0x1010, "WebCommonReturnValue has incorrect size.");
|
static_assert(sizeof(WebCommonReturnValue) == 0x1010, "WebCommonReturnValue has incorrect size.");
|
||||||
|
|
||||||
using WebArgInputTLVMap = boost::container::unordered_flat_map<WebArgInputTLVType, std::vector<u8>>;
|
using WebArgInputTLVMap = boost::unordered::unordered_flat_map<WebArgInputTLVType, std::vector<u8>>;
|
||||||
|
|
||||||
} // namespace Service::AM::Frontend
|
} // namespace Service::AM::Frontend
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ std::vector<u8> default_logo_small;
|
|||||||
std::vector<u8> default_logo_large;
|
std::vector<u8> default_logo_large;
|
||||||
bool default_logos_loaded = false;
|
bool default_logos_loaded = false;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<std::string, std::vector<u8>> news_images_small;
|
boost::unordered::unordered_flat_map<std::string, std::vector<u8>> news_images_small;
|
||||||
boost::container::unordered_flat_map<std::string, std::vector<u8>> news_images_large;
|
boost::unordered::unordered_flat_map<std::string, std::vector<u8>> news_images_large;
|
||||||
std::mutex images_mutex;
|
std::mutex images_mutex;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ private:
|
|||||||
static s64 Now();
|
static s64 Now();
|
||||||
|
|
||||||
mutable std::mutex mtx;
|
mutable std::mutex mtx;
|
||||||
boost::container::unordered_flat_map<std::string, StoredNews> items;
|
boost::unordered::unordered_flat_map<std::string, StoredNews> items;
|
||||||
size_t open_counter{};
|
size_t open_counter{};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ private:
|
|||||||
AlbumFileDateTime ConvertToAlbumDateTime(u64 posix_time) const;
|
AlbumFileDateTime ConvertToAlbumDateTime(u64 posix_time) const;
|
||||||
|
|
||||||
bool is_mounted{};
|
bool is_mounted{};
|
||||||
boost::container::unordered_flat_map<AlbumFileId, std::filesystem::path> album_files;
|
boost::unordered::unordered_flat_map<AlbumFileId, std::filesystem::path> album_files;
|
||||||
|
|
||||||
Core::System& system;
|
Core::System& system;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ protected:
|
|||||||
std::array<LanStation, StationCountMax> stations;
|
std::array<LanStation, StationCountMax> stations;
|
||||||
std::array<NodeLatestUpdate, NodeCountMax> node_changes{};
|
std::array<NodeLatestUpdate, NodeCountMax> node_changes{};
|
||||||
std::array<u8, NodeCountMax> node_last_states{};
|
std::array<u8, NodeCountMax> node_last_states{};
|
||||||
boost::container::unordered_flat_map<MacAddress, NetworkInfo, MACAddressHash> scan_results{};
|
boost::unordered::unordered_flat_map<MacAddress, NetworkInfo, MACAddressHash> scan_results{};
|
||||||
NodeInfo node_info{};
|
NodeInfo node_info{};
|
||||||
NetworkInfo network_info{};
|
NetworkInfo network_info{};
|
||||||
State state{State::None};
|
State state{State::None};
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ private:
|
|||||||
};
|
};
|
||||||
static_assert(sizeof(LogPacketHeader) == 0x18, "LogPacketHeader is an invalid size");
|
static_assert(sizeof(LogPacketHeader) == 0x18, "LogPacketHeader is an invalid size");
|
||||||
|
|
||||||
boost::container::unordered_flat_map<LogPacketHeaderEntry, std::vector<u8>> entries{};
|
boost::unordered::unordered_flat_map<LogPacketHeaderEntry, std::vector<u8>> entries{};
|
||||||
LogDestination destination{LogDestination::All};
|
LogDestination destination{LogDestination::All};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ private:
|
|||||||
std::list<std::shared_ptr<Handle>> unmap_queue{};
|
std::list<std::shared_ptr<Handle>> unmap_queue{};
|
||||||
std::mutex unmap_queue_lock{}; //!< Protects access to `unmap_queue`
|
std::mutex unmap_queue_lock{}; //!< Protects access to `unmap_queue`
|
||||||
|
|
||||||
boost::container::unordered_flat_map<Handle::Id, std::shared_ptr<Handle>>
|
boost::unordered::unordered_flat_map<Handle::Id, std::shared_ptr<Handle>>
|
||||||
handles{}; //!< Main owning map of handles
|
handles{}; //!< Main owning map of handles
|
||||||
std::mutex handles_lock; //!< Protects access to `handles`
|
std::mutex handles_lock; //!< Protects access to `handles`
|
||||||
|
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ private:
|
|||||||
};
|
};
|
||||||
static_assert(sizeof(IoctlRemapEntry) == 20, "IoctlRemapEntry is incorrect size");
|
static_assert(sizeof(IoctlRemapEntry) == 20, "IoctlRemapEntry is incorrect size");
|
||||||
|
|
||||||
boost::container::unordered_flat_set<s64_le> map_buffer_offsets{};
|
boost::unordered::unordered_flat_set<s64_le> map_buffer_offsets{};
|
||||||
|
|
||||||
struct IoctlMapBufferEx {
|
struct IoctlMapBufferEx {
|
||||||
MappingFlags flags{}; // bit0: fixed_offset, bit2: cacheable
|
MappingFlags flags{}; // bit0: fixed_offset, bit2: cacheable
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ private:
|
|||||||
NvCore::SyncpointManager& syncpoint_manager;
|
NvCore::SyncpointManager& syncpoint_manager;
|
||||||
NvCore::NvMap& nvmap;
|
NvCore::NvMap& nvmap;
|
||||||
std::shared_ptr<Tegra::Control::ChannelState> channel_state;
|
std::shared_ptr<Tegra::Control::ChannelState> channel_state;
|
||||||
boost::container::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
boost::unordered::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
||||||
u32 channel_syncpoint;
|
u32 channel_syncpoint;
|
||||||
std::mutex channel_mutex;
|
std::mutex channel_mutex;
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ protected:
|
|||||||
NvCore::NvMap& nvmap;
|
NvCore::NvMap& nvmap;
|
||||||
NvCore::ChannelType channel_type;
|
NvCore::ChannelType channel_type;
|
||||||
std::array<u32, MaxSyncPoints> device_syncpoints{};
|
std::array<u32, MaxSyncPoints> device_syncpoints{};
|
||||||
boost::container::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
boost::unordered::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
||||||
};
|
};
|
||||||
}; // namespace Devices
|
}; // namespace Devices
|
||||||
} // namespace Service::Nvidia
|
} // namespace Service::Nvidia
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ private:
|
|||||||
|
|
||||||
NvCore::Container& container;
|
NvCore::Container& container;
|
||||||
NvCore::NvMap& file;
|
NvCore::NvMap& file;
|
||||||
boost::container::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
boost::unordered::unordered_flat_map<DeviceFD, NvCore::SessionId> sessions;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::Nvidia::Devices
|
} // namespace Service::Nvidia::Devices
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ private:
|
|||||||
/// Id to use for the next open file descriptor.
|
/// Id to use for the next open file descriptor.
|
||||||
DeviceFD next_fd = 1;
|
DeviceFD next_fd = 1;
|
||||||
|
|
||||||
using FilesContainerType = boost::container::unordered_flat_map<DeviceFD, std::shared_ptr<Devices::nvdevice>>;
|
using FilesContainerType = boost::unordered::unordered_flat_map<DeviceFD, std::shared_ptr<Devices::nvdevice>>;
|
||||||
/// Mapping of file descriptors to the devices they reference.
|
/// Mapping of file descriptors to the devices they reference.
|
||||||
FilesContainerType open_files;
|
FilesContainerType open_files;
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ private:
|
|||||||
|
|
||||||
EventInterface events_interface;
|
EventInterface events_interface;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<std::string, std::function<FilesContainerType::iterator(DeviceFD)>> builders;
|
boost::unordered::unordered_flat_map<std::string, std::function<FilesContainerType::iterator(DeviceFD)>> builders;
|
||||||
};
|
};
|
||||||
|
|
||||||
void LoopProcess(Core::System& system);
|
void LoopProcess(Core::System& system);
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ private:
|
|||||||
|
|
||||||
mutable std::mutex lock;
|
mutable std::mutex lock;
|
||||||
s32 last_id = 0;
|
s32 last_id = 0;
|
||||||
boost::container::unordered_flat_map<s32, std::shared_ptr<android::IBinder>> binders;
|
boost::unordered::unordered_flat_map<s32, std::shared_ptr<android::IBinder>> binders;
|
||||||
boost::container::unordered_flat_map<s32, RefCounts> refcounts;
|
boost::unordered::unordered_flat_map<s32, RefCounts> refcounts;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::Nvnflinger
|
} // namespace Service::Nvnflinger
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ private:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
boost::container::unordered_flat_map<AppKey, bool, AppKeyHash> app_auto_transfer_{};
|
boost::unordered::unordered_flat_map<AppKey, bool, AppKeyHash> app_auto_transfer_{};
|
||||||
boost::container::unordered_flat_map<Common::UUID, bool> global_auto_upload_{};
|
boost::unordered::unordered_flat_map<Common::UUID, bool> global_auto_upload_{};
|
||||||
boost::container::unordered_flat_map<Common::UUID, bool> global_auto_download_{};
|
boost::unordered::unordered_flat_map<Common::UUID, bool> global_auto_download_{};
|
||||||
boost::container::unordered_flat_map<AppKey, u8, AppKeyHash> autonomy_task_status_{};
|
boost::unordered::unordered_flat_map<AppKey, u8, AppKeyHash> autonomy_task_status_{};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::OLSC
|
} // namespace Service::OLSC
|
||||||
|
|||||||
@@ -100,8 +100,8 @@ private:
|
|||||||
void ReportUnimplementedFunction(HLERequestContext& ctx, const FunctionInfoBase* info);
|
void ReportUnimplementedFunction(HLERequestContext& ctx, const FunctionInfoBase* info);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
boost::container::unordered_flat_map<u32, FunctionInfoBase> handlers;
|
boost::unordered::unordered_flat_map<u32, FunctionInfoBase> handlers;
|
||||||
boost::container::unordered_flat_map<u32, FunctionInfoBase> handlers_tipc;
|
boost::unordered::unordered_flat_map<u32, FunctionInfoBase> handlers_tipc;
|
||||||
/// Used to gain exclusive access to the service members, e.g. from CoreTiming thread.
|
/// Used to gain exclusive access to the service members, e.g. from CoreTiming thread.
|
||||||
std::mutex lock_service;
|
std::mutex lock_service;
|
||||||
/// System context that the service operates under.
|
/// System context that the service operates under.
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ private:
|
|||||||
|
|
||||||
/// Map of registered services, retrieved using GetServicePort.
|
/// Map of registered services, retrieved using GetServicePort.
|
||||||
mutable std::mutex lock;
|
mutable std::mutex lock;
|
||||||
boost::container::unordered_flat_map<std::string, SessionRequestHandlerFactory> registered_services;
|
boost::unordered::unordered_flat_map<std::string, SessionRequestHandlerFactory> registered_services;
|
||||||
boost::container::unordered_flat_map<std::string, Kernel::KClientPort*> service_ports;
|
boost::unordered::unordered_flat_map<std::string, Kernel::KClientPort*> service_ports;
|
||||||
|
|
||||||
/// Kernel context
|
/// Kernel context
|
||||||
Kernel::KernelCore& kernel;
|
Kernel::KernelCore& kernel;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
Core::System& m_system;
|
Core::System& m_system;
|
||||||
Container& m_container;
|
Container& m_container;
|
||||||
boost::container::unordered_flat_map<u64, VsyncManager> m_vsync_managers;
|
boost::unordered::unordered_flat_map<u64, VsyncManager> m_vsync_managers;
|
||||||
std::shared_ptr<Core::Timing::EventType> m_event;
|
std::shared_ptr<Core::Timing::EventType> m_event;
|
||||||
Common::Event m_signal;
|
Common::Event m_signal;
|
||||||
std::jthread m_thread;
|
std::jthread m_thread;
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ CodePtr AddressSpace::GetOrEmit(IR::LocationDescriptor descriptor) {
|
|||||||
return block_info.entry_point;
|
return block_info.entry_point;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddressSpace::InvalidateBasicBlocks(const boost::container::unordered_flat_set<IR::LocationDescriptor>& descriptors) {
|
void AddressSpace::InvalidateBasicBlocks(const boost::unordered::unordered_flat_set<IR::LocationDescriptor>& descriptors) {
|
||||||
UnprotectCodeMemory();
|
UnprotectCodeMemory();
|
||||||
|
|
||||||
for (const auto& descriptor : descriptors) {
|
for (const auto& descriptor : descriptors) {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public:
|
|||||||
|
|
||||||
CodePtr GetOrEmit(IR::LocationDescriptor descriptor);
|
CodePtr GetOrEmit(IR::LocationDescriptor descriptor);
|
||||||
|
|
||||||
void InvalidateBasicBlocks(const boost::container::unordered_flat_set<IR::LocationDescriptor>& descriptors);
|
void InvalidateBasicBlocks(const boost::unordered::unordered_flat_set<IR::LocationDescriptor>& descriptors);
|
||||||
|
|
||||||
void ClearCache();
|
void ClearCache();
|
||||||
protected:
|
protected:
|
||||||
@@ -77,9 +77,9 @@ protected:
|
|||||||
// A IR::LocationDescriptor will have one current CodePtr.
|
// A IR::LocationDescriptor will have one current CodePtr.
|
||||||
// However, there can be multiple other CodePtrs which are older, previously invalidated blocks.
|
// However, there can be multiple other CodePtrs which are older, previously invalidated blocks.
|
||||||
std::map<CodePtr, IR::LocationDescriptor> reverse_block_entries;
|
std::map<CodePtr, IR::LocationDescriptor> reverse_block_entries;
|
||||||
boost::container::unordered_flat_map<IR::LocationDescriptor, CodePtr> block_entries;
|
boost::unordered::unordered_flat_map<IR::LocationDescriptor, CodePtr> block_entries;
|
||||||
boost::container::unordered_flat_map<CodePtr, EmittedBlockInfo> block_infos;
|
boost::unordered::unordered_flat_map<CodePtr, EmittedBlockInfo> block_infos;
|
||||||
boost::container::unordered_flat_map<IR::LocationDescriptor, boost::container::unordered_flat_set<CodePtr>> block_references;
|
boost::unordered::unordered_flat_map<IR::LocationDescriptor, boost::unordered::unordered_flat_set<CodePtr>> block_references;
|
||||||
|
|
||||||
ExceptionHandler exception_handler;
|
ExceptionHandler exception_handler;
|
||||||
FastmemManager fastmem_manager;
|
FastmemManager fastmem_manager;
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ struct EmittedBlockInfo {
|
|||||||
CodePtr entry_point;
|
CodePtr entry_point;
|
||||||
std::size_t size;
|
std::size_t size;
|
||||||
std::vector<Relocation> relocations;
|
std::vector<Relocation> relocations;
|
||||||
boost::container::unordered_flat_map<IR::LocationDescriptor, std::vector<BlockRelocation>> block_relocations;
|
boost::unordered::unordered_flat_map<IR::LocationDescriptor, std::vector<BlockRelocation>> block_relocations;
|
||||||
boost::container::unordered_flat_map<std::ptrdiff_t, FastmemPatchInfo> fastmem_patch_info;
|
boost::unordered::unordered_flat_map<std::ptrdiff_t, FastmemPatchInfo> fastmem_patch_info;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct EmitConfig {
|
struct EmitConfig {
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
ExceptionHandler& exception_handler;
|
ExceptionHandler& exception_handler;
|
||||||
boost::container::unordered_flat_set<DoNotFastmemMarker, DoNotFastmemMarkerHash> do_not_fastmem;
|
boost::unordered::unordered_flat_set<DoNotFastmemMarker, DoNotFastmemMarkerHash> do_not_fastmem;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Dynarmic::Backend::Arm64
|
} // namespace Dynarmic::Backend::Arm64
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ private:
|
|||||||
std::array<HostLocInfo, SpillCount> spills;
|
std::array<HostLocInfo, SpillCount> spills;
|
||||||
|
|
||||||
mutable std::size_t alloc_candidate_index = 0;
|
mutable std::size_t alloc_candidate_index = 0;
|
||||||
boost::container::unordered_flat_set<const IR::Inst*> defined_insts;
|
boost::unordered::unordered_flat_set<const IR::Inst*> defined_insts;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Dynarmic::Backend {
|
|||||||
|
|
||||||
template<typename P>
|
template<typename P>
|
||||||
void BlockRangeInformation<P>::AddRange(boost::icl::discrete_interval<P> range, IR::LocationDescriptor location) {
|
void BlockRangeInformation<P>::AddRange(boost::icl::discrete_interval<P> range, IR::LocationDescriptor location) {
|
||||||
block_ranges.add(std::make_pair(range, boost::container::unordered_flat_set<IR::LocationDescriptor>{location}));
|
block_ranges.add(std::make_pair(range, boost::unordered::unordered_flat_set<IR::LocationDescriptor>{location}));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename P>
|
template<typename P>
|
||||||
@@ -27,8 +27,8 @@ void BlockRangeInformation<P>::ClearCache() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename P>
|
template<typename P>
|
||||||
boost::container::unordered_flat_set<IR::LocationDescriptor> BlockRangeInformation<P>::InvalidateRanges(const boost::icl::interval_set<P>& ranges) {
|
boost::unordered::unordered_flat_set<IR::LocationDescriptor> BlockRangeInformation<P>::InvalidateRanges(const boost::icl::interval_set<P>& ranges) {
|
||||||
boost::container::unordered_flat_set<IR::LocationDescriptor> erase_locations;
|
boost::unordered::unordered_flat_set<IR::LocationDescriptor> erase_locations;
|
||||||
for (auto invalidate_interval : ranges) {
|
for (auto invalidate_interval : ranges) {
|
||||||
auto pair = block_ranges.equal_range(invalidate_interval);
|
auto pair = block_ranges.equal_range(invalidate_interval);
|
||||||
for (auto it = pair.first; it != pair.second; ++it)
|
for (auto it = pair.first; it != pair.second; ++it)
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ class BlockRangeInformation {
|
|||||||
public:
|
public:
|
||||||
void AddRange(boost::icl::discrete_interval<P> range, IR::LocationDescriptor location);
|
void AddRange(boost::icl::discrete_interval<P> range, IR::LocationDescriptor location);
|
||||||
void ClearCache();
|
void ClearCache();
|
||||||
boost::container::unordered_flat_set<IR::LocationDescriptor> InvalidateRanges(const boost::icl::interval_set<P>& ranges);
|
boost::unordered::unordered_flat_set<IR::LocationDescriptor> InvalidateRanges(const boost::icl::interval_set<P>& ranges);
|
||||||
boost::icl::interval_map<P, boost::container::unordered_flat_set<IR::LocationDescriptor>> block_ranges;
|
boost::icl::interval_map<P, boost::unordered::unordered_flat_set<IR::LocationDescriptor>> block_ranges;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Dynarmic::Backend
|
} // namespace Dynarmic::Backend
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class SigHandler {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, CodeBlockInfo> code_block_infos;
|
boost::unordered::unordered_flat_map<u64, CodeBlockInfo> code_block_infos;
|
||||||
std::shared_mutex code_block_infos_mutex;
|
std::shared_mutex code_block_infos_mutex;
|
||||||
struct sigaction old_sa_segv;
|
struct sigaction old_sa_segv;
|
||||||
struct sigaction old_sa_bus;
|
struct sigaction old_sa_bus;
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ private:
|
|||||||
CodeBlock cb;
|
CodeBlock cb;
|
||||||
biscuit::Assembler as;
|
biscuit::Assembler as;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, CodePtr> block_entries;
|
boost::unordered::unordered_flat_map<u64, CodePtr> block_entries;
|
||||||
boost::container::unordered_flat_map<u64, EmittedBlockInfo> block_infos;
|
boost::unordered::unordered_flat_map<u64, EmittedBlockInfo> block_infos;
|
||||||
|
|
||||||
struct PreludeInfo {
|
struct PreludeInfo {
|
||||||
CodePtr end_of_prelude;
|
CodePtr end_of_prelude;
|
||||||
|
|||||||
@@ -127,11 +127,11 @@ public:
|
|||||||
RegAlloc reg_alloc; //reusable reg alloc
|
RegAlloc reg_alloc; //reusable reg alloc
|
||||||
BlockRangeInformation<u32> block_ranges;
|
BlockRangeInformation<u32> block_ranges;
|
||||||
std::array<FastDispatchEntry, fast_dispatch_table_size> fast_dispatch_table;
|
std::array<FastDispatchEntry, fast_dispatch_table_size> fast_dispatch_table;
|
||||||
boost::container::unordered_flat_map<u64, FastmemPatchInfo> fastmem_patch_info;
|
boost::unordered::unordered_flat_map<u64, FastmemPatchInfo> fastmem_patch_info;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> read_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> read_fallbacks;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> write_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> write_fallbacks;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> exclusive_write_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> exclusive_write_fallbacks;
|
||||||
boost::container::unordered_flat_set<DoNotFastmemMarker> do_not_fastmem;
|
boost::unordered::unordered_flat_set<DoNotFastmemMarker> do_not_fastmem;
|
||||||
boost::container::stable_vector<Xbyak::Label> shared_labels;
|
boost::container::stable_vector<Xbyak::Label> shared_labels;
|
||||||
void (*memory_read_128)() = nullptr; // Dummy
|
void (*memory_read_128)() = nullptr; // Dummy
|
||||||
void (*memory_write_128)() = nullptr; // Dummy
|
void (*memory_write_128)() = nullptr; // Dummy
|
||||||
|
|||||||
@@ -123,11 +123,11 @@ public:
|
|||||||
RegAlloc reg_alloc; //reusable reg alloc
|
RegAlloc reg_alloc; //reusable reg alloc
|
||||||
BlockRangeInformation<u64> block_ranges;
|
BlockRangeInformation<u64> block_ranges;
|
||||||
std::array<FastDispatchEntry, fast_dispatch_table_size> fast_dispatch_table;
|
std::array<FastDispatchEntry, fast_dispatch_table_size> fast_dispatch_table;
|
||||||
boost::container::unordered_flat_map<u64, FastmemPatchInfo> fastmem_patch_info;
|
boost::unordered::unordered_flat_map<u64, FastmemPatchInfo> fastmem_patch_info;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> read_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> read_fallbacks;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> write_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> write_fallbacks;
|
||||||
boost::container::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> exclusive_write_fallbacks;
|
boost::unordered::unordered_flat_map<std::tuple<bool, size_t, int, int>, void (*)()> exclusive_write_fallbacks;
|
||||||
boost::container::unordered_flat_set<DoNotFastmemMarker> do_not_fastmem;
|
boost::unordered::unordered_flat_set<DoNotFastmemMarker> do_not_fastmem;
|
||||||
boost::container::stable_vector<Xbyak::Label> shared_labels;
|
boost::container::stable_vector<Xbyak::Label> shared_labels;
|
||||||
const void* terminal_handler_pop_rsb_hint = nullptr;
|
const void* terminal_handler_pop_rsb_hint = nullptr;
|
||||||
const void* terminal_handler_fast_dispatch_hint = nullptr;
|
const void* terminal_handler_fast_dispatch_hint = nullptr;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ private:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
boost::container::unordered_flat_map<ConstantT, void*, ConstantHash> constant_info;
|
boost::unordered::unordered_flat_map<ConstantT, void*, ConstantHash> constant_info;
|
||||||
std::span<ConstantT> pool;
|
std::span<ConstantT> pool;
|
||||||
std::size_t insertion_point;
|
std::size_t insertion_point;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -397,7 +397,7 @@ void EmitX64::ClearCache() {
|
|||||||
PerfMapClear();
|
PerfMapClear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmitX64::InvalidateBasicBlocks(const boost::container::unordered_flat_set<IR::LocationDescriptor>& locations) {
|
void EmitX64::InvalidateBasicBlocks(const boost::unordered::unordered_flat_set<IR::LocationDescriptor>& locations) {
|
||||||
code.EnableWriting();
|
code.EnableWriting();
|
||||||
for (const auto& descriptor : locations) {
|
for (const auto& descriptor : locations) {
|
||||||
if (auto const it = block_descriptors.find(descriptor); it != block_descriptors.end()) {
|
if (auto const it = block_descriptors.find(descriptor); it != block_descriptors.end()) {
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public:
|
|||||||
virtual void ClearCache();
|
virtual void ClearCache();
|
||||||
|
|
||||||
/// Invalidates a selection of basic blocks.
|
/// Invalidates a selection of basic blocks.
|
||||||
void InvalidateBasicBlocks(const boost::container::unordered_flat_set<IR::LocationDescriptor>& locations);
|
void InvalidateBasicBlocks(const boost::unordered::unordered_flat_set<IR::LocationDescriptor>& locations);
|
||||||
|
|
||||||
//protected:
|
//protected:
|
||||||
// Microinstruction emitters
|
// Microinstruction emitters
|
||||||
@@ -132,8 +132,8 @@ public:
|
|||||||
// State
|
// State
|
||||||
BlockOfCode& code;
|
BlockOfCode& code;
|
||||||
ExceptionHandler exception_handler;
|
ExceptionHandler exception_handler;
|
||||||
boost::container::unordered_flat_map<IR::LocationDescriptor, BlockDescriptor> block_descriptors;
|
boost::unordered::unordered_flat_map<IR::LocationDescriptor, BlockDescriptor> block_descriptors;
|
||||||
boost::container::unordered_flat_map<IR::LocationDescriptor, PatchInformation> patch_information;
|
boost::unordered::unordered_flat_map<IR::LocationDescriptor, PatchInformation> patch_information;
|
||||||
|
|
||||||
// We need materialized protected members
|
// We need materialized protected members
|
||||||
friend class A64EmitX64;
|
friend class A64EmitX64;
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
#include <boost/unordered/unordered_flat_map.hpp>
|
#include <boost/unordered/unordered_flat_map.hpp>
|
||||||
#include <boost/unordered/unordered_flat_set.hpp>
|
#include <boost/unordered/unordered_flat_set.hpp>
|
||||||
#include <boost/unordered_map.hpp>
|
#include <boost/unordered_map.hpp>
|
||||||
#define XBYAK_STD_UNORDERED_SET boost::container::unordered_flat_set
|
#define XBYAK_STD_UNORDERED_SET boost::unordered::unordered_flat_set
|
||||||
#define XBYAK_STD_UNORDERED_MAP boost::container::unordered_flat_map
|
#define XBYAK_STD_UNORDERED_MAP boost::unordered::unordered_flat_map
|
||||||
#define XBYAK_STD_UNORDERED_MULTIMAP boost::unordered_multimap
|
#define XBYAK_STD_UNORDERED_MULTIMAP boost::unordered_multimap
|
||||||
#include <xbyak/xbyak.h>
|
#include <xbyak/xbyak.h>
|
||||||
#include <xbyak/xbyak_util.h>
|
#include <xbyak/xbyak_util.h>
|
||||||
|
|||||||
@@ -1434,7 +1434,7 @@ static void VerificationPass(const IR::Block& block) {
|
|||||||
ASSERT(IR::AreTypesCompatible(t1, t2));
|
ASSERT(IR::AreTypesCompatible(t1, t2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boost::container::unordered_flat_map<IR::Inst*, size_t> actual_uses;
|
boost::unordered::unordered_flat_map<IR::Inst*, size_t> actual_uses;
|
||||||
for (auto const& inst : block.instructions) {
|
for (auto const& inst : block.instructions) {
|
||||||
for (size_t i = 0; i < inst.NumArgs(); i++)
|
for (size_t i = 0; i < inst.NumArgs(); i++)
|
||||||
if (IR::Value const arg = inst.GetArg(i); !arg.IsImmediate())
|
if (IR::Value const arg = inst.GetArg(i); !arg.IsImmediate())
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace {
|
|||||||
class MyEnvironment final : public A64::UserCallbacks {
|
class MyEnvironment final : public A64::UserCallbacks {
|
||||||
public:
|
public:
|
||||||
u64 ticks_left = 0;
|
u64 ticks_left = 0;
|
||||||
boost::container::unordered_flat_map<u64, u8> memory{};
|
boost::unordered::unordered_flat_map<u64, u8> memory{};
|
||||||
|
|
||||||
u8 MemoryRead8(u64 vaddr) override {
|
u8 MemoryRead8(u64 vaddr) override {
|
||||||
return memory[vaddr];
|
return memory[vaddr];
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ using Vector = Dynarmic::A64::Vector;
|
|||||||
|
|
||||||
class A64TestEnv : public Dynarmic::A64::UserCallbacks {
|
class A64TestEnv : public Dynarmic::A64::UserCallbacks {
|
||||||
public:
|
public:
|
||||||
boost::container::unordered_flat_map<u64, u8> modified_memory;
|
boost::unordered::unordered_flat_map<u64, u8> modified_memory;
|
||||||
std::vector<u32> code_mem;
|
std::vector<u32> code_mem;
|
||||||
u64 ticks_left = 0;
|
u64 ticks_left = 0;
|
||||||
u64 code_mem_start_address = 0;
|
u64 code_mem_start_address = 0;
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ private:
|
|||||||
|
|
||||||
mutable std::mutex mutex;
|
mutable std::mutex mutex;
|
||||||
mutable std::mutex callback_mutex;
|
mutable std::mutex callback_mutex;
|
||||||
boost::container::unordered_flat_map<int, ConsoleUpdateCallback> callback_list;
|
boost::unordered::unordered_flat_map<int, ConsoleUpdateCallback> callback_list;
|
||||||
int last_callback_key = 0;
|
int last_callback_key = 0;
|
||||||
|
|
||||||
// Stores the current status of all console input
|
// Stores the current status of all console input
|
||||||
|
|||||||
@@ -637,7 +637,7 @@ private:
|
|||||||
ControllerMotionDevices virtual_motion_devices;
|
ControllerMotionDevices virtual_motion_devices;
|
||||||
|
|
||||||
mutable std::mutex callback_mutex;
|
mutable std::mutex callback_mutex;
|
||||||
boost::container::unordered_flat_map<int, ControllerUpdateCallback> callback_list;
|
boost::unordered::unordered_flat_map<int, ControllerUpdateCallback> callback_list;
|
||||||
int last_callback_key = 0;
|
int last_callback_key = 0;
|
||||||
|
|
||||||
// Stores the current status of all controller input
|
// Stores the current status of all controller input
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ private:
|
|||||||
|
|
||||||
mutable std::mutex mutex;
|
mutable std::mutex mutex;
|
||||||
mutable std::mutex callback_mutex;
|
mutable std::mutex callback_mutex;
|
||||||
boost::container::unordered_flat_map<int, InterfaceUpdateCallback> callback_list;
|
boost::unordered::unordered_flat_map<int, InterfaceUpdateCallback> callback_list;
|
||||||
int last_callback_key = 0;
|
int last_callback_key = 0;
|
||||||
|
|
||||||
// Stores the current status of all external device input
|
// Stores the current status of all external device input
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public:
|
|||||||
Common::Input::ButtonNames GetUIName(const Common::ParamPackage& params) const override;
|
Common::Input::ButtonNames GetUIName(const Common::ParamPackage& params) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::container::unordered_flat_map<PadIdentifier, jobject> input_devices;
|
boost::unordered::unordered_flat_map<PadIdentifier, jobject> input_devices;
|
||||||
|
|
||||||
/// Returns the correct identifier corresponding to the player index
|
/// Returns the correct identifier corresponding to the player index
|
||||||
PadIdentifier GetIdentifier(const std::string& guid, size_t port) const;
|
PadIdentifier GetIdentifier(const std::string& guid, size_t port) const;
|
||||||
|
|||||||
@@ -732,7 +732,7 @@ SDLDriver::~SDLDriver() {
|
|||||||
|
|
||||||
std::vector<Common::ParamPackage> SDLDriver::GetInputDevices() const {
|
std::vector<Common::ParamPackage> SDLDriver::GetInputDevices() const {
|
||||||
std::vector<Common::ParamPackage> devices;
|
std::vector<Common::ParamPackage> devices;
|
||||||
boost::container::unordered_flat_map<int, std::shared_ptr<SDLJoystick>> joycon_pairs;
|
boost::unordered::unordered_flat_map<int, std::shared_ptr<SDLJoystick>> joycon_pairs;
|
||||||
for (const auto& [key, value] : joystick_map) {
|
for (const auto& [key, value] : joystick_map) {
|
||||||
for (const auto& joystick : value) {
|
for (const auto& joystick : value) {
|
||||||
if (!joystick->GetSDLJoystick()) {
|
if (!joystick->GetSDLJoystick()) {
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ private:
|
|||||||
Common::SPSCQueue<VibrationRequest> vibration_queue;
|
Common::SPSCQueue<VibrationRequest> vibration_queue;
|
||||||
|
|
||||||
/// Map of GUID of a list of corresponding virtual Joysticks
|
/// Map of GUID of a list of corresponding virtual Joysticks
|
||||||
boost::container::unordered_flat_map<Common::UUID, std::vector<std::shared_ptr<SDLJoystick>>> joystick_map;
|
boost::unordered::unordered_flat_map<Common::UUID, std::vector<std::shared_ptr<SDLJoystick>>> joystick_map;
|
||||||
std::mutex joystick_map_mutex;
|
std::mutex joystick_map_mutex;
|
||||||
|
|
||||||
bool start_thread = false;
|
bool start_thread = false;
|
||||||
|
|||||||
@@ -301,8 +301,8 @@ private:
|
|||||||
bool configuring{false};
|
bool configuring{false};
|
||||||
const std::string input_engine;
|
const std::string input_engine;
|
||||||
int last_callback_key = 0;
|
int last_callback_key = 0;
|
||||||
boost::container::unordered_flat_map<PadIdentifier, ControllerData> controller_list;
|
boost::unordered::unordered_flat_map<PadIdentifier, ControllerData> controller_list;
|
||||||
boost::container::unordered_flat_map<int, InputIdentifier> callback_list;
|
boost::unordered::unordered_flat_map<int, InputIdentifier> callback_list;
|
||||||
MappingCallback mapping_callback;
|
MappingCallback mapping_callback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ enum class InputType { None, Button, Stick, Motion, Touch };
|
|||||||
* Given a ParamPackage for a Device returned from `GetInputDevices`, attempt to get the default
|
* Given a ParamPackage for a Device returned from `GetInputDevices`, attempt to get the default
|
||||||
* mapping for the device.
|
* mapping for the device.
|
||||||
*/
|
*/
|
||||||
using AnalogMapping = boost::container::unordered_flat_map<Settings::NativeAnalog::Values, Common::ParamPackage>;
|
using AnalogMapping = boost::unordered::unordered_flat_map<Settings::NativeAnalog::Values, Common::ParamPackage>;
|
||||||
using ButtonMapping = boost::container::unordered_flat_map<Settings::NativeButton::Values, Common::ParamPackage>;
|
using ButtonMapping = boost::unordered::unordered_flat_map<Settings::NativeButton::Values, Common::ParamPackage>;
|
||||||
using MotionMapping = boost::container::unordered_flat_map<Settings::NativeMotion::Values, Common::ParamPackage>;
|
using MotionMapping = boost::unordered::unordered_flat_map<Settings::NativeMotion::Values, Common::ParamPackage>;
|
||||||
|
|
||||||
class InputSubsystem {
|
class InputSubsystem {
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ public:
|
|||||||
Id load_const_func_u32x4{};
|
Id load_const_func_u32x4{};
|
||||||
|
|
||||||
// Sirit::Id doesn't play nice with *::set<>
|
// Sirit::Id doesn't play nice with *::set<>
|
||||||
boost::container::unordered_flat_set<u32> non_uniform_ids;
|
boost::unordered::unordered_flat_set<u32> non_uniform_ids;
|
||||||
|
|
||||||
bool uses_nonuniform_sampled_image{};
|
bool uses_nonuniform_sampled_image{};
|
||||||
bool uses_nonuniform_storage_image{};
|
bool uses_nonuniform_storage_image{};
|
||||||
|
|||||||
@@ -127,9 +127,9 @@ protected:
|
|||||||
u32 start_address{};
|
u32 start_address{};
|
||||||
bool is_proprietary_driver{};
|
bool is_proprietary_driver{};
|
||||||
public:
|
public:
|
||||||
boost::container::unordered_flat_map<CbufWordKey, u32, CbufWordKeyHash> cbuf_word_cache;
|
boost::unordered::unordered_flat_map<CbufWordKey, u32, CbufWordKeyHash> cbuf_word_cache;
|
||||||
boost::container::unordered_flat_map<HandleKey, u32, HandleKeyHash> handle_cache;
|
boost::unordered::unordered_flat_map<HandleKey, u32, HandleKeyHash> handle_cache;
|
||||||
boost::container::unordered_flat_map<const IR::Inst*, ConstBufferAddr> track_cache;
|
boost::unordered::unordered_flat_map<const IR::Inst*, ConstBufferAddr> track_cache;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Shader
|
} // namespace Shader
|
||||||
|
|||||||
@@ -391,7 +391,7 @@ private:
|
|||||||
std::optional<Node> return_label) {
|
std::optional<Node> return_label) {
|
||||||
Statement* const false_stmt{pool.Create(Identity{}, IR::Condition{false}, &root_stmt)};
|
Statement* const false_stmt{pool.Create(Identity{}, IR::Condition{false}, &root_stmt)};
|
||||||
Tree& root{root_stmt.children};
|
Tree& root{root_stmt.children};
|
||||||
boost::container::unordered_flat_map<Flow::Block*, Node> local_labels;
|
boost::unordered::unordered_flat_map<Flow::Block*, Node> local_labels;
|
||||||
local_labels.reserve(function.blocks.size());
|
local_labels.reserve(function.blocks.size());
|
||||||
|
|
||||||
for (Flow::Block& block : function.blocks) {
|
for (Flow::Block& block : function.blocks) {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
mutable std::mutex mutex;
|
mutable std::mutex mutex;
|
||||||
boost::container::unordered_flat_map<std::thread::id, u32> ids;
|
boost::unordered::unordered_flat_map<std::thread::id, u32> ids;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TestControl1 {
|
class TestControl1 {
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::container::unordered_flat_map<u64, int> page_table;
|
boost::unordered::unordered_flat_map<u64, int> page_table;
|
||||||
std::vector<std::tuple<DAddr, u64, int>> calls;
|
std::vector<std::tuple<DAddr, u64, int>> calls;
|
||||||
size_t update_calls = 0;
|
size_t update_calls = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ private:
|
|||||||
std::array<Manager*, NUM_HIGH_PAGES> top_tier{};
|
std::array<Manager*, NUM_HIGH_PAGES> top_tier{};
|
||||||
std::deque<std::array<Manager, MANAGER_POOL_SIZE>> manager_pool;
|
std::deque<std::array<Manager, MANAGER_POOL_SIZE>> manager_pool;
|
||||||
std::deque<Manager*> free_managers;
|
std::deque<Manager*> free_managers;
|
||||||
boost::container::unordered_flat_set<u32> cached_pages;
|
boost::unordered::unordered_flat_set<u32> cached_pages;
|
||||||
DeviceTracker* device_tracker = nullptr;
|
DeviceTracker* device_tracker = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -89,14 +89,14 @@ protected:
|
|||||||
|
|
||||||
std::deque<P> channel_storage;
|
std::deque<P> channel_storage;
|
||||||
std::deque<size_t> free_channel_ids;
|
std::deque<size_t> free_channel_ids;
|
||||||
boost::container::unordered_flat_map<s32, size_t> channel_map;
|
boost::unordered::unordered_flat_map<s32, size_t> channel_map;
|
||||||
std::vector<size_t> active_channel_ids;
|
std::vector<size_t> active_channel_ids;
|
||||||
struct AddressSpaceRef {
|
struct AddressSpaceRef {
|
||||||
size_t ref_count;
|
size_t ref_count;
|
||||||
size_t storage_id;
|
size_t storage_id;
|
||||||
Tegra::MemoryManager* gpu_memory;
|
Tegra::MemoryManager* gpu_memory;
|
||||||
};
|
};
|
||||||
boost::container::unordered_flat_map<size_t, AddressSpaceRef> address_spaces;
|
boost::unordered::unordered_flat_map<size_t, AddressSpaceRef> address_spaces;
|
||||||
mutable std::mutex config_mutex;
|
mutable std::mutex config_mutex;
|
||||||
|
|
||||||
virtual void OnGPUASRegister([[maybe_unused]] size_t map_id) {}
|
virtual void OnGPUASRegister([[maybe_unused]] size_t map_id) {}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public:
|
|||||||
void DeclareChannel(std::shared_ptr<ChannelState> new_channel);
|
void DeclareChannel(std::shared_ptr<ChannelState> new_channel);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::container::unordered_flat_map<s32, std::shared_ptr<ChannelState>> channels;
|
boost::unordered::unordered_flat_map<s32, std::shared_ptr<ChannelState>> channels;
|
||||||
std::mutex scheduling_guard;
|
std::mutex scheduling_guard;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3111,7 +3111,7 @@ public:
|
|||||||
|
|
||||||
void SetHLEReplacementAttributeType(u32 bank, u32 offset, HLEReplacementAttributeType name);
|
void SetHLEReplacementAttributeType(u32 bank, u32 offset, HLEReplacementAttributeType name);
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, HLEReplacementAttributeType> replace_table;
|
boost::unordered::unordered_flat_map<u64, HLEReplacementAttributeType> replace_table;
|
||||||
|
|
||||||
static_assert(sizeof(Regs) == Regs::NUM_REGS * sizeof(u32), "Maxwell3D Regs has wrong size");
|
static_assert(sizeof(Regs) == Regs::NUM_REGS * sizeof(u32), "Maxwell3D Regs has wrong size");
|
||||||
static_assert(std::is_trivially_copyable_v<Regs>, "Maxwell3D Regs must be trivially copyable");
|
static_assert(std::is_trivially_copyable_v<Regs>, "Maxwell3D Regs must be trivially copyable");
|
||||||
|
|||||||
@@ -925,7 +925,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct ConverterFactory::ConverterFactoryImpl {
|
struct ConverterFactory::ConverterFactoryImpl {
|
||||||
boost::container::unordered_flat_map<RenderTargetFormat, std::unique_ptr<Converter>> converters_cache;
|
boost::unordered::unordered_flat_map<RenderTargetFormat, std::unique_ptr<Converter>> converters_cache;
|
||||||
};
|
};
|
||||||
|
|
||||||
ConverterFactory::ConverterFactory() {
|
ConverterFactory::ConverterFactory() {
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ struct GPU::Impl {
|
|||||||
std::unique_ptr<Core::Frontend::GraphicsContext> cpu_context;
|
std::unique_ptr<Core::Frontend::GraphicsContext> cpu_context;
|
||||||
|
|
||||||
Tegra::Control::Scheduler scheduler;
|
Tegra::Control::Scheduler scheduler;
|
||||||
boost::container::unordered_flat_map<s32, std::shared_ptr<Tegra::Control::ChannelState>> channels;
|
boost::unordered::unordered_flat_map<s32, std::shared_ptr<Tegra::Control::ChannelState>> channels;
|
||||||
Tegra::Control::ChannelState* current_channel;
|
Tegra::Control::ChannelState* current_channel;
|
||||||
s32 bound_channel{-1};
|
s32 bound_channel{-1};
|
||||||
|
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ private:
|
|||||||
mutable std::mutex ring_buffer_mutex;
|
mutable std::mutex ring_buffer_mutex;
|
||||||
|
|
||||||
// Memory tracking
|
// Memory tracking
|
||||||
boost::container::unordered_flat_map<uintptr_t, MemoryAllocationEntry> memory_allocations;
|
boost::unordered::unordered_flat_map<uintptr_t, MemoryAllocationEntry> memory_allocations;
|
||||||
mutable std::mutex memory_mutex;
|
mutable std::mutex memory_mutex;
|
||||||
|
|
||||||
// Statistics
|
// Statistics
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::mutex m_mutex{};
|
std::mutex m_mutex{};
|
||||||
boost::container::unordered_flat_map<s32, FrameDevice> m_frame_devices;
|
boost::unordered::unordered_flat_map<s32, FrameDevice> m_frame_devices;
|
||||||
|
|
||||||
static constexpr size_t MAX_PRESENT_QUEUE = 100;
|
static constexpr size_t MAX_PRESENT_QUEUE = 100;
|
||||||
static constexpr size_t MAX_DECODE_MAP = 200;
|
static constexpr size_t MAX_DECODE_MAP = 200;
|
||||||
|
|||||||
@@ -238,8 +238,8 @@ struct MacroEngine {
|
|||||||
AnyCachedMacro program;
|
AnyCachedMacro program;
|
||||||
u64 hash{};
|
u64 hash{};
|
||||||
};
|
};
|
||||||
boost::container::unordered_flat_map<u32, CacheInfo> macro_cache;
|
boost::unordered::unordered_flat_map<u32, CacheInfo> macro_cache;
|
||||||
boost::container::unordered_flat_map<u32, std::vector<u32>> uploaded_macro_code;
|
boost::unordered::unordered_flat_map<u32, std::vector<u32>> uploaded_macro_code;
|
||||||
bool is_interpreted;
|
bool is_interpreted;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ private:
|
|||||||
|
|
||||||
mutable std::recursive_mutex mutex;
|
mutable std::recursive_mutex mutex;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, std::vector<CachedQuery>> cached_queries;
|
boost::unordered::unordered_flat_map<u64, std::vector<CachedQuery>> cached_queries;
|
||||||
|
|
||||||
std::array<CounterStream, VideoCore::NumQueryTypes> streams;
|
std::array<CounterStream, VideoCore::NumQueryTypes> streams;
|
||||||
|
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using ContentCache = boost::container::unordered_flat_map<u64, boost::container::unordered_flat_map<u32, QueryLocation>>;
|
using ContentCache = boost::unordered::unordered_flat_map<u64, boost::unordered::unordered_flat_map<u32, QueryLocation>>;
|
||||||
|
|
||||||
void InvalidateQuery(QueryLocation location);
|
void InvalidateQuery(QueryLocation location);
|
||||||
bool IsQueryDirty(QueryLocation location);
|
bool IsQueryDirty(QueryLocation location);
|
||||||
@@ -169,7 +169,7 @@ protected:
|
|||||||
void RequestGuestHostSync();
|
void RequestGuestHostSync();
|
||||||
void UnregisterPending();
|
void UnregisterPending();
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, boost::container::unordered_flat_map<u32, QueryLocation>> cached_queries;
|
boost::unordered::unordered_flat_map<u64, boost::unordered::unordered_flat_map<u32, QueryLocation>> cached_queries;
|
||||||
std::mutex cache_mutex;
|
std::mutex cache_mutex;
|
||||||
|
|
||||||
struct QueryCacheBaseImpl;
|
struct QueryCacheBaseImpl;
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ private:
|
|||||||
u32 index_buffer_offset = 0;
|
u32 index_buffer_offset = 0;
|
||||||
|
|
||||||
u64 device_access_memory;
|
u64 device_access_memory;
|
||||||
boost::container::unordered_flat_map<GPUVAddr, OGLTransformFeedback> tfb_objects;
|
boost::unordered::unordered_flat_map<GPUVAddr, OGLTransformFeedback> tfb_objects;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct BufferCacheParams {
|
struct BufferCacheParams {
|
||||||
|
|||||||
@@ -82,8 +82,8 @@ private:
|
|||||||
GraphicsPipeline* current_pipeline{};
|
GraphicsPipeline* current_pipeline{};
|
||||||
|
|
||||||
ShaderContext::ShaderPools main_pools;
|
ShaderContext::ShaderPools main_pools;
|
||||||
boost::container::unordered_flat_map<GraphicsPipelineKey, std::unique_ptr<GraphicsPipeline>> graphics_cache;
|
boost::unordered::unordered_flat_map<GraphicsPipelineKey, std::unique_ptr<GraphicsPipeline>> graphics_cache;
|
||||||
boost::container::unordered_flat_map<ComputePipelineKey, std::unique_ptr<ComputePipeline>> compute_cache;
|
boost::unordered::unordered_flat_map<ComputePipelineKey, std::unique_ptr<ComputePipeline>> compute_cache;
|
||||||
|
|
||||||
Shader::Profile profile;
|
Shader::Profile profile;
|
||||||
Shader::HostTranslateInfo host_info;
|
Shader::HostTranslateInfo host_info;
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ private:
|
|||||||
UtilShaders util_shaders;
|
UtilShaders util_shaders;
|
||||||
FormatConversionPass format_conversion_pass;
|
FormatConversionPass format_conversion_pass;
|
||||||
|
|
||||||
std::array<boost::container::unordered_flat_map<GLenum, FormatProperties>, 3> format_properties;
|
std::array<boost::unordered::unordered_flat_map<GLenum, FormatProperties>, 3> format_properties;
|
||||||
bool has_broken_texture_view_formats = false;
|
bool has_broken_texture_view_formats = false;
|
||||||
|
|
||||||
OGLTexture null_image_1d_array;
|
OGLTexture null_image_1d_array;
|
||||||
|
|||||||
@@ -164,8 +164,8 @@ private:
|
|||||||
GraphicsPipelineCacheKey graphics_key{};
|
GraphicsPipelineCacheKey graphics_key{};
|
||||||
GraphicsPipeline* current_pipeline{};
|
GraphicsPipeline* current_pipeline{};
|
||||||
|
|
||||||
boost::container::unordered_flat_map<ComputePipelineCacheKey, std::unique_ptr<ComputePipeline>> compute_cache;
|
boost::unordered::unordered_flat_map<ComputePipelineCacheKey, std::unique_ptr<ComputePipeline>> compute_cache;
|
||||||
boost::container::unordered_flat_map<GraphicsPipelineCacheKey, std::unique_ptr<GraphicsPipeline>> graphics_cache;
|
boost::unordered::unordered_flat_map<GraphicsPipelineCacheKey, std::unique_ptr<GraphicsPipeline>> graphics_cache;
|
||||||
|
|
||||||
ShaderPools main_pools;
|
ShaderPools main_pools;
|
||||||
|
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ public:
|
|||||||
sync_values_stash.emplace_back();
|
sync_values_stash.emplace_back();
|
||||||
std::vector<HostSyncValues>* sync_values = &sync_values_stash.back();
|
std::vector<HostSyncValues>* sync_values = &sync_values_stash.back();
|
||||||
sync_values->reserve(num_slots_used);
|
sync_values->reserve(num_slots_used);
|
||||||
boost::container::unordered_flat_map<size_t, std::pair<size_t, size_t>> offsets;
|
boost::unordered::unordered_flat_map<size_t, std::pair<size_t, size_t>> offsets;
|
||||||
resolve_buffers.clear();
|
resolve_buffers.clear();
|
||||||
size_t resolve_buffer_index = ObtainBuffer<true>(num_slots_used);
|
size_t resolve_buffer_index = ObtainBuffer<true>(num_slots_used);
|
||||||
resolve_buffers.push_back(resolve_buffer_index);
|
resolve_buffers.push_back(resolve_buffer_index);
|
||||||
@@ -429,7 +429,7 @@ private:
|
|||||||
template <bool is_ordered, typename Func>
|
template <bool is_ordered, typename Func>
|
||||||
void ApplyBanksWideOp(std::vector<size_t>& queries, Func&& func) {
|
void ApplyBanksWideOp(std::vector<size_t>& queries, Func&& func) {
|
||||||
std::conditional_t<is_ordered, std::map<size_t, std::pair<size_t, size_t>>,
|
std::conditional_t<is_ordered, std::map<size_t, std::pair<size_t, size_t>>,
|
||||||
boost::container::unordered_flat_map<size_t, std::pair<size_t, size_t>>>
|
boost::unordered::unordered_flat_map<size_t, std::pair<size_t, size_t>>>
|
||||||
indexer;
|
indexer;
|
||||||
for (auto q : queries) {
|
for (auto q : queries) {
|
||||||
auto* query = GetQuery(q);
|
auto* query = GetQuery(q);
|
||||||
@@ -758,7 +758,7 @@ public:
|
|||||||
|
|
||||||
void SyncWrites() override {
|
void SyncWrites() override {
|
||||||
CloseCounter();
|
CloseCounter();
|
||||||
boost::container::unordered_flat_map<size_t, std::vector<HostSyncValues>> sync_values_stash;
|
boost::unordered::unordered_flat_map<size_t, std::vector<HostSyncValues>> sync_values_stash;
|
||||||
for (auto q : pending_sync) {
|
for (auto q : pending_sync) {
|
||||||
auto* query = GetQuery(q);
|
auto* query = GetQuery(q);
|
||||||
if (True(query->flags & VideoCommon::QueryFlagBits::IsRewritten)) {
|
if (True(query->flags & VideoCommon::QueryFlagBits::IsRewritten)) {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const Device* device{};
|
const Device* device{};
|
||||||
boost::container::unordered_flat_map<RenderPassKey, vk::RenderPass> cache;
|
boost::unordered::unordered_flat_map<RenderPassKey, vk::RenderPass> cache;
|
||||||
std::mutex mutex;
|
std::mutex mutex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::vector<MsaaScratchImage> msaa_scratch_images;
|
std::vector<MsaaScratchImage> msaa_scratch_images;
|
||||||
boost::container::unordered_flat_map<VkImage, ResolveShadow> resolve_shadows;
|
boost::unordered::unordered_flat_map<VkImage, ResolveShadow> resolve_shadows;
|
||||||
std::vector<std::pair<u64, ResolveShadow>> pending_resolve_shadows;
|
std::vector<std::pair<u64, ResolveShadow>> pending_resolve_shadows;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ private:
|
|||||||
mutable std::mutex lookup_mutex;
|
mutable std::mutex lookup_mutex;
|
||||||
std::mutex invalidation_mutex;
|
std::mutex invalidation_mutex;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u64, std::unique_ptr<Entry>> lookup_cache;
|
boost::unordered::unordered_flat_map<u64, std::unique_ptr<Entry>> lookup_cache;
|
||||||
boost::container::unordered_flat_map<u64, std::vector<Entry*>> invalidation_cache;
|
boost::unordered::unordered_flat_map<u64, std::vector<Entry*>> invalidation_cache;
|
||||||
std::vector<std::unique_ptr<ShaderInfo>> storage;
|
std::vector<std::unique_ptr<ShaderInfo>> storage;
|
||||||
std::vector<Entry*> marked_for_removal;
|
std::vector<Entry*> marked_for_removal;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -80,10 +80,10 @@ protected:
|
|||||||
GPUVAddr program_base{};
|
GPUVAddr program_base{};
|
||||||
|
|
||||||
std::vector<u64> code;
|
std::vector<u64> code;
|
||||||
boost::container::unordered_flat_map<u32, Shader::TextureType> texture_types;
|
boost::unordered::unordered_flat_map<u32, Shader::TextureType> texture_types;
|
||||||
boost::container::unordered_flat_map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
|
boost::unordered::unordered_flat_map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
|
||||||
boost::container::unordered_flat_map<u64, u32> cbuf_values;
|
boost::unordered::unordered_flat_map<u64, u32> cbuf_values;
|
||||||
boost::container::unordered_flat_map<u64, Shader::ReplaceConstant> cbuf_replacements;
|
boost::unordered::unordered_flat_map<u64, Shader::ReplaceConstant> cbuf_replacements;
|
||||||
|
|
||||||
u32 local_memory_size{};
|
u32 local_memory_size{};
|
||||||
u32 texture_bound{};
|
u32 texture_bound{};
|
||||||
@@ -202,10 +202,10 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<u64> code;
|
std::vector<u64> code;
|
||||||
boost::container::unordered_flat_map<u32, Shader::TextureType> texture_types;
|
boost::unordered::unordered_flat_map<u32, Shader::TextureType> texture_types;
|
||||||
boost::container::unordered_flat_map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
|
boost::unordered::unordered_flat_map<u32, Shader::TexturePixelFormat> texture_pixel_formats;
|
||||||
boost::container::unordered_flat_map<u64, u32> cbuf_values;
|
boost::unordered::unordered_flat_map<u64, u32> cbuf_values;
|
||||||
boost::container::unordered_flat_map<u64, Shader::ReplaceConstant> cbuf_replacements;
|
boost::unordered::unordered_flat_map<u64, Shader::ReplaceConstant> cbuf_replacements;
|
||||||
std::array<u32, 3> workgroup_size{};
|
std::array<u32, 3> workgroup_size{};
|
||||||
u32 local_memory_size{};
|
u32 local_memory_size{};
|
||||||
u32 shared_memory_size{};
|
u32 shared_memory_size{};
|
||||||
|
|||||||
@@ -2191,7 +2191,7 @@ void TextureCache<P>::UnregisterImage(ImageId image_id) {
|
|||||||
image.flags &= ~ImageFlagBits::BadOverlap;
|
image.flags &= ~ImageFlagBits::BadOverlap;
|
||||||
lru_cache.Free(image.lru_index);
|
lru_cache.Free(image.lru_index);
|
||||||
const auto& clear_page_table =
|
const auto& clear_page_table =
|
||||||
[image_id](u64 page, boost::container::unordered_flat_map<u64, std::vector<ImageId>, Common::IdentityHash<u64>>& selected_page_table) {
|
[image_id](u64 page, boost::unordered::unordered_flat_map<u64, std::vector<ImageId>, Common::IdentityHash<u64>>& selected_page_table) {
|
||||||
const auto page_it = selected_page_table.find(page);
|
const auto page_it = selected_page_table.find(page);
|
||||||
if (page_it == selected_page_table.end()) {
|
if (page_it == selected_page_table.end()) {
|
||||||
ASSERT_MSG(false, "Unregistering unregistered page={:#x}", page << YUZU_PAGEBITS);
|
ASSERT_MSG(false, "Unregistering unregistered page={:#x}", page << YUZU_PAGEBITS);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ struct AsyncDecodeContext {
|
|||||||
std::atomic_bool complete;
|
std::atomic_bool complete;
|
||||||
};
|
};
|
||||||
|
|
||||||
using TextureCacheGPUMap = boost::container::unordered_flat_map<u64, std::vector<ImageId>, Common::IdentityHash<u64>>;
|
using TextureCacheGPUMap = boost::unordered::unordered_flat_map<u64, std::vector<ImageId>, Common::IdentityHash<u64>>;
|
||||||
|
|
||||||
class TextureCacheChannelInfo : public ChannelInfo {
|
class TextureCacheChannelInfo : public ChannelInfo {
|
||||||
public:
|
public:
|
||||||
@@ -87,8 +87,8 @@ public:
|
|||||||
std::unordered_map<TICEntry, ImageViewId> image_views;
|
std::unordered_map<TICEntry, ImageViewId> image_views;
|
||||||
std::unordered_map<TSCEntry, SamplerId> samplers;
|
std::unordered_map<TSCEntry, SamplerId> samplers;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<u32, SamplerId> sampler_ids;
|
boost::unordered::unordered_flat_map<u32, SamplerId> sampler_ids;
|
||||||
boost::container::unordered_flat_map<u32, ImageViewId> image_view_ids;
|
boost::unordered::unordered_flat_map<u32, ImageViewId> image_view_ids;
|
||||||
|
|
||||||
TextureCacheGPUMap* gpu_page_table = nullptr;
|
TextureCacheGPUMap* gpu_page_table = nullptr;
|
||||||
TextureCacheGPUMap* sparse_page_table = nullptr;
|
TextureCacheGPUMap* sparse_page_table = nullptr;
|
||||||
@@ -442,9 +442,9 @@ private:
|
|||||||
FramebufferId last_framebuffer_id{};
|
FramebufferId last_framebuffer_id{};
|
||||||
u64 last_framebuffer_serial = 0;
|
u64 last_framebuffer_serial = 0;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<RenderTargets, FramebufferId> framebuffers;
|
boost::unordered::unordered_flat_map<RenderTargets, FramebufferId> framebuffers;
|
||||||
boost::container::unordered_flat_map<u64, std::vector<ImageMapId>, Common::IdentityHash<u64>> page_table;
|
boost::unordered::unordered_flat_map<u64, std::vector<ImageMapId>, Common::IdentityHash<u64>> page_table;
|
||||||
boost::container::unordered_flat_map<ImageId, boost::container::small_vector<ImageViewId, 16>> sparse_views;
|
boost::unordered::unordered_flat_map<ImageId, boost::container::small_vector<ImageViewId, 16>> sparse_views;
|
||||||
|
|
||||||
DAddr virtual_invalid_space{};
|
DAddr virtual_invalid_space{};
|
||||||
|
|
||||||
@@ -500,7 +500,7 @@ private:
|
|||||||
DelayedDestructionRing<ImageView, TICKS_TO_DESTROY> sentenced_image_view;
|
DelayedDestructionRing<ImageView, TICKS_TO_DESTROY> sentenced_image_view;
|
||||||
DelayedDestructionRing<Framebuffer, TICKS_TO_DESTROY> sentenced_framebuffers;
|
DelayedDestructionRing<Framebuffer, TICKS_TO_DESTROY> sentenced_framebuffers;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<GPUVAddr, ImageAllocId> image_allocs_table;
|
boost::unordered::unordered_flat_map<GPUVAddr, ImageAllocId> image_allocs_table;
|
||||||
|
|
||||||
Common::ScratchBuffer<u8> swizzle_data_buffer;
|
Common::ScratchBuffer<u8> swizzle_data_buffer;
|
||||||
Common::ScratchBuffer<u8> unswizzle_data_buffer;
|
Common::ScratchBuffer<u8> unswizzle_data_buffer;
|
||||||
@@ -517,17 +517,17 @@ private:
|
|||||||
|
|
||||||
// Join caching
|
// Join caching
|
||||||
boost::container::small_vector<ImageId, 4> join_overlap_ids;
|
boost::container::small_vector<ImageId, 4> join_overlap_ids;
|
||||||
boost::container::unordered_flat_set<ImageId> join_overlaps_found;
|
boost::unordered::unordered_flat_set<ImageId> join_overlaps_found;
|
||||||
boost::container::small_vector<ImageId, 4> join_left_aliased_ids;
|
boost::container::small_vector<ImageId, 4> join_left_aliased_ids;
|
||||||
boost::container::small_vector<ImageId, 4> join_right_aliased_ids;
|
boost::container::small_vector<ImageId, 4> join_right_aliased_ids;
|
||||||
boost::container::unordered_flat_set<ImageId> join_ignore_textures;
|
boost::unordered::unordered_flat_set<ImageId> join_ignore_textures;
|
||||||
boost::container::small_vector<ImageId, 4> join_bad_overlap_ids;
|
boost::container::small_vector<ImageId, 4> join_bad_overlap_ids;
|
||||||
struct JoinCopy {
|
struct JoinCopy {
|
||||||
bool is_alias;
|
bool is_alias;
|
||||||
ImageId id;
|
ImageId id;
|
||||||
};
|
};
|
||||||
boost::container::small_vector<JoinCopy, 4> join_copies_to_do;
|
boost::container::small_vector<JoinCopy, 4> join_copies_to_do;
|
||||||
boost::container::unordered_flat_map<ImageId, size_t> join_alias_indices;
|
boost::unordered::unordered_flat_map<ImageId, size_t> join_alias_indices;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace VideoCommon
|
} // namespace VideoCommon
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ VkFormatFeatureFlags GetFormatFeatures(VkFormatProperties properties, FormatType
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::container::unordered_flat_map<VkFormat, VkFormatProperties> GetFormatProperties(vk::PhysicalDevice physical) {
|
boost::unordered::unordered_flat_map<VkFormat, VkFormatProperties> GetFormatProperties(vk::PhysicalDevice physical) {
|
||||||
static constexpr std::array formats{
|
static constexpr std::array formats{
|
||||||
VK_FORMAT_A1R5G5B5_UNORM_PACK16,
|
VK_FORMAT_A1R5G5B5_UNORM_PACK16,
|
||||||
VK_FORMAT_A2B10G10R10_SINT_PACK32,
|
VK_FORMAT_A2B10G10R10_SINT_PACK32,
|
||||||
@@ -310,7 +310,7 @@ boost::container::unordered_flat_map<VkFormat, VkFormatProperties> GetFormatProp
|
|||||||
VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
|
VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
|
||||||
VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
|
VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
|
||||||
};
|
};
|
||||||
boost::container::unordered_flat_map<VkFormat, VkFormatProperties> format_properties;
|
boost::unordered::unordered_flat_map<VkFormat, VkFormatProperties> format_properties;
|
||||||
for (const auto format : formats) {
|
for (const auto format : formats) {
|
||||||
format_properties.emplace(format, physical.GetFormatProperties(format));
|
format_properties.emplace(format, physical.GetFormatProperties(format));
|
||||||
}
|
}
|
||||||
@@ -318,7 +318,7 @@ boost::container::unordered_flat_map<VkFormat, VkFormatProperties> GetFormatProp
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__ANDROID__) && defined(ARCHITECTURE_arm64)
|
#if defined(__ANDROID__) && defined(ARCHITECTURE_arm64)
|
||||||
void OverrideBcnFormats(boost::container::unordered_flat_map<VkFormat, VkFormatProperties>& format_properties) {
|
void OverrideBcnFormats(boost::unordered::unordered_flat_map<VkFormat, VkFormatProperties>& format_properties) {
|
||||||
// These properties are extracted from Adreno driver 512.687.0
|
// These properties are extracted from Adreno driver 512.687.0
|
||||||
constexpr VkFormatFeatureFlags tiling_features{VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
|
constexpr VkFormatFeatureFlags tiling_features{VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
|
||||||
VK_FORMAT_FEATURE_BLIT_SRC_BIT |
|
VK_FORMAT_FEATURE_BLIT_SRC_BIT |
|
||||||
@@ -1677,7 +1677,7 @@ void Device::CollectToolingInfo() {
|
|||||||
std::vector<VkDeviceQueueCreateInfo> Device::GetDeviceQueueCreateInfos() const {
|
std::vector<VkDeviceQueueCreateInfo> Device::GetDeviceQueueCreateInfos() const {
|
||||||
static constexpr float QUEUE_PRIORITY = 1.0f;
|
static constexpr float QUEUE_PRIORITY = 1.0f;
|
||||||
|
|
||||||
boost::container::unordered_flat_set<u32> unique_queue_families{graphics_family, present_family};
|
boost::unordered::unordered_flat_set<u32> unique_queue_families{graphics_family, present_family};
|
||||||
std::vector<VkDeviceQueueCreateInfo> queue_cis;
|
std::vector<VkDeviceQueueCreateInfo> queue_cis;
|
||||||
queue_cis.reserve(unique_queue_families.size());
|
queue_cis.reserve(unique_queue_families.size());
|
||||||
|
|
||||||
|
|||||||
@@ -1242,7 +1242,7 @@ private:
|
|||||||
std::vector<size_t> valid_heap_memory; ///< Heaps used.
|
std::vector<size_t> valid_heap_memory; ///< Heaps used.
|
||||||
|
|
||||||
/// Format properties dictionary.
|
/// Format properties dictionary.
|
||||||
boost::container::unordered_flat_map<VkFormat, VkFormatProperties> format_properties;
|
boost::unordered::unordered_flat_map<VkFormat, VkFormatProperties> format_properties;
|
||||||
|
|
||||||
/// Nsight Aftermath GPU crash tracker
|
/// Nsight Aftermath GPU crash tracker
|
||||||
std::unique_ptr<NsightAftermathTracker> nsight_aftermath_tracker;
|
std::unique_ptr<NsightAftermathTracker> nsight_aftermath_tracker;
|
||||||
|
|||||||
@@ -36,5 +36,5 @@ public:
|
|||||||
private:
|
private:
|
||||||
bool ProfileExistsInMap(const std::string& profile_name) const;
|
bool ProfileExistsInMap(const std::string& profile_name) const;
|
||||||
|
|
||||||
boost::container::unordered_flat_map<std::string, std::unique_ptr<QtConfig>> map_profiles;
|
boost::unordered::unordered_flat_map<std::string, std::unique_ptr<QtConfig>> map_profiles;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ private:
|
|||||||
std::unique_ptr<QPropertyAnimation> fadeout_animation;
|
std::unique_ptr<QPropertyAnimation> fadeout_animation;
|
||||||
|
|
||||||
// Definitions for the differences in text and styling for each stage
|
// Definitions for the differences in text and styling for each stage
|
||||||
boost::container::unordered_flat_map<VideoCore::LoadCallbackStage, const char*> progressbar_style;
|
boost::unordered::unordered_flat_map<VideoCore::LoadCallbackStage, const char*> progressbar_style;
|
||||||
boost::container::unordered_flat_map<VideoCore::LoadCallbackStage, QString> stage_translations;
|
boost::unordered::unordered_flat_map<VideoCore::LoadCallbackStage, QString> stage_translations;
|
||||||
|
|
||||||
// newly generated shaders are added to the end of the file, so when loading and compiling
|
// newly generated shaders are added to the end of the file, so when loading and compiling
|
||||||
// shaders, it will start quickly but end slow if new shaders were added since previous launch.
|
// shaders, it will start quickly but end slow if new shaders were added since previous launch.
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ private:
|
|||||||
bool has_mod_perms = false;
|
bool has_mod_perms = false;
|
||||||
QStandardItemModel* player_list;
|
QStandardItemModel* player_list;
|
||||||
std::unique_ptr<Ui::ChatRoom> ui;
|
std::unique_ptr<Ui::ChatRoom> ui;
|
||||||
boost::container::unordered_flat_set<std::string> block_list;
|
boost::unordered::unordered_flat_set<std::string> block_list;
|
||||||
boost::container::unordered_flat_map<std::string, QPixmap> icon_cache;
|
boost::unordered::unordered_flat_map<std::string, QPixmap> icon_cache;
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(Network::ChatEntry);
|
Q_DECLARE_METATYPE(Network::ChatEntry);
|
||||||
|
|||||||
Reference in New Issue
Block a user