forked from eden-emu/eden
		
	Rename to align with switchbrew and remove gpu function (#4714)
* Rename to align with switchbrew * Rename to align with switchbrew and remove gpu function that checks if clearing should be done.
This commit is contained in:
		
							parent
							
								
									e9b37e4d52
								
							
						
					
					
						commit
						381586d56c
					
				
					 2 changed files with 10 additions and 16 deletions
				
			
		|  | @ -36,8 +36,8 @@ u32 nvhost_ctrl::ioctl(Ioctl command, const std::vector<u8>& input, const std::v | |||
|         return IocCtrlEventRegister(input, output); | ||||
|     case IoctlCommand::IocCtrlEventUnregisterCommand: | ||||
|         return IocCtrlEventUnregister(input, output); | ||||
|     case IoctlCommand::IocCtrlEventSignalCommand: | ||||
|         return IocCtrlEventSignal(input, output); | ||||
|     case IoctlCommand::IocCtrlClearEventWaitCommand: | ||||
|         return IocCtrlClearEventWait(input, output); | ||||
|     default: | ||||
|         UNIMPLEMENTED_MSG("Unimplemented ioctl"); | ||||
|         return 0; | ||||
|  | @ -154,24 +154,18 @@ u32 nvhost_ctrl::IocCtrlEventUnregister(const std::vector<u8>& input, std::vecto | |||
|     return NvResult::Success; | ||||
| } | ||||
| 
 | ||||
| u32 nvhost_ctrl::IocCtrlEventSignal(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
| u32 nvhost_ctrl::IocCtrlClearEventWait(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     IocCtrlEventSignalParams params{}; | ||||
|     std::memcpy(¶ms, input.data(), sizeof(params)); | ||||
|     // TODO(Blinkhawk): This is normally called when an NvEvents timeout on WaitSynchronization
 | ||||
|     // It is believed from RE to cancel the GPU Event. However, better research is required
 | ||||
|     u32 event_id = params.user_event_id & 0x00FF; | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called, user_event_id: {:X}", event_id); | ||||
|     u32 event_id = params.event_id & 0x00FF; | ||||
|     LOG_WARNING(Service_NVDRV, "cleared event wait on, event_id: {:X}", event_id); | ||||
|     if (event_id >= MaxNvEvents) { | ||||
|         return NvResult::BadParameter; | ||||
|     } | ||||
|     if (events_interface.status[event_id] == EventState::Waiting) { | ||||
|         auto& gpu = system.GPU(); | ||||
|         if (gpu.CancelSyncptInterrupt(events_interface.assigned_syncpt[event_id], | ||||
|                                       events_interface.assigned_value[event_id])) { | ||||
|         events_interface.LiberateEvent(event_id); | ||||
|         events_interface.events[event_id].writable->Signal(); | ||||
|     } | ||||
|     } | ||||
|     return NvResult::Success; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ private: | |||
|         IocSyncptWaitexCommand = 0xC0100019, | ||||
|         IocSyncptReadMaxCommand = 0xC008001A, | ||||
|         IocGetConfigCommand = 0xC183001B, | ||||
|         IocCtrlEventSignalCommand = 0xC004001C, | ||||
|         IocCtrlClearEventWaitCommand = 0xC004001C, | ||||
|         IocCtrlEventWaitCommand = 0xC010001D, | ||||
|         IocCtrlEventWaitAsyncCommand = 0xC010001E, | ||||
|         IocCtrlEventRegisterCommand = 0xC004001F, | ||||
|  | @ -94,7 +94,7 @@ private: | |||
|     static_assert(sizeof(IocGetConfigParams) == 387, "IocGetConfigParams is incorrect size"); | ||||
| 
 | ||||
|     struct IocCtrlEventSignalParams { | ||||
|         u32_le user_event_id; | ||||
|         u32_le event_id; | ||||
|     }; | ||||
|     static_assert(sizeof(IocCtrlEventSignalParams) == 4, | ||||
|                   "IocCtrlEventSignalParams is incorrect size"); | ||||
|  | @ -142,7 +142,7 @@ private: | |||
| 
 | ||||
|     u32 IocCtrlEventUnregister(const std::vector<u8>& input, std::vector<u8>& output); | ||||
| 
 | ||||
|     u32 IocCtrlEventSignal(const std::vector<u8>& input, std::vector<u8>& output); | ||||
|     u32 IocCtrlClearEventWait(const std::vector<u8>& input, std::vector<u8>& output); | ||||
| 
 | ||||
|     EventInterface& events_interface; | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Levi Behunin
						Levi Behunin