Eliminate TVtxDesc.GetLegacyHex
This commit is contained in:
parent
820d9ffbfa
commit
1500a0119b
|
@ -74,7 +74,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 = 131; // Last changed in PR 9773
|
constexpr u32 STATE_VERSION = 132; // Last changed in PR 9532
|
||||||
|
|
||||||
// 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,
|
||||||
|
|
|
@ -17,9 +17,7 @@ void DoCPState(PointerWrap& p)
|
||||||
p.DoArray(g_main_cp_state.array_strides);
|
p.DoArray(g_main_cp_state.array_strides);
|
||||||
p.Do(g_main_cp_state.matrix_index_a);
|
p.Do(g_main_cp_state.matrix_index_a);
|
||||||
p.Do(g_main_cp_state.matrix_index_b);
|
p.Do(g_main_cp_state.matrix_index_b);
|
||||||
u64 vtx_desc = g_main_cp_state.vtx_desc.GetLegacyHex();
|
p.Do(g_main_cp_state.vtx_desc);
|
||||||
p.Do(vtx_desc);
|
|
||||||
g_main_cp_state.vtx_desc.SetLegacyHex(vtx_desc);
|
|
||||||
p.DoArray(g_main_cp_state.vtx_attr);
|
p.DoArray(g_main_cp_state.vtx_attr);
|
||||||
p.DoMarker("CP Memory");
|
p.DoMarker("CP Memory");
|
||||||
if (p.mode == PointerWrap::MODE_READ)
|
if (p.mode == PointerWrap::MODE_READ)
|
||||||
|
|
|
@ -229,19 +229,6 @@ struct TVtxDesc
|
||||||
|
|
||||||
Low low;
|
Low low;
|
||||||
High high;
|
High high;
|
||||||
|
|
||||||
// This structure was originally packed into bits 0..32, using 33 total bits.
|
|
||||||
// The actual format has 17 bits in the low one and 16 bits in the high one,
|
|
||||||
// but the old format is still supported for compatibility.
|
|
||||||
u64 GetLegacyHex() const { return (low.Hex & 0x1FFFF) | (u64(high.Hex) << 17); }
|
|
||||||
u32 GetLegacyHex0() const { return static_cast<u32>(GetLegacyHex()); }
|
|
||||||
// Only *1* bit is used in this
|
|
||||||
u32 GetLegacyHex1() const { return static_cast<u32>(GetLegacyHex() >> 32); }
|
|
||||||
void SetLegacyHex(u64 value)
|
|
||||||
{
|
|
||||||
low.Hex = value & 0x1FFFF;
|
|
||||||
high.Hex = value >> 17;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
template <>
|
template <>
|
||||||
struct fmt::formatter<TVtxDesc::Low>
|
struct fmt::formatter<TVtxDesc::Low>
|
||||||
|
|
|
@ -24,8 +24,8 @@ public:
|
||||||
VertexLoaderUID() {}
|
VertexLoaderUID() {}
|
||||||
VertexLoaderUID(const TVtxDesc& vtx_desc, const VAT& vat)
|
VertexLoaderUID(const TVtxDesc& vtx_desc, const VAT& vat)
|
||||||
{
|
{
|
||||||
vid[0] = vtx_desc.GetLegacyHex0();
|
vid[0] = vtx_desc.low.Hex;
|
||||||
vid[1] = vtx_desc.GetLegacyHex1();
|
vid[1] = vtx_desc.high.Hex;
|
||||||
vid[2] = vat.g0.Hex;
|
vid[2] = vat.g0.Hex;
|
||||||
vid[3] = vat.g1.Hex;
|
vid[3] = vat.g1.Hex;
|
||||||
vid[4] = vat.g2.Hex;
|
vid[4] = vat.g2.Hex;
|
||||||
|
|
|
@ -29,7 +29,8 @@ TEST(VertexLoaderUID, UniqueEnough)
|
||||||
memset(&vat, 0, sizeof(vat));
|
memset(&vat, 0, sizeof(vat));
|
||||||
uids.insert(VertexLoaderUID(vtx_desc, vat));
|
uids.insert(VertexLoaderUID(vtx_desc, vat));
|
||||||
|
|
||||||
vtx_desc.SetLegacyHex(0xFEDCBA9876543210ull);
|
vtx_desc.low.Hex = 0x76543210;
|
||||||
|
vtx_desc.high.Hex = 0xFEDCBA98;
|
||||||
EXPECT_EQ(uids.end(), uids.find(VertexLoaderUID(vtx_desc, vat)));
|
EXPECT_EQ(uids.end(), uids.find(VertexLoaderUID(vtx_desc, vat)));
|
||||||
uids.insert(VertexLoaderUID(vtx_desc, vat));
|
uids.insert(VertexLoaderUID(vtx_desc, vat));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue