public void GeDrawSync(SyncTypeEnum SyncType, Action SyncCallback) { if (SyncType != SyncTypeEnum.ListDone) { throw new NotImplementedException(); } Status.CallbackOnStateOnce(StatusEnum.Completed, () => { //Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); SyncCallback(); }); }
//[HlePspNotImplemented] public DisplayListStatusEnum sceGeDrawSync(SyncTypeEnum SyncType) { //Thread.Sleep(40); switch (SyncType) { case SyncTypeEnum.WaitForCompletion: ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.GraphicEngine, "sceGeDrawSync", GpuProcessor, (WakeUp) => { GpuProcessor.GeDrawSync(WakeUp); }); return(0); case SyncTypeEnum.Peek: return(GpuProcessor.PeekStatus()); default: throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_MODE)); } }
public DisplayListStatusEnum sceGeListSync(int DisplayListId, SyncTypeEnum SyncType) { var DisplayList = GetDisplayListFromId(DisplayListId); switch (SyncType) { case SyncTypeEnum.WaitForCompletion: ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.GraphicEngine, "sceGeListSync", DisplayList, (WakeUp) => { DisplayList.GeListSync(WakeUp); }); return(0); case SyncTypeEnum.Peek: return(DisplayList.PeekStatus()); default: throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_MODE)); } }
public void GeDrawSync(SyncTypeEnum SyncType, Action SyncCallback) { //Console.Error.WriteLine("-- GeDrawSync --------------------------------"); if (SyncType != SyncTypeEnum.ListDone) throw new NotImplementedException(); if (DisplayListQueue.GetCountLock() == 0) { CompletedDrawingEvent.Reset(); CapturingWaypoint(); SyncCallback(); } else { CompletedDrawingEvent.CallbackOnSet(() => { //Console.Error.WriteLine("-- GeDrawSync Completed --------------------------------"); CompletedDrawingEvent.Reset(); CapturingWaypoint(); SyncCallback(); }); } }
public DisplayListStatusEnum sceGeListSync(int DisplayListId, SyncTypeEnum SyncType) { var DisplayList = GetDisplayListFromId(DisplayListId); switch (SyncType) { case SyncTypeEnum.WaitForCompletion: ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.GraphicEngine, "sceGeListSync", DisplayList, (WakeUp) => { DisplayList.GeListSync(WakeUp); }); return 0; case SyncTypeEnum.Peek: return DisplayList.PeekStatus(); default: throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_MODE)); } }
public DisplayListStatusEnum sceGeDrawSync(SyncTypeEnum SyncType) { //Thread.Sleep(40); switch (SyncType) { case SyncTypeEnum.WaitForCompletion: ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.GraphicEngine, "sceGeDrawSync", GpuProcessor, (WakeUp) => { GpuProcessor.GeDrawSync(WakeUp); }); return 0; case SyncTypeEnum.Peek: return GpuProcessor.PeekStatus(); default: throw (new SceKernelException(SceKernelErrors.ERROR_INVALID_MODE)); } }
public void GeDrawSync(SyncTypeEnum SyncType, Action SyncCallback) { if (SyncType != SyncTypeEnum.ListDone) throw new NotImplementedException(); Status.CallbackOnStateOnce(StatusEnum.Completed, () => { //Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); SyncCallback(); }); }