mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
I've observed that "FIFO is overflown by GatherPipe" is not real overflow.
Really that happens because the fifo.CPReadWriteDistance is negative. Example: CPReadWriteDistance: -864 CPEnd: 10092672 fifo.CPBase: 9568416 In SMG this is because PI_FIFO_RESET is writing and after fifo.CPReadWriteDistance will be setted to 0. To Prevent that, I've Implemented AbortFrame function in the CommmandProcessor. It should fix overflown because of that. Note: There is other issue (Issue 2846) where the fifo.CPReadWriteDistance is negative too but the effect is different. I'm working to solve this. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6083 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -40,6 +40,7 @@ typedef void (__cdecl* TVideo_Write32)(const u32 _Data, const u32 _Address);
|
||||
typedef void (__cdecl* TVideo_GatherPipeBursted)();
|
||||
typedef void (__cdecl* TVideo_WaitForFrameFinish)();
|
||||
typedef bool (__cdecl* TVideo_IsFifoBusy)();
|
||||
typedef void (__cdecl* TVideo_AbortFrame)();
|
||||
|
||||
class PluginVideo : public CPlugin
|
||||
{
|
||||
@ -68,6 +69,7 @@ public:
|
||||
TVideo_GatherPipeBursted Video_GatherPipeBursted;
|
||||
TVideo_WaitForFrameFinish Video_WaitForFrameFinish;
|
||||
TVideo_IsFifoBusy Video_IsFifoBusy;
|
||||
TVideo_AbortFrame Video_AbortFrame;
|
||||
private:
|
||||
bool validVideo;
|
||||
};
|
||||
|
Reference in New Issue
Block a user