early-access version 3861
This commit is contained in:
parent
f8ca381d80
commit
a8f426f152
6 changed files with 15 additions and 9 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 3860.
|
This is the source code for early-access 3861.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ void AdpcmDataSourceVersion1Command::Process(const AudioRenderer::CommandListPro
|
||||||
for (auto& wave_buffer : wave_buffers) {
|
for (auto& wave_buffer : wave_buffers) {
|
||||||
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
||||||
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
||||||
wave_buffer.loop_count = -(wave_buffer.loop & 1);
|
wave_buffer.loop_count = wave_buffer.loop ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DecodeFromWaveBuffersArgs args{
|
DecodeFromWaveBuffersArgs args{
|
||||||
|
|
|
@ -24,7 +24,7 @@ void PcmFloatDataSourceVersion1Command::Process(
|
||||||
for (auto& wave_buffer : wave_buffers) {
|
for (auto& wave_buffer : wave_buffers) {
|
||||||
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
||||||
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
||||||
wave_buffer.loop_count = -(wave_buffer.loop & 1);
|
wave_buffer.loop_count = wave_buffer.loop ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DecodeFromWaveBuffersArgs args{
|
DecodeFromWaveBuffersArgs args{
|
||||||
|
|
|
@ -26,7 +26,7 @@ void PcmInt16DataSourceVersion1Command::Process(
|
||||||
for (auto& wave_buffer : wave_buffers) {
|
for (auto& wave_buffer : wave_buffers) {
|
||||||
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
wave_buffer.loop_start_offset = wave_buffer.start_offset;
|
||||||
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
wave_buffer.loop_end_offset = wave_buffer.end_offset;
|
||||||
wave_buffer.loop_count = -(wave_buffer.loop & 1);
|
wave_buffer.loop_count = wave_buffer.loop ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DecodeFromWaveBuffersArgs args{
|
DecodeFromWaveBuffersArgs args{
|
||||||
|
|
|
@ -201,7 +201,10 @@ void InterruptSocketOperations() {
|
||||||
|
|
||||||
void AcknowledgeInterrupt() {
|
void AcknowledgeInterrupt() {
|
||||||
u8 value = 0;
|
u8 value = 0;
|
||||||
read(interrupt_pipe_fd[0], &value, sizeof(value));
|
ssize_t ret = read(interrupt_pipe_fd[0], &value, sizeof(value));
|
||||||
|
if (ret != 1 && errno != EAGAIN && errno != EWOULDBLOCK) {
|
||||||
|
LOG_ERROR(Network, "Failed to acknowledge interrupt on shutdown");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SOCKET GetInterruptSocket() {
|
SOCKET GetInterruptSocket() {
|
||||||
|
|
|
@ -532,17 +532,20 @@ void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bi
|
||||||
buffer_handles.push_back(handle);
|
buffer_handles.push_back(handle);
|
||||||
}
|
}
|
||||||
if (device.IsExtExtendedDynamicStateSupported()) {
|
if (device.IsExtExtendedDynamicStateSupported()) {
|
||||||
scheduler.Record([bindings_ = std::move(bindings),
|
scheduler.Record([this, bindings_ = std::move(bindings),
|
||||||
buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) {
|
buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) {
|
||||||
cmdbuf.BindVertexBuffers2EXT(bindings_.min_index,
|
cmdbuf.BindVertexBuffers2EXT(bindings_.min_index,
|
||||||
bindings_.max_index - bindings_.min_index,
|
std::min(bindings_.max_index - bindings_.min_index,
|
||||||
|
device.GetMaxVertexInputBindings()),
|
||||||
buffer_handles_.data(), bindings_.offsets.data(),
|
buffer_handles_.data(), bindings_.offsets.data(),
|
||||||
bindings_.sizes.data(), bindings_.strides.data());
|
bindings_.sizes.data(), bindings_.strides.data());
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
scheduler.Record([bindings_ = std::move(bindings),
|
scheduler.Record([this, bindings_ = std::move(bindings),
|
||||||
buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) {
|
buffer_handles_ = std::move(buffer_handles)](vk::CommandBuffer cmdbuf) {
|
||||||
cmdbuf.BindVertexBuffers(bindings_.min_index, bindings_.max_index - bindings_.min_index,
|
cmdbuf.BindVertexBuffers(bindings_.min_index,
|
||||||
|
std::min(bindings_.max_index - bindings_.min_index,
|
||||||
|
device.GetMaxVertexInputBindings()),
|
||||||
buffer_handles_.data(), bindings_.offsets.data());
|
buffer_handles_.data(), bindings_.offsets.data());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue