TMEM: Handle savestate and init
This commit is contained in:
parent
88bd10cd30
commit
a33cf27885
|
@ -73,7 +73,7 @@ static Common::Event g_compressAndDumpStateSyncEvent;
|
||||||
static std::thread g_save_thread;
|
static std::thread g_save_thread;
|
||||||
|
|
||||||
// Don't forget to increase this after doing changes on the savestate system
|
// Don't forget to increase this after doing changes on the savestate system
|
||||||
constexpr u32 STATE_VERSION = 138; // Last changed in PR 9670
|
constexpr u32 STATE_VERSION = 139; // Last changed in PR 8350
|
||||||
|
|
||||||
// Maps savestate versions to Dolphin versions.
|
// Maps savestate versions to Dolphin versions.
|
||||||
// Versions after 42 don't need to be added to this list,
|
// Versions after 42 don't need to be added to this list,
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
|
#include "Common/ChunkFile.h"
|
||||||
|
|
||||||
#include "VideoCommon/BPMemory.h"
|
#include "VideoCommon/BPMemory.h"
|
||||||
#include "VideoCommon/TMEM.h"
|
#include "VideoCommon/TMEM.h"
|
||||||
|
|
||||||
|
@ -32,9 +34,9 @@ struct TextureUnitState
|
||||||
bool Overlaps(const BankConfig& other) const;
|
bool Overlaps(const BankConfig& other) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
BankConfig even;
|
BankConfig even = {};
|
||||||
BankConfig odd;
|
BankConfig odd = {};
|
||||||
State state;
|
State state = State::INVALID;
|
||||||
|
|
||||||
bool Overlaps(const TextureUnitState& other) const;
|
bool Overlaps(const TextureUnitState& other) const;
|
||||||
};
|
};
|
||||||
|
@ -221,4 +223,14 @@ bool IsValid(u32 unit)
|
||||||
return s_unit[unit].state != TextureUnitState::State::INVALID;
|
return s_unit[unit].state != TextureUnitState::State::INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
s_unit.fill({});
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoState(PointerWrap& p)
|
||||||
|
{
|
||||||
|
p.DoArray(s_unit);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace TMEM
|
} // namespace TMEM
|
||||||
|
|
|
@ -18,4 +18,8 @@ void Bind(u32 unit, int num_blocks_width, int num_blocks_height, bool is_mipmapp
|
||||||
void FinalizeBinds(BitSet32 used_textures);
|
void FinalizeBinds(BitSet32 used_textures);
|
||||||
bool IsCached(u32 unit);
|
bool IsCached(u32 unit);
|
||||||
bool IsValid(u32 unit);
|
bool IsValid(u32 unit);
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
void DoState(PointerWrap& p);
|
||||||
|
|
||||||
} // namespace TMEM
|
} // namespace TMEM
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
#include "VideoCommon/PixelEngine.h"
|
#include "VideoCommon/PixelEngine.h"
|
||||||
#include "VideoCommon/PixelShaderManager.h"
|
#include "VideoCommon/PixelShaderManager.h"
|
||||||
#include "VideoCommon/RenderBase.h"
|
#include "VideoCommon/RenderBase.h"
|
||||||
|
#include "VideoCommon/TMEM.h"
|
||||||
#include "VideoCommon/TextureCacheBase.h"
|
#include "VideoCommon/TextureCacheBase.h"
|
||||||
#include "VideoCommon/VertexLoaderManager.h"
|
#include "VideoCommon/VertexLoaderManager.h"
|
||||||
#include "VideoCommon/VertexManagerBase.h"
|
#include "VideoCommon/VertexManagerBase.h"
|
||||||
|
@ -322,6 +323,7 @@ void VideoBackendBase::InitializeShared()
|
||||||
VertexShaderManager::Init();
|
VertexShaderManager::Init();
|
||||||
GeometryShaderManager::Init();
|
GeometryShaderManager::Init();
|
||||||
PixelShaderManager::Init();
|
PixelShaderManager::Init();
|
||||||
|
TMEM::Init();
|
||||||
|
|
||||||
g_Config.VerifyValidity();
|
g_Config.VerifyValidity();
|
||||||
UpdateActiveConfig();
|
UpdateActiveConfig();
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "VideoCommon/PixelEngine.h"
|
#include "VideoCommon/PixelEngine.h"
|
||||||
#include "VideoCommon/PixelShaderManager.h"
|
#include "VideoCommon/PixelShaderManager.h"
|
||||||
#include "VideoCommon/RenderBase.h"
|
#include "VideoCommon/RenderBase.h"
|
||||||
|
#include "VideoCommon/TMEM.h"
|
||||||
#include "VideoCommon/TextureCacheBase.h"
|
#include "VideoCommon/TextureCacheBase.h"
|
||||||
#include "VideoCommon/TextureDecoder.h"
|
#include "VideoCommon/TextureDecoder.h"
|
||||||
#include "VideoCommon/VertexManagerBase.h"
|
#include "VideoCommon/VertexManagerBase.h"
|
||||||
|
@ -46,6 +47,10 @@ void VideoCommon_DoState(PointerWrap& p)
|
||||||
p.DoArray(texMem);
|
p.DoArray(texMem);
|
||||||
p.DoMarker("texMem");
|
p.DoMarker("texMem");
|
||||||
|
|
||||||
|
// TMEM
|
||||||
|
TMEM::DoState(p);
|
||||||
|
p.DoMarker("TMEM");
|
||||||
|
|
||||||
// FIFO
|
// FIFO
|
||||||
Fifo::DoState(p);
|
Fifo::DoState(p);
|
||||||
p.DoMarker("Fifo");
|
p.DoMarker("Fifo");
|
||||||
|
|
Loading…
Reference in New Issue