mirror of
https://github.com/flathub/org.yuzu_emu.yuzu.git
synced 2024-12-16 22:46:57 +00:00
patch: fix audio related crashes
This commit is contained in:
parent
02b7f589d5
commit
0c1759a75b
36
6c47b43a60d74e8e48de994b1d3a1ff7c6af7763.patch
Normal file
36
6c47b43a60d74e8e48de994b1d3a1ff7c6af7763.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 6c47b43a60d74e8e48de994b1d3a1ff7c6af7763 Mon Sep 17 00:00:00 2001
|
||||
From: Kelebek1 <eeeedddccc@hotmail.co.uk>
|
||||
Date: Wed, 27 Jul 2022 23:17:18 +0100
|
||||
Subject: [PATCH] Avoid depop out of bounds
|
||||
|
||||
---
|
||||
src/audio_core/renderer/command/command_buffer.cpp | 2 +-
|
||||
src/audio_core/renderer/command/mix/depop_prepare.cpp | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/audio_core/renderer/command/command_buffer.cpp b/src/audio_core/renderer/command/command_buffer.cpp
|
||||
index 40074cf14ac..2ef879ee185 100644
|
||||
--- a/src/audio_core/renderer/command/command_buffer.cpp
|
||||
+++ b/src/audio_core/renderer/command/command_buffer.cpp
|
||||
@@ -339,7 +339,7 @@ void CommandBuffer::GenerateDepopPrepareCommand(const s32 node_id, const VoiceSt
|
||||
cmd.previous_samples = memory_pool->Translate(CpuAddr(voice_state.previous_samples.data()),
|
||||
MaxMixBuffers * sizeof(s32));
|
||||
cmd.buffer_count = buffer_count;
|
||||
- cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer_count * sizeof(s32));
|
||||
+ cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer.size_bytes());
|
||||
|
||||
GenerateEnd<DepopPrepareCommand>(cmd);
|
||||
}
|
||||
diff --git a/src/audio_core/renderer/command/mix/depop_prepare.cpp b/src/audio_core/renderer/command/mix/depop_prepare.cpp
|
||||
index 2ee076ef6b2..69bb78ccc80 100644
|
||||
--- a/src/audio_core/renderer/command/mix/depop_prepare.cpp
|
||||
+++ b/src/audio_core/renderer/command/mix/depop_prepare.cpp
|
||||
@@ -19,7 +19,7 @@ void DepopPrepareCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor
|
||||
|
||||
void DepopPrepareCommand::Process(const ADSP::CommandListProcessor& processor) {
|
||||
auto samples{reinterpret_cast<s32*>(previous_samples)};
|
||||
- auto buffer{std::span(reinterpret_cast<s32*>(depop_buffer), buffer_count)};
|
||||
+ auto buffer{reinterpret_cast<s32*>(depop_buffer)};
|
||||
|
||||
for (u32 i = 0; i < buffer_count; i++) {
|
||||
if (samples[i]) {
|
@ -265,6 +265,10 @@
|
||||
{
|
||||
"type": "file",
|
||||
"path": "compatibility_list.json"
|
||||
},
|
||||
{
|
||||
"type": "patch",
|
||||
"path": "6c47b43a60d74e8e48de994b1d3a1ff7c6af7763.patch"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user