Dolphin, the GameCube and Wii emulator - Forums

Full Version: [PATCH]: Save/Load state fix for OpenGL Plugin + Dual Core enabled.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2

miquelmartos

Mixed part of the OpenGL plugin code, to VideoCommon and restore deleted call function "check_DoState()" needed for X11 enviroment.
This fix issue r3663 merged on r2484 ( I don't know why..), now you can do Load/Save states using OpenGL Video Plugin and Dualcore option enabled.


(12-14-2010, 02:26 AM)miquelmartos Wrote: [ -> ]Mixed part of the OpenGL plugin code, to VideoCommon and restore deleted call function "check_DoState()" needed for X11 enviroment.
This fix issue r3663 merged on r2484 ( I don't know why..), now you can do Load/Save states using OpenGL Video Plugin and Dualcore option enabled.

Huh? You mean that they work? Because I can do them, they just often but not always lead to freezing.

miquelmartos

(12-14-2010, 02:34 AM)xenofears Wrote: [ -> ]Huh? You mean that they work? Because I can do them, they just often but not always lead to freezing.

what operating system are you using?

sjuxax

Doesn't compile here, I get:

/home/jeff/dev/dolphin-emu/dolphin-emu-svn-git/Source/Plugins/Plugin_VideoOGL/Src/main.cpp: In function ‘void Video_Prepare()’:
/home/jeff/dev/dolphin-emu/dolphin-emu-svn-git/Source/Plugins/Plugin_VideoOGL/Src/main.cpp:253:2: error: ‘VertexLoaderManager’ has not been declared
/home/jeff/dev/dolphin-emu/dolphin-emu-svn-git/Source/Plugins/Plugin_VideoOGL/Src/main.cpp: In function ‘void Shutdown()’:
/home/jeff/dev/dolphin-emu/dolphin-emu-svn-git/Source/Plugins/Plugin_VideoOGL/Src/main.cpp:279:2: error: ‘VertexLoaderManager’ has not been declared
(12-14-2010, 08:10 AM)miquelmartos Wrote: [ -> ]
(12-14-2010, 02:34 AM)xenofears Wrote: [ -> ]Huh? You mean that they work? Because I can do them, they just often but not always lead to freezing.

what operating system are you using?

Win7 64-bit

sjuxax

The OP (inadvertently?) removed a needed header from VideoOGL/Src/main.cpp, VertexLoaderManager.h. It does seem to work correctly with that in place. I'll attach a fixed patch in a sec.

miquelmartos

(12-14-2010, 08:25 AM)sjuxax Wrote: [ -> ]The OP (inadvertently?) removed a needed header from VideoOGL/Src/main.cpp, VertexLoaderManager.h. It does seem to work correctly with that in place. I'll attach a fixed patch in a sec.

Uops, my fail, sorry!
Thank you for patch provided.

xenofears, my test are on Ubuntu Linux 10.10 and Windows XP. Nvidia GTS 250 graphics card. In two cases without the patch, dolphin, always freezes when I try to load/save the state.

I'm the only one with this problem? Anyone else happens?
Not sure about the others, but I'm too lazy to look at the patch since you changed stuff AND moved it at the same time, i.e. I can't see the difference in your code without comparing line per line...
No offense, but meh.. Big Grin

miquelmartos

(12-15-2010, 01:57 AM)NeoBrain Wrote: [ -> ]Not sure about the others, but I'm too lazy to look at the patch since you changed stuff AND moved it at the same time, i.e. I can't see the difference in your code without comparing line per line...
No offense, but meh.. Big Grin

Big Grin
and the only difference is.....
on: Source/Core/VideoCommon/Src/MainBase.cpp
Replaced:
Code:
void VideoFifo_CheckAsyncRequest()
{
    VideoFifo_CheckSwapRequest();
    VideoFifo_CheckEFBAccess();
}
To:
Code:
void VideoFifo_CheckAsyncRequest()
{
    VideoFifo_CheckSwapRequest();
    VideoFifo_CheckEFBAccess();
#if defined(HAVE_X11) && HAVE_X11
    check_DoState();
#endif
}

On commit r6433,
Log message: "Move some shared gfx plugin code into VideoCommon. Changed "Renderer" class to use virtual functions. (setting stuff up for video plugin merging)".
Billiard26, move part of code from the three video plugins to a new file called MainBase.cpp, but the function "VideoFifo_CheckAsyncRequest()" is different on OGL plugin and the difference was not observed and it is the cause of my problem.

You can watch it here:
http://code.google.com/p/dolphin-emu/source/diff?spec=svn6433&r=6433&format=side&path=/trunk/Source/Plugins/Plugin_VideoOGL/Src/main.cpp

http://code.google.com/p/dolphin-emu/source/diff?spec=svn6433&r=6433&format=side&path=/trunk/Source/Core/VideoCommon/Src/MainBase.cpp

Hm, nice catch.
Will commit this soon Wink
Pages: 1 2