private GpuDisplayList _sceGeListEnQueue(uint InstructionAddressStart, uint InstructionAddressStall, int CallbackId, PspGeListArgs *Args) { var DisplayList = GpuProcessor.DequeueFreeDisplayList(); DisplayList.SetInstructionAddressStartAndCurrent(InstructionAddressStart); DisplayList.SetInstructionAddressStall(InstructionAddressStall); DisplayList.CallbacksId = -1; DisplayList.Callbacks = default(PspGeCallbackData); if (CallbackId != -1) { DisplayList.Callbacks = Callbacks[CallbackId]; DisplayList.CallbacksId = CallbackId; } if (Args != null) { DisplayList.GpuStateStructPointer.data.Data = CpuProcessor.Memory.PspAddressToPointerSafe <uint>(Args->GpuStateStructAddress, GpuStateStruct.StructSizeInWords); } //if (DisplayList.GpuStateStructPointer == null) DisplayList.GpuStateStructPointer.data.Data = DefaultGpuStateData; return(DisplayList); }
private GpuDisplayList _sceGeListEnQueue(uint InstructionAddressStart, uint InstructionAddressStall, int CallbackId, PspGeListArgs *Args) { var DisplayList = GpuProcessor.DequeueFreeDisplayList(); DisplayList.SetInstructionAddressStartAndCurrent(InstructionAddressStart); DisplayList.SetInstructionAddressStall(InstructionAddressStall); DisplayList.CallbacksId = -1; DisplayList.Callbacks = default(PspGeCallbackData); if (CallbackId != -1) { DisplayList.Callbacks = Callbacks[CallbackId]; DisplayList.CallbacksId = CallbackId; } DisplayList.GpuStateStructPointer = null; if (Args != null) { DisplayList.GpuStateStructPointer = (GpuStateStruct *)CpuProcessor.Memory.PspAddressToPointerSafe(Args->GpuStateStructAddress, Marshal.SizeOf(typeof(GpuStateStruct))); } if (DisplayList.GpuStateStructPointer == null) { DisplayList.GpuStateStructPointer = GpuStateStructPointer; } return(DisplayList); }
public int sceGeListEnQueueHead(uint InstructionAddressStart, uint InstructionAddressStall, int CallbackId, PspGeListArgs *Args) { var DisplayList = _sceGeListEnQueue(InstructionAddressStart, InstructionAddressStall, CallbackId, Args); GpuProcessor.EnqueueDisplayListFirst(DisplayList); return(DisplayList.Id); }
public int sceGeListEnQueueHead(uint InstructionAddressStart, uint InstructionAddressStall, int CallbackId, PspGeListArgs *Args) { return(_sceGeListEnQueue(InstructionAddressStart, InstructionAddressStall, CallbackId, Args, (DisplayList) => { HleState.GpuProcessor.EnqueueDisplayListFirst(DisplayList); })); }
public int _sceGeListEnQueue(uint InstructionAddressStart, uint InstructionAddressStall, int CallbackId, PspGeListArgs *Args, Action <GpuDisplayList> Action) { try { var DisplayList = HleState.GpuProcessor.DequeueFreeDisplayList(); { DisplayList.InstructionAddressStart = InstructionAddressStart; DisplayList.InstructionAddressCurrent = InstructionAddressStart; DisplayList.InstructionAddressStall = InstructionAddressStall; DisplayList.GpuStateStructPointer = null; if (Args != null) { DisplayList.GpuStateStructPointer = (GpuStateStruct *)HleState.CpuProcessor.Memory.PspAddressToPointer(Args[0].GpuStateStructAddress); //throw(new NotImplementedException()); } if (DisplayList.GpuStateStructPointer == null) { DisplayList.GpuStateStructPointer = (GpuStateStruct *)HleState.CpuProcessor.Memory.PspAddressToPointerSafe(0x08107000); } Action(DisplayList); } return(DisplayList.Id); } catch (Exception Exception) { Console.Error.WriteLine(Exception); //return -1; throw(Exception); } }