Example #1
0
        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);
        }
Example #3
0
        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);
            }
        }