Example #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="DisplayList"></param>
 public void EnqueueDisplayListLast(GpuDisplayList DisplayList)
 {
     AddedDisplayList();
     lock (DisplayListQueue)
     {
         DisplayListQueue.AddLast(DisplayList);
     }
     DisplayListQueueUpdated.Set();
 }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="GpuDisplayList"></param>
 public void EnqueueFreeDisplayList(GpuDisplayList GpuDisplayList)
 {
     AddedDisplayList();
     lock (DisplayListFreeQueue)
     {
         this.DisplayListFreeQueue.Enqueue(GpuDisplayList);
     }
     DisplayListFreeEvent.Set();
 }
Example #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="GpuDisplayList"></param>
 public void EnqueueFreeDisplayList(GpuDisplayList GpuDisplayList)
 {
     //Console.WriteLine("EnqueueFreeDisplayList: {0}", this.DisplayListFreeQueue.Count);
     lock (DisplayListFreeQueue)
     {
         DisplayListFreeQueue.Enqueue(GpuDisplayList);
         GpuDisplayList.SetFree();
     }
     DisplayListFreeEvent.Set();
 }
Example #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="DisplayList"></param>
 public void EnqueueDisplayListLast(GpuDisplayList DisplayList)
 {
     //Console.WriteLine("EnqueueDisplayListLast: {0}", this.DisplayListFreeQueue.Count);
     AddedDisplayList();
     lock (DisplayListQueue)
     {
         DisplayListQueue.AddLast(DisplayList);
         DisplayList.SetQueued();
     }
     DisplayListQueueUpdated.Set();
     ListEnqueuedEvent.Set();
 }
Example #5
0
 void IInjectInitialize.Initialize()
 {
     DisplayListQueue     = new LinkedList <GpuDisplayList>();
     DisplayListFreeQueue = new Queue <GpuDisplayList>();
     for (int n = 0; n < DisplayListsCount; n++)
     {
         var DisplayList = new GpuDisplayList(Memory, this, n);
         DisplayLists[n] = DisplayList;
         //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]);
         EnqueueFreeDisplayList(DisplayLists[n]);
     }
 }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="PspConfig"></param>
        /// <param name="Memory"></param>
        public override void InitializeComponent()
        {
            if (sizeof(GpuStateStruct) > sizeof(uint) * 512)
            {
                throw (new InvalidProgramException("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct)));
            }

            this.PspConfig            = PspEmulatorContext.PspConfig;
            this.Memory               = PspEmulatorContext.GetInstance <PspMemory>();
            this.GpuImpl              = PspEmulatorContext.GetInstance <GpuImpl>();
            this.DisplayListQueue     = new LinkedList <GpuDisplayList>();
            this.DisplayListFreeQueue = new Queue <GpuDisplayList>();
            for (int n = 0; n < DisplayLists.Length; n++)
            {
                var DisplayList = new GpuDisplayList(Memory, this, n);
                this.DisplayLists[n] = DisplayList;
                //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]);
                EnqueueFreeDisplayList(DisplayLists[n]);
            }
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        public void ProcessStep()
        {
            CurrentGpuDisplayList = null;

            if (DisplayListQueue.GetCountLock() > 0)
            {
                UsingGe = true;
                while (DisplayListQueue.GetCountLock() > 0)
                {
                    CurrentGpuDisplayList = DisplayListQueue.RemoveFirstAndGet();
                    CurrentGpuDisplayList.SetDequeued();
                    LastProcessedGpuDisplayList = CurrentGpuDisplayList;
                    CurrentGpuDisplayList.Process();
                    EnqueueFreeDisplayList(CurrentGpuDisplayList);
                }
                CurrentGpuDisplayList = null;

                Status2.SetValue(Status2Enum.Completed);
            }
        }
Example #8
0
 public void ProcessInit()
 {
     GpuDisplayList.InstructionSwitch = GpuDisplayList.GenerateSwitch();
 }
Example #9
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="PspConfig"></param>
        /// <param name="Memory"></param>
        public override void InitializeComponent()
        {
            if (sizeof(GpuStateStruct) > sizeof(uint) * 512)
            {
                ConsoleUtils.SaveRestoreConsoleColor(ConsoleColor.Red, () =>
                {
                    Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                    Console.WriteLine("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct));
                    Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                });

            }

            this.PspConfig = PspEmulatorContext.PspConfig;
            this.DisplayListQueue = new LinkedList<GpuDisplayList>();
            this.DisplayListFreeQueue = new Queue<GpuDisplayList>();
            for (int n = 0; n < DisplayLists.Length; n++)
            {
                var DisplayList = new GpuDisplayList(Memory, this, n);
                this.DisplayLists[n] = DisplayList;
                //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]);
                EnqueueFreeDisplayList(DisplayLists[n]);
            }
        }
Example #10
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="GpuDisplayList"></param>
 public void EnqueueFreeDisplayList(GpuDisplayList GpuDisplayList)
 {
     //Console.WriteLine("EnqueueFreeDisplayList: {0}", this.DisplayListFreeQueue.Count);
     AddedDisplayList();
     lock (DisplayListFreeQueue)
     {
         this.DisplayListFreeQueue.Enqueue(GpuDisplayList);
         GpuDisplayList.Freed();
     }
     DisplayListFreeEvent.Set();
 }
Example #11
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="DisplayList"></param>
 public void EnqueueDisplayListLast(GpuDisplayList DisplayList)
 {
     //Console.WriteLine("EnqueueDisplayListLast: {0}", this.DisplayListFreeQueue.Count);
     AddedDisplayList();
     lock (DisplayListQueue)
     {
         DisplayListQueue.AddLast(DisplayList);
     }
     DisplayListQueueUpdated.Set();
     ListEnqueuedEvent.Set();
 }
Example #12
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="PspConfig"></param>
        /// <param name="Memory"></param>
        public override void InitializeComponent()
        {
            if (sizeof(GpuStateStruct) > sizeof(uint) * 512)
            {
                throw (new InvalidProgramException("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct)));
            }

            this.PspConfig = PspEmulatorContext.PspConfig;
            this.Memory = PspEmulatorContext.GetInstance<PspMemory>();
            this.GpuImpl = PspEmulatorContext.GetInstance<GpuImpl>();
            this.DisplayListQueue = new LinkedList<GpuDisplayList>();
            this.DisplayListFreeQueue = new Queue<GpuDisplayList>();
            for (int n = 0; n < DisplayLists.Length; n++)
            {
                var DisplayList = new GpuDisplayList(Memory, this, n);
                this.DisplayLists[n] = DisplayList;
                //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]);
                EnqueueFreeDisplayList(DisplayLists[n]);
            }
        }
Example #13
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="GpuDisplayList"></param>
 public void EnqueueFreeDisplayList(GpuDisplayList GpuDisplayList)
 {
     AddedDisplayList();
     lock (DisplayListFreeQueue)
     {
         this.DisplayListFreeQueue.Enqueue(GpuDisplayList);
     }
     DisplayListFreeEvent.Set();
 }
Example #14
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="DisplayList"></param>
 public void EnqueueDisplayListLast(GpuDisplayList DisplayList)
 {
     AddedDisplayList();
     lock (DisplayListQueue)
     {
         DisplayListQueue.AddLast(DisplayList);
     }
     DisplayListQueueUpdated.Set();
 }
Example #15
0
        /// <summary>
        /// 
        /// </summary>
        public void ProcessStep()
        {
            CurrentGpuDisplayList = null;

            if (DisplayListQueue.GetCountLock() > 0)
            {
                UsingGe = true;
                while (DisplayListQueue.GetCountLock() > 0)
                {
                    CurrentGpuDisplayList = DisplayListQueue.RemoveFirstAndGet();
                    CurrentGpuDisplayList.SetDequeued();
                    LastProcessedGpuDisplayList = CurrentGpuDisplayList;
                    CurrentGpuDisplayList.Process();
                    EnqueueFreeDisplayList(CurrentGpuDisplayList);
                }
                CurrentGpuDisplayList = null;

                Status2.SetValue(Status2Enum.Completed);
            }
        }
Example #16
0
 void IInjectInitialize.Initialize()
 {
     this.DisplayListQueue = new LinkedList<GpuDisplayList>();
     this.DisplayListFreeQueue = new Queue<GpuDisplayList>();
     for (int n = 0; n < DisplayListsCount; n++)
     {
         var DisplayList = new GpuDisplayList(Memory, this, n);
         this.DisplayLists[n] = DisplayList;
         //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]);
         EnqueueFreeDisplayList(DisplayLists[n]);
     }
 }