From 3ea6495031eea88477426a467704e8be8149c04f Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 8 Jun 2014 23:30:34 +0000 Subject: [PATCH] give yabause its own GL context. gets gl+yabause minimally working. maybe still loadstate-related crashes. --- .../BizHawk.Client.Common.csproj | 12 +++ BizHawk.Client.Common/GLManager.cs | 90 ++++++++++++++++++ .../DisplayManager/DisplayManager.cs | 8 +- BizHawk.Client.EmuHawk/GlobalWin.cs | 2 + BizHawk.Client.EmuHawk/MainForm.cs | 24 ++++- BizHawk.Client.EmuHawk/Program.cs | 2 + .../Interfaces/CoreComms.cs | 4 + .../Consoles/Sega/Saturn/Yabause.cs | 19 +++- .../IGL_TK.cs | 2 +- output/dll/libyabause.dll | Bin 625664 -> 625152 bytes yabause/src/libyabause/libyabause.vcxproj | 2 + yabause/src/libyabause/yui.cpp | 16 +++- 12 files changed, 170 insertions(+), 11 deletions(-) create mode 100644 BizHawk.Client.Common/GLManager.cs diff --git a/BizHawk.Client.Common/BizHawk.Client.Common.csproj b/BizHawk.Client.Common/BizHawk.Client.Common.csproj index a2ba22cb27..723997de06 100644 --- a/BizHawk.Client.Common/BizHawk.Client.Common.csproj +++ b/BizHawk.Client.Common/BizHawk.Client.Common.csproj @@ -50,6 +50,7 @@ + @@ -105,6 +106,9 @@ + + Code + @@ -194,6 +198,14 @@ {f51946ea-827f-4d82-b841-1f2f6d060312} BizHawk.Emulation.DiscSystem + + {5160CFB1-5389-47C1-B7F6-8A0DC97641EE} + BizHawk.Bizware.BizwareGL.OpenTK + + + {9F84A0B2-861E-4EF4-B89B-5E2A3F38A465} + BizHawk.Bizware.BizwareGL + diff --git a/BizHawk.Client.Common/GLManager.cs b/BizHawk.Client.Common/GLManager.cs new file mode 100644 index 0000000000..5401c7c665 --- /dev/null +++ b/BizHawk.Client.Common/GLManager.cs @@ -0,0 +1,90 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; + +using BizHawk.Common; +using BizHawk.Emulation.Common; + +using BizHawk.Bizware.BizwareGL; +using BizHawk.Bizware.BizwareGL.Drivers.OpenTK; + +namespace BizHawk.Client.Common +{ + /// + /// This class manages OpenGL contexts, in an effort to minimize context changes. + /// + public class GLManager + { + public GLManager() + { + int zzz = 9; + } + + public ContextRef CreateGLContext() + { + var ret = new ContextRef() + { + gl = new BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK() + }; + return ret; + } + + public ContextRef GetContextForGraphicsControl(GraphicsControl gc) + { + return new ContextRef() + { + gc = gc + }; + } + + /// + /// This might not be a GL implementation. If it isnt GL, then setting it as active context is just NOP + /// + public ContextRef GetContextForIGL(IGL gl) + { + return new ContextRef() + { + gl = gl + }; + } + + ContextRef ActiveContext; + + public void Invalidate() + { + ActiveContext = null; + } + + public void Activate(ContextRef cr) + { + if (cr == ActiveContext) + return; + ActiveContext = cr; + if (cr.gc != null) + { + //TODO - this is checking the current context inside to avoid an extra NOP context change. make this optional or remove it, since we're tracking it here + cr.gc.Begin(); + } + if (cr.gl != null) + { + if(cr.gl is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK) + ((BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK)cr.gl).MakeDefaultCurrent(); + } + } + + public void Deactivate() + { + //this is here for future use and tracking purposes.. however.. instead of relying on this, we should just make sure we always activate what we need before we use it + } + + // ret.RequestGLContext = () => new BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK(); + //ret.ActivateGLContext = (gl) => ((BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK)gl).MakeDefaultCurrent(); + //ret.DeactivateGLContext = () => GlobalWin.DisplayManager.. + + public class ContextRef + { + public IGL gl; + public GraphicsControl gc; + } + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs b/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs index 1d362169a4..749d364c91 100644 --- a/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs +++ b/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs @@ -49,6 +49,7 @@ namespace BizHawk.Client.EmuHawk GL = GlobalWin.GL; this.presentationPanel = presentationPanel; GraphicsControl = this.presentationPanel.GraphicsControl; + CR_GraphicsControl = GlobalWin.GLManager.GetContextForGraphicsControl(GraphicsControl); //it's sort of important for these to be initialized to something nonzero currEmuWidth = currEmuHeight = 1; @@ -106,13 +107,14 @@ namespace BizHawk.Client.EmuHawk public bool NeedsToPaint { get; set; } //rendering resources: - IGL GL; + public IGL GL; StringRenderer TheOneFont; GuiRenderer Renderer; //layer resources PresentationPanel presentationPanel; //well, its the final layer's target, at least GraphicsControl GraphicsControl; //well, its the final layer's target, at least + GLManager.ContextRef CR_GraphicsControl; FilterManager.FilterProgram CurrentFilterProgram; /// @@ -350,6 +352,8 @@ namespace BizHawk.Client.EmuHawk FilterManager.FilterProgram UpdateSourceInternal(JobInfo job) { + GlobalWin.GLManager.Activate(CR_GraphicsControl); + IVideoProvider videoProvider = job.videoProvider; bool simulate = job.simulate; Size chain_outsize = job.chain_outsize; @@ -442,7 +446,7 @@ TESTEROO: //begin rendering on this context //should this have been done earlier? //do i need to check this on an intel video card to see if running excessively is a problem? (it used to be in the FinalTarget command below, shouldnt be a problem) - GraphicsControl.Begin(); + //GraphicsControl.Begin(); //run filter chain Texture2d texCurr = null; diff --git a/BizHawk.Client.EmuHawk/GlobalWin.cs b/BizHawk.Client.EmuHawk/GlobalWin.cs index 266a8525a9..d754397e8f 100644 --- a/BizHawk.Client.EmuHawk/GlobalWin.cs +++ b/BizHawk.Client.EmuHawk/GlobalWin.cs @@ -12,10 +12,12 @@ namespace BizHawk.Client.EmuHawk public static DirectSound DSound; #endif public static IGL GL; + public static GLManager.ContextRef CR_GL; public static Sound Sound; public static PresentationPanel PresentationPanel; public static OSDManager OSD = new OSDManager(); public static DisplayManager DisplayManager; + public static GLManager GLManager; //input state which has been destined for game controller inputs are coalesced here //public static ControllerInputCoalescer ControllerInputCoalescer = new ControllerInputCoalescer(); diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 7cf00f798b..baf74d1786 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -57,6 +57,15 @@ namespace BizHawk.Client.EmuHawk // its.. weird. dont ask. } + CoreComm CreateCoreComm() + { + CoreComm ret = new CoreComm(ShowMessageCoreComm, NotifyCoreComm); + ret.RequestGLContext = () => GlobalWin.GLManager.CreateGLContext(); + ret.ActivateGLContext = (gl) => GlobalWin.GLManager.Activate((GLManager.ContextRef)gl); + ret.DeactivateGLContext = () => GlobalWin.GLManager.Deactivate(); + return ret; + } + public MainForm(string[] args) { GlobalWin.MainForm = this; @@ -160,7 +169,7 @@ namespace BizHawk.Client.EmuHawk Input.Initialize(); InitControls(); - Global.CoreComm = new CoreComm(ShowMessageCoreComm, NotifyCoreComm); + Global.CoreComm = CreateCoreComm(); CoreFileProvider.SyncCoreCommInputSignals(); Global.Emulator = new NullEmulator(Global.CoreComm); Global.ActiveController = Global.NullControls; @@ -2538,7 +2547,12 @@ namespace BizHawk.Client.EmuHawk coreskipaudio = Global.ClientControls["Turbo"] && _currAviWriter == null; - Global.Emulator.FrameAdvance(!_throttle.skipnextframe || _currAviWriter != null, !coreskipaudio); + { + bool render = !_throttle.skipnextframe || _currAviWriter != null; + bool renderSound = !coreskipaudio; + Global.Emulator.FrameAdvance(render, renderSound); + } + GlobalWin.DisplayManager.NeedsToPaint = true; Global.CheatList.Pulse(); @@ -2974,7 +2988,7 @@ namespace BizHawk.Client.EmuHawk // the new settings objects CommitCoreSettingsToConfig(); - var nextComm = new CoreComm(ShowMessageCoreComm, NotifyCoreComm); + var nextComm = CreateCoreComm(); CoreFileProvider.SyncCoreCommInputSignals(nextComm); var result = loader.LoadRom(path, nextComm); @@ -3147,7 +3161,7 @@ namespace BizHawk.Client.EmuHawk CommitCoreSettingsToConfig(); Global.Emulator.Dispose(); - Global.CoreComm = new CoreComm(ShowMessageCoreComm, NotifyCoreComm); + Global.CoreComm = CreateCoreComm(); CoreFileProvider.SyncCoreCommInputSignals(); Global.Emulator = new NullEmulator(Global.CoreComm); Global.ActiveController = Global.NullControls; @@ -3167,7 +3181,7 @@ namespace BizHawk.Client.EmuHawk if (GlobalWin.Tools.AskSave()) { CloseGame(clearSram); - Global.CoreComm = new CoreComm(ShowMessageCoreComm, NotifyCoreComm); + Global.CoreComm = CreateCoreComm(); CoreFileProvider.SyncCoreCommInputSignals(); Global.Emulator = new NullEmulator(Global.CoreComm); Global.Game = GameInfo.GetNullGame(); diff --git a/BizHawk.Client.EmuHawk/Program.cs b/BizHawk.Client.EmuHawk/Program.cs index ae0f14c1a5..df6cffa07d 100644 --- a/BizHawk.Client.EmuHawk/Program.cs +++ b/BizHawk.Client.EmuHawk/Program.cs @@ -80,6 +80,8 @@ namespace BizHawk.Client.EmuHawk //create IGL context. //at some point in the future, we may need to select from several drivers GlobalWin.GL = new BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK(); + GlobalWin.GLManager = new GLManager(); + GlobalWin.CR_GL = GlobalWin.GLManager.GetContextForIGL(GlobalWin.GL); try { diff --git a/BizHawk.Emulation.Common/Interfaces/CoreComms.cs b/BizHawk.Emulation.Common/Interfaces/CoreComms.cs index 26d3e0f71c..cb70c04d80 100644 --- a/BizHawk.Emulation.Common/Interfaces/CoreComms.cs +++ b/BizHawk.Emulation.Common/Interfaces/CoreComms.cs @@ -63,6 +63,10 @@ namespace BizHawk.Emulation.Common this.ShowMessage = ShowMessage; this.Notify = NotifyMessage; } + + public Func RequestGLContext; + public Action ActivateGLContext; + public Action DeactivateGLContext; //this shouldnt be necessary.. frontend should be changing context before it does anything.. but for now.. } public class TraceBuffer diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.cs b/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.cs index b9982600b4..7244319e83 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.cs @@ -61,14 +61,26 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn this.SyncSettings = (SaturnSyncSettings)SyncSettings ?? new SaturnSyncSettings(); + if (this.SyncSettings.UseGL && glContext == null) + { + glContext = CoreComm.RequestGLContext(); + } + + ResetCounters(); + + CoreComm.ActivateGLContext(glContext); Init(bios); InputCallbackH = new LibYabause.InputCallback(() => CoreComm.InputCallback.Call()); LibYabause.libyabause_setinputcallback(InputCallbackH); CoreComm.UsesDriveLed = true; + + CoreComm.DeactivateGLContext(); } + static object glContext; + void Init(byte[] bios) { bool GL = SyncSettings.UseGL; @@ -99,7 +111,6 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn else basetime = (int)((SyncSettings.RTCInitialTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds); - if (!LibYabause.libyabause_init ( ref CDInt, @@ -186,6 +197,8 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn { int w, h, nsamp; + CoreComm.ActivateGLContext(glContext); + LibYabause.Buttons1 p11 = (LibYabause.Buttons1)0xff; LibYabause.Buttons2 p12 = (LibYabause.Buttons2)0xff; LibYabause.Buttons1 p21 = (LibYabause.Buttons1)0xff; @@ -265,6 +278,8 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn //Console.WriteLine(nsamp); //CheckStates(); + + CoreComm.DeactivateGLContext(); } public int Frame { get; private set; } @@ -515,6 +530,7 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn { if (!Disposed) { + CoreComm.ActivateGLContext(glContext); if (SaveRamModified) DisposedSaveRam = ReadSaveRam(); LibYabause.libyabause_setvidbuff(IntPtr.Zero); @@ -523,6 +539,7 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn VideoHandle.Free(); SoundHandle.Free(); Disposed = true; + CoreComm.DeactivateGLContext(); } } diff --git a/Bizware/BizHawk.Bizware.BizwareGL.OpenTK/IGL_TK.cs b/Bizware/BizHawk.Bizware.BizwareGL.OpenTK/IGL_TK.cs index 2fdb0c4f22..75eb97315e 100644 --- a/Bizware/BizHawk.Bizware.BizwareGL.OpenTK/IGL_TK.cs +++ b/Bizware/BizHawk.Bizware.BizwareGL.OpenTK/IGL_TK.cs @@ -621,7 +621,7 @@ namespace BizHawk.Bizware.BizwareGL.Drivers.OpenTK } } - internal void MakeDefaultCurrent() + public void MakeDefaultCurrent() { MakeContextCurrent(this.GraphicsContext,OffscreenNativeWindow.WindowInfo); } diff --git a/output/dll/libyabause.dll b/output/dll/libyabause.dll index 2375ac83ac5b78e56f90d8783c7d1b8932365299..3ddd703d323c295f030c51564ef3daa4b2b83327 100644 GIT binary patch delta 56384 zcmb5X30zdw`#(PSa+gs-E(!<;ILLsgs378wq5>|t45EPIg61-AMTKc)f#F6YN})bh z=8~3{nwZO=xqz6sM`?yTmDV+_=%X2~^Lw9r2Sh)8zOVluU+?>z=RD7O&c57p&K8E8$2IpU;fe&iH)i)UK$OglEoaVdxet{p?mYXq=I)AYSLu}iZCr*Fyd4u66 zGZKlI4WXbDcC6;V<%}`yL_<=F+HuD$VS~WETi{>MpUW)hQZJrcU6568Dpy+YTfL^- z#saB+U+$ZN!S&zdek?dye>K;8$Fv3ud81z!$#7Ft3wGRh`&IHSQjAK@VIepE;rwFv zc@Gdv%2b0z&Az(hzUKwblZkCrP?&#rrnfErp~c~~vq1Ik!R;()(PRr(wBu}(16-D$ zpJ=cpc;*xf)_E=l1h2;LC!G` z7R1xKObhaLO%NaJN-fAvXOP3OImQ0gRa&UE%rBM⋙Sa!IstpGg~)k!QOHPD-N@6 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�}z4VyQSldRp2pos#f{qjI`@ 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 U0U4Wshh@JrC1`9IzC2j}Up}9<*8l(j delta 57017 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
Hb#n>9tOywj|3f*tfT!u_F!{rt}^ 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 diff --git a/yabause/src/libyabause/libyabause.vcxproj b/yabause/src/libyabause/libyabause.vcxproj index 8862e819e6..f1804474c2 100644 --- a/yabause/src/libyabause/libyabause.vcxproj +++ b/yabause/src/libyabause/libyabause.vcxproj @@ -51,6 +51,7 @@ Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBYABAUSE_EXPORTS;HAVE_C99_VARIADIC_MACROS;VERSION="LIB";C68K_NO_JUMP_TABLE;HAVE_LIBGL;%(PreprocessorDefinitions) 4244;4996;4018;4146 + true Windows @@ -71,6 +72,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBYABAUSE_EXPORTS;HAVE_C99_VARIADIC_MACROS;VERSION="LIB";C68K_NO_JUMP_TABLE;HAVE_LIBGL;%(PreprocessorDefinitions) 4244;4996;4018;4146 + true Windows diff --git a/yabause/src/libyabause/yui.cpp b/yabause/src/libyabause/yui.cpp index cdc1e163c1..ee235f8c58 100644 --- a/yabause/src/libyabause/yui.cpp +++ b/yabause/src/libyabause/yui.cpp @@ -1,3 +1,6 @@ +//bizhawk +#define HEADLESS + #define WIN32_LEAN_AND_MEAN #include #include @@ -519,8 +522,17 @@ extern "C" __declspec(dllexport) int libyabause_init ) { usinggl = usegl; - if (usegl && (!StartGLContext() || !LoadExtensions())) - return 0; + + if (usegl) + { + //headless cores should not create GL contexts, but use the one from the invoking frontend + #ifndef HEADLESS + if(!StartGLContext()) + return 0; + #endif + if(!LoadExtensions()) + return 0; + } FECD.DeInit = _CD->DeInit; FECD.GetStatus = _CD->GetStatus;