mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	GSP: Removed unnecessary GX_FinishCommand function.
This commit is contained in:
		
							parent
							
								
									ec14ffe1cd
								
							
						
					
					
						commit
						99e404e221
					
				
					 1 changed files with 5 additions and 13 deletions
				
			
		|  | @ -80,17 +80,6 @@ static inline GX_InterruptQueue* GetInterruptQueue(u32 thread_id) { | ||||||
|     return (GX_InterruptQueue*)Kernel::GetSharedMemoryPointer(g_shared_memory, sizeof(GX_InterruptQueue) * thread_id); |     return (GX_InterruptQueue*)Kernel::GetSharedMemoryPointer(g_shared_memory, sizeof(GX_InterruptQueue) * thread_id); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// Finishes execution of a GSP command
 |  | ||||||
| void GX_FinishCommand(u32 thread_id) { |  | ||||||
|     GX_CmdBufferHeader* header = (GX_CmdBufferHeader*)GX_GetCmdBufferPointer(thread_id); |  | ||||||
| 
 |  | ||||||
|     g_debugger.GXCommandProcessed(GX_GetCmdBufferPointer(thread_id, 0x20 + (header->index * 0x20))); |  | ||||||
| 
 |  | ||||||
|     header->number_commands = 0; |  | ||||||
| 
 |  | ||||||
|     // TODO: Increment header->index?
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /// Write a GSP GPU hardware register
 | /// Write a GSP GPU hardware register
 | ||||||
| void WriteHWRegs(Service::Interface* self) { | void WriteHWRegs(Service::Interface* self) { | ||||||
|     u32* cmd_buff = Service::GetCommandBuffer(); |     u32* cmd_buff = Service::GetCommandBuffer(); | ||||||
|  | @ -211,6 +200,8 @@ void ExecuteCommand(int thread_id, int command_index) { | ||||||
|     GX_CmdBufferHeader* header = (GX_CmdBufferHeader*)GX_GetCmdBufferPointer(thread_id); |     GX_CmdBufferHeader* header = (GX_CmdBufferHeader*)GX_GetCmdBufferPointer(thread_id); | ||||||
|     auto& command = *(const GXCommand*)GX_GetCmdBufferPointer(thread_id, (command_index + 1) * 0x20); |     auto& command = *(const GXCommand*)GX_GetCmdBufferPointer(thread_id, (command_index + 1) * 0x20); | ||||||
| 
 | 
 | ||||||
|  |     g_debugger.GXCommandProcessed(GX_GetCmdBufferPointer(thread_id, 0x20 + (header->index * 0x20))); | ||||||
|  | 
 | ||||||
|     NOTICE_LOG(GSP, "decoding command 0x%08X", (int)command.id.Value()); |     NOTICE_LOG(GSP, "decoding command 0x%08X", (int)command.id.Value()); | ||||||
| 
 | 
 | ||||||
|     switch (command.id) { |     switch (command.id) { | ||||||
|  | @ -295,10 +286,13 @@ void ExecuteCommand(int thread_id, int command_index) { | ||||||
|     default: |     default: | ||||||
|         ERROR_LOG(GSP, "unknown command 0x%08X", (int)command.id.Value()); |         ERROR_LOG(GSP, "unknown command 0x%08X", (int)command.id.Value()); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     header->number_commands = header->number_commands - 1; // Indicates that command has completed
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// This triggers handling of the GX command written to the command buffer in shared memory.
 | /// This triggers handling of the GX command written to the command buffer in shared memory.
 | ||||||
| void TriggerCmdReqQueue(Service::Interface* self) { | void TriggerCmdReqQueue(Service::Interface* self) { | ||||||
|  | 
 | ||||||
|     // Iterate through each thread's command queue...
 |     // Iterate through each thread's command queue...
 | ||||||
|     for (int thread_id = 0; thread_id < 0x4; ++thread_id) { |     for (int thread_id = 0; thread_id < 0x4; ++thread_id) { | ||||||
|         GX_CmdBufferHeader* header = (GX_CmdBufferHeader*)GX_GetCmdBufferPointer(thread_id); |         GX_CmdBufferHeader* header = (GX_CmdBufferHeader*)GX_GetCmdBufferPointer(thread_id); | ||||||
|  | @ -307,8 +301,6 @@ void TriggerCmdReqQueue(Service::Interface* self) { | ||||||
|         for (int command_index = 0; command_index < header->number_commands; ++command_index) { |         for (int command_index = 0; command_index < header->number_commands; ++command_index) { | ||||||
|             ExecuteCommand(thread_id, command_index); |             ExecuteCommand(thread_id, command_index); | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         GX_FinishCommand(thread_id); |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue