early-access version 4163
This commit is contained in:
		| @@ -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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user