early-access version 4163
This commit is contained in:
parent
5443b3ef42
commit
7c89b1e372
4 changed files with 12 additions and 5 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 4162.
|
This is the source code for early-access 4163.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -67,11 +67,15 @@ public:
|
||||||
oboe::AudioStreamBuilder builder;
|
oboe::AudioStreamBuilder builder;
|
||||||
|
|
||||||
const auto result = ConfigureBuilder(builder, direction)->openStream(temp_stream);
|
const auto result = ConfigureBuilder(builder, direction)->openStream(temp_stream);
|
||||||
ASSERT(result == oboe::Result::OK);
|
if (result == oboe::Result::OK) {
|
||||||
|
|
||||||
return temp_stream->getChannelCount() >= 6 ? 6 : 2;
|
return temp_stream->getChannelCount() >= 6 ? 6 : 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOG_ERROR(Audio_Sink, "Failed to open {} stream. Using default channel count 2",
|
||||||
|
direction == oboe::Direction::Output ? "output" : "input");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
oboe::DataCallbackResult onAudioReady(oboe::AudioStream*, void* audio_data,
|
oboe::DataCallbackResult onAudioReady(oboe::AudioStream*, void* audio_data,
|
||||||
s32 num_buffer_frames) override {
|
s32 num_buffer_frames) override {
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
#include "common/polyfill_thread.h"
|
#include "common/polyfill_thread.h"
|
||||||
#include "common/thread.h"
|
#include "common/thread.h"
|
||||||
|
|
||||||
|
#include "core/hle/service/vi/vsync_manager.h"
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
class System;
|
class System;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +28,6 @@ namespace Service::VI {
|
||||||
|
|
||||||
class Container;
|
class Container;
|
||||||
class DisplayList;
|
class DisplayList;
|
||||||
class VsyncManager;
|
|
||||||
|
|
||||||
class Conductor {
|
class Conductor {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -125,9 +125,11 @@ VkRect2D GetScissorState(const Maxwell& regs, size_t index, u32 up_scale = 1, u3
|
||||||
return value < 0 ? std::min<s32>(converted_value - acumm, -1)
|
return value < 0 ? std::min<s32>(converted_value - acumm, -1)
|
||||||
: std::max<s32>(converted_value + acumm, 1);
|
: std::max<s32>(converted_value + acumm, 1);
|
||||||
};
|
};
|
||||||
|
const bool lower_left = regs.window_origin.mode != Maxwell::WindowOrigin::Mode::UpperLeft;
|
||||||
|
const s32 y_adj = lower_left ? scale_up(regs.surface_clip.height - (src.max_y - src.min_y)) : 0;
|
||||||
if (src.enable) {
|
if (src.enable) {
|
||||||
scissor.offset.x = scale_up(static_cast<s32>(src.min_x));
|
scissor.offset.x = scale_up(static_cast<s32>(src.min_x));
|
||||||
scissor.offset.y = scale_up(static_cast<s32>(src.min_y));
|
scissor.offset.y = scale_up(static_cast<s32>(src.min_y)) + y_adj;
|
||||||
scissor.extent.width = scale_up(src.max_x - src.min_x);
|
scissor.extent.width = scale_up(src.max_x - src.min_x);
|
||||||
scissor.extent.height = scale_up(src.max_y - src.min_y);
|
scissor.extent.height = scale_up(src.max_y - src.min_y);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue