[Texture_cache] Better memory handling for devices with lower memory allocations (#233)

Means games like Minecraft Dungeons, Sea of Stars, Luigi Mansion 2, Astroneer, Alan Wake, etc are now playable.
It also cleans up the recent abi.cpp and bindless texture commits a bit.
Everything is in #ifdef ANDROID - The biggest change is CACHING_PAGEBITS = 12.
Without that the way the buffercache grows and joins buffers can cause Android to run out of memory (as you end up with just one big buffer that needs to be copied every time it grows)
Also patches up ffmpeg issues.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/233
Co-authored-by: JPikachu <jpikachu.eden@gmail.com>
Co-committed-by: JPikachu <jpikachu.eden@gmail.com>
This commit is contained in:
JPikachu 2025-06-29 17:14:23 +00:00 committed by JPikachu
parent b5b1d20e1e
commit 91a662431c
15 changed files with 96 additions and 53 deletions

View file

@ -151,7 +151,12 @@ static std::pair<u32, GetAddrInfoError> GetHostByNameRequestImpl(HLERequestConte
// For now, ignore options, which are in input buffer 1 for GetHostByNameRequestWithOptions.
// Prevent resolution of Nintendo servers
if (host.find("srv.nintendo.net") != std::string::npos) {
if (host.find("srv.nintendo.net") != std::string::npos ||
host.find("battle.net") != std::string::npos ||
host.find("microsoft.com") != std::string::npos ||
host.find("mojang.com") != std::string::npos ||
host.find("xboxlive.com") != std::string::npos ||
host.find("minecraftservices.com") != std::string::npos) {
LOG_WARNING(Network, "Resolution of hostname {} requested, returning EAI_AGAIN", host);
return {0, GetAddrInfoError::AGAIN};
}
@ -268,7 +273,12 @@ static std::pair<u32, GetAddrInfoError> GetAddrInfoRequestImpl(HLERequestContext
const std::string host = Common::StringFromBuffer(host_buffer);
// Prevent resolution of Nintendo servers
if (host.find("srv.nintendo.net") != std::string::npos) {
if (host.find("srv.nintendo.net") != std::string::npos ||
host.find("battle.net") != std::string::npos ||
host.find("microsoft.com") != std::string::npos ||
host.find("mojang.com") != std::string::npos ||
host.find("xboxlive.com") != std::string::npos ||
host.find("minecraftservices.com") != std::string::npos) {
LOG_WARNING(Network, "Resolution of hostname {} requested, returning EAI_AGAIN", host);
return {0, GetAddrInfoError::AGAIN};
}