video_core: Initial implementation of pipeline cache (#3816)

* Initial implementation

* Fix for crash caused by stale stages data; cosmetics applied

* Someone mentioned the assert

* Async blob writer

* Fix for memory leak

* Remain stuff

* Async changed to `packaged_task`
This commit is contained in:
psucien
2025-11-29 10:52:08 +01:00
committed by GitHub
parent f9ef57f74b
commit a9f8eaf778
37 changed files with 1339 additions and 166 deletions

View File

@@ -7,9 +7,14 @@
#include <boost/container/small_vector.hpp>
#include "common/types.h"
namespace Serialization {
struct Archive;
}
namespace Shader {
using PFN_SrtWalker = void PS4_SYSV_ABI (*)(const u32* /*user_data*/, u32* /*flat_dst*/);
PFN_SrtWalker RegisterWalkerCode(const u8* ptr, size_t size);
struct PersistentSrtInfo {
// Special case when fetch shader uses step rates.
@@ -20,7 +25,11 @@ struct PersistentSrtInfo {
};
PFN_SrtWalker walker_func{};
size_t walker_func_size{};
u32 flattened_bufsize_dw = 16; // NumUserDataRegs
void Serialize(Serialization::Archive& ar) const;
bool Deserialize(Serialization::Archive& ar);
};
} // namespace Shader