mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-06 06:51:18 +12:00
flush file streamer after each write
This commit is contained in:
parent
f71046333d
commit
1752126f5c
4 changed files with 18 additions and 5 deletions
|
@ -1,17 +1,17 @@
|
|||
#include "Cafe/HW/Latte/Renderer/Metal/MetalPipelineCache.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Metal/MetalRenderer.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Metal/LatteToMtl.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Metal/MetalPipelineCompiler.h"
|
||||
|
||||
#include "Cafe/HW/Latte/Core/FetchShader.h"
|
||||
#include "Cafe/HW/Latte/ISA/RegDefines.h"
|
||||
#include "Cafe/HW/Latte/Core/LatteConst.h"
|
||||
#include "Cafe/HW/Latte/Common/RegisterSerializer.h"
|
||||
#include "Cafe/HW/Latte/Core/LatteShaderCache.h"
|
||||
#include "Cemu/FileCache/FileCache.h"
|
||||
#include "Common/precompiled.h"
|
||||
#include "Cafe/HW/Latte/Core/LatteShader.h"
|
||||
#include "Cafe/HW/Latte/ISA/LatteReg.h"
|
||||
#include "HW/Latte/Renderer/Metal/MetalPipelineCompiler.h"
|
||||
#include "Cemu/FileCache/FileCache.h"
|
||||
#include "Common/precompiled.h"
|
||||
#include "util/helpers/helpers.h"
|
||||
#include "config/ActiveSettings.h"
|
||||
|
||||
|
|
|
@ -462,9 +462,15 @@ void FileCache::_addFileInternal(uint64 name1, uint64 name2, const uint8* fileDa
|
|||
// write file data
|
||||
fileStream->SetPosition(this->dataOffset + currentStartOffset);
|
||||
fileStream->writeData(rawData, rawSize);
|
||||
#ifdef __APPLE__
|
||||
fileStream->Flush();
|
||||
#endif
|
||||
// write file table entry
|
||||
fileStream->SetPosition(this->dataOffset + this->fileTableOffset + (uint64)(sizeof(FileTableEntry)*entryIndex));
|
||||
fileStream->writeData(this->fileTableEntries + entryIndex, sizeof(FileTableEntry));
|
||||
#ifdef __APPLE__
|
||||
fileStream->Flush();
|
||||
#endif
|
||||
if (isCompressed)
|
||||
free(rawData);
|
||||
}
|
||||
|
|
|
@ -116,6 +116,11 @@ void FileStream::extract(std::vector<uint8>& data)
|
|||
readData(data.data(), fileSize);
|
||||
}
|
||||
|
||||
void FileStream::Flush()
|
||||
{
|
||||
m_fileStream.flush();
|
||||
}
|
||||
|
||||
uint32 FileStream::readData(void* data, uint32 length)
|
||||
{
|
||||
SyncReadWriteSeek(false);
|
||||
|
|
|
@ -22,6 +22,8 @@ class FileStream
|
|||
bool SetEndOfFile();
|
||||
void extract(std::vector<uint8>& data);
|
||||
|
||||
void Flush();
|
||||
|
||||
// reading
|
||||
uint32 readData(void* data, uint32 length);
|
||||
bool readU64(uint64& v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue