summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValeri <v19930312@gmail.com>2021-10-09 20:13:45 +0300
committerv1993 <v19930312@gmail.com>2021-10-09 20:22:09 +0300
commit0394e4bb8ee35981ad1a39818e21ba23faf80db6 (patch)
treece51ce11125fd81b08fa8207e4546ea93cfec98d
parent39cd6306e63848cdb9fafa6d30311b372223d3d4 (diff)
vic: Allow surface to be higher than frame
Touhou Genso Wanderer Lotus Labyrinth R decodes 1920x1080 videos into 1920x1088 surface. Only allow mismatch for height, since larger width would result in increasingly offset rows and somewhat defeat entire purpose of this check.
-rw-r--r--src/video_core/command_classes/vic.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/command_classes/vic.cpp b/src/video_core/command_classes/vic.cpp
index 51f739801..dc768b952 100644
--- a/src/video_core/command_classes/vic.cpp
+++ b/src/video_core/command_classes/vic.cpp
@@ -88,9 +88,10 @@ void Vic::Execute() {
const u64 surface_width = config.surface_width_minus1 + 1;
const u64 surface_height = config.surface_height_minus1 + 1;
if (static_cast<u64>(frame->width) != surface_width ||
- static_cast<u64>(frame->height) != surface_height) {
+ static_cast<u64>(frame->height) > surface_height) {
// TODO: Properly support multiple video streams with differing frame dimensions
- LOG_WARNING(Debug, "Frame dimensions {}x{} do not match expected surface dimensions {}x{}",
+ LOG_WARNING(Debug,
+ "Frame dimensions {}x{} can't be safely decoded into surface dimensions {}x{}",
frame->width, frame->height, surface_width, surface_height);
return;
}