DmaData and Recompiler fixes (#1775)

* liverpool: fix dmadata packet handling

* recompiler: emit a label right after s_branch to prevent dead code interferrence

* specialize barriers
This commit is contained in:
Vladislav Mikhalin 2024-12-14 15:33:06 +03:00 committed by GitHub
parent 3c0c921ef5
commit cafd40f2c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 140 additions and 17 deletions

View file

@ -840,6 +840,10 @@ void Rasterizer::InlineData(VAddr address, const void* value, u32 num_bytes, boo
buffer_cache.InlineData(address, value, num_bytes, is_gds);
}
void Rasterizer::CopyBuffer(VAddr dst, VAddr src, u32 num_bytes, bool dst_gds, bool src_gds) {
buffer_cache.CopyBuffer(dst, src, num_bytes, dst_gds, src_gds);
}
u32 Rasterizer::ReadDataFromGds(u32 gds_offset) {
auto* gds_buf = buffer_cache.GetGdsBuffer();
u32 value;

View file

@ -53,6 +53,7 @@ public:
void ScopedMarkerInsertColor(const std::string_view& str, const u32 color);
void InlineData(VAddr address, const void* value, u32 num_bytes, bool is_gds);
void CopyBuffer(VAddr dst, VAddr src, u32 num_bytes, bool dst_gds, bool src_gds);
u32 ReadDataFromGds(u32 gsd_offset);
bool InvalidateMemory(VAddr addr, u64 size);
bool IsMapped(VAddr addr, u64 size);