diff --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp index ce822e990..15987e028 100644 --- a/src/core/hle/service/y2r_u.cpp +++ b/src/core/hle/service/y2r_u.cpp @@ -9,7 +9,11 @@ #include "core/hle/hle.h" #include "core/hle/kernel/event.h" #include "core/hle/service/y2r_u.h" +#include "core/mem_map.h" +#include "core/memory.h" + #include "video_core/utils.h" +#include "video_core/video_core.h" //////////////////////////////////////////////////////////////////////////////////////////////////// // Namespace Y2R_U @@ -260,6 +264,13 @@ static void StartConversion(Service::Interface* self) { break; } } + + // dst_image_size would seem to be perfect for this, but it doesn't include the stride :( + u32 total_output_size = conversion_params.input_lines * + (conversion_params.dst_transfer_unit + conversion_params.dst_stride); + VideoCore::g_renderer->hw_rasterizer->NotifyFlush( + Memory::VirtualToPhysicalAddress(conversion_params.dst_address), total_output_size); + LOG_DEBUG(Service_Y2R, "called"); completion_event->Signal();