diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/engines/puller.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/texture_cache/util.cpp | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp index a859a7abd..54074af75 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | |||
| @@ -143,7 +143,7 @@ NvResult nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector | |||
| 143 | } | 143 | } |
| 144 | }(); | 144 | }(); |
| 145 | 145 | ||
| 146 | must_unmark_fail = true; | 146 | must_unmark_fail = false; |
| 147 | 147 | ||
| 148 | const auto check_failing = [&]() { | 148 | const auto check_failing = [&]() { |
| 149 | if (events[slot].fails > 2) { | 149 | if (events[slot].fails > 2) { |
| @@ -164,6 +164,7 @@ NvResult nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector | |||
| 164 | 164 | ||
| 165 | if (params.timeout == 0) { | 165 | if (params.timeout == 0) { |
| 166 | if (check_failing()) { | 166 | if (check_failing()) { |
| 167 | events[slot].fails = 0; | ||
| 167 | return NvResult::Success; | 168 | return NvResult::Success; |
| 168 | } | 169 | } |
| 169 | return NvResult::Timeout; | 170 | return NvResult::Timeout; |
| @@ -180,6 +181,7 @@ NvResult nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector | |||
| 180 | } | 181 | } |
| 181 | 182 | ||
| 182 | if (check_failing()) { | 183 | if (check_failing()) { |
| 184 | event.fails = 0; | ||
| 183 | return NvResult::Success; | 185 | return NvResult::Success; |
| 184 | } | 186 | } |
| 185 | 187 | ||
diff --git a/src/video_core/engines/puller.cpp b/src/video_core/engines/puller.cpp index 37f2ced18..3866c8746 100644 --- a/src/video_core/engines/puller.cpp +++ b/src/video_core/engines/puller.cpp | |||
| @@ -118,7 +118,7 @@ void Puller::ProcessSemaphoreTriggerMethod() { | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | void Puller::ProcessSemaphoreRelease() { | 120 | void Puller::ProcessSemaphoreRelease() { |
| 121 | memory_manager.Write<u32>(regs.semaphore_address.SemaphoreAddress(), regs.semaphore_release); | 121 | rasterizer->SignalSemaphore(regs.semaphore_address.SemaphoreAddress(), regs.semaphore_release); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | void Puller::ProcessSemaphoreAcquire() { | 124 | void Puller::ProcessSemaphoreAcquire() { |
diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index 1820823b2..bea1c27d0 100644 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp | |||
| @@ -755,7 +755,7 @@ bool IsValidEntry(const Tegra::MemoryManager& gpu_memory, const TICEntry& config | |||
| 755 | if (address == 0) { | 755 | if (address == 0) { |
| 756 | return false; | 756 | return false; |
| 757 | } | 757 | } |
| 758 | if (address > (1ULL << 48)) { | 758 | if (address >= (1ULL << 40)) { |
| 759 | return false; | 759 | return false; |
| 760 | } | 760 | } |
| 761 | if (gpu_memory.GpuToCpuAddress(address).has_value()) { | 761 | if (gpu_memory.GpuToCpuAddress(address).has_value()) { |