diff options
| author | 2020-12-03 23:21:12 -0800 | |
|---|---|---|
| committer | 2020-12-03 23:21:12 -0800 | |
| commit | defa826c53b0cff55f1cc3292526c6b58dbd727c (patch) | |
| tree | 98318abc06dcaa2001722b78ff900e36d5190ad7 /src | |
| parent | Merge pull request #4996 from bunnei/use-4jits (diff) | |
| parent | vp9/vic: Resolve pessimizing moves (diff) | |
| download | yuzu-defa826c53b0cff55f1cc3292526c6b58dbd727c.tar.gz yuzu-defa826c53b0cff55f1cc3292526c6b58dbd727c.tar.xz yuzu-defa826c53b0cff55f1cc3292526c6b58dbd727c.zip | |
Merge pull request #5061 from lioncash/pessimizing
vp9/vic: Resolve pessimizing moves
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/command_classes/codecs/vp9.cpp | 20 | ||||
| -rw-r--r-- | src/video_core/command_classes/vic.cpp | 2 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/video_core/command_classes/codecs/vp9.cpp b/src/video_core/command_classes/codecs/vp9.cpp index b1d675cdb..7d8d6ee3c 100644 --- a/src/video_core/command_classes/codecs/vp9.cpp +++ b/src/video_core/command_classes/codecs/vp9.cpp | |||
| @@ -355,7 +355,7 @@ void VP9::WriteMvProbabilityUpdate(VpxRangeEncoder& writer, u8 new_prob, u8 old_ | |||
| 355 | Vp9PictureInfo VP9::GetVp9PictureInfo(const NvdecCommon::NvdecRegisters& state) { | 355 | Vp9PictureInfo VP9::GetVp9PictureInfo(const NvdecCommon::NvdecRegisters& state) { |
| 356 | PictureInfo picture_info{}; | 356 | PictureInfo picture_info{}; |
| 357 | gpu.MemoryManager().ReadBlock(state.picture_info_offset, &picture_info, sizeof(PictureInfo)); | 357 | gpu.MemoryManager().ReadBlock(state.picture_info_offset, &picture_info, sizeof(PictureInfo)); |
| 358 | Vp9PictureInfo vp9_info = std::move(picture_info.Convert()); | 358 | Vp9PictureInfo vp9_info = picture_info.Convert(); |
| 359 | 359 | ||
| 360 | InsertEntropy(state.vp9_entropy_probs_offset, vp9_info.entropy); | 360 | InsertEntropy(state.vp9_entropy_probs_offset, vp9_info.entropy); |
| 361 | 361 | ||
| @@ -377,7 +377,7 @@ Vp9FrameContainer VP9::GetCurrentFrame(const NvdecCommon::NvdecRegisters& state) | |||
| 377 | Vp9FrameContainer frame{}; | 377 | Vp9FrameContainer frame{}; |
| 378 | { | 378 | { |
| 379 | gpu.SyncGuestHost(); | 379 | gpu.SyncGuestHost(); |
| 380 | frame.info = std::move(GetVp9PictureInfo(state)); | 380 | frame.info = GetVp9PictureInfo(state); |
| 381 | frame.bit_stream.resize(frame.info.bitstream_size); | 381 | frame.bit_stream.resize(frame.info.bitstream_size); |
| 382 | gpu.MemoryManager().ReadBlock(state.frame_bitstream_offset, frame.bit_stream.data(), | 382 | gpu.MemoryManager().ReadBlock(state.frame_bitstream_offset, frame.bit_stream.data(), |
| 383 | frame.info.bitstream_size); | 383 | frame.info.bitstream_size); |
| @@ -385,29 +385,29 @@ Vp9FrameContainer VP9::GetCurrentFrame(const NvdecCommon::NvdecRegisters& state) | |||
| 385 | // Buffer two frames, saving the last show frame info | 385 | // Buffer two frames, saving the last show frame info |
| 386 | if (!next_next_frame.bit_stream.empty()) { | 386 | if (!next_next_frame.bit_stream.empty()) { |
| 387 | Vp9FrameContainer temp{ | 387 | Vp9FrameContainer temp{ |
| 388 | .info = std::move(frame.info), | 388 | .info = frame.info, |
| 389 | .bit_stream = std::move(frame.bit_stream), | 389 | .bit_stream = std::move(frame.bit_stream), |
| 390 | }; | 390 | }; |
| 391 | next_next_frame.info.show_frame = frame.info.last_frame_shown; | 391 | next_next_frame.info.show_frame = frame.info.last_frame_shown; |
| 392 | frame.info = std::move(next_next_frame.info); | 392 | frame.info = next_next_frame.info; |
| 393 | frame.bit_stream = std::move(next_next_frame.bit_stream); | 393 | frame.bit_stream = std::move(next_next_frame.bit_stream); |
| 394 | next_next_frame = std::move(temp); | 394 | next_next_frame = std::move(temp); |
| 395 | 395 | ||
| 396 | if (!next_frame.bit_stream.empty()) { | 396 | if (!next_frame.bit_stream.empty()) { |
| 397 | Vp9FrameContainer temp2{ | 397 | Vp9FrameContainer temp2{ |
| 398 | .info = std::move(frame.info), | 398 | .info = frame.info, |
| 399 | .bit_stream = std::move(frame.bit_stream), | 399 | .bit_stream = std::move(frame.bit_stream), |
| 400 | }; | 400 | }; |
| 401 | next_frame.info.show_frame = frame.info.last_frame_shown; | 401 | next_frame.info.show_frame = frame.info.last_frame_shown; |
| 402 | frame.info = std::move(next_frame.info); | 402 | frame.info = next_frame.info; |
| 403 | frame.bit_stream = std::move(next_frame.bit_stream); | 403 | frame.bit_stream = std::move(next_frame.bit_stream); |
| 404 | next_frame = std::move(temp2); | 404 | next_frame = std::move(temp2); |
| 405 | } else { | 405 | } else { |
| 406 | next_frame.info = std::move(frame.info); | 406 | next_frame.info = frame.info; |
| 407 | next_frame.bit_stream = std::move(frame.bit_stream); | 407 | next_frame.bit_stream = std::move(frame.bit_stream); |
| 408 | } | 408 | } |
| 409 | } else { | 409 | } else { |
| 410 | next_next_frame.info = std::move(frame.info); | 410 | next_next_frame.info = frame.info; |
| 411 | next_next_frame.bit_stream = std::move(frame.bit_stream); | 411 | next_next_frame.bit_stream = std::move(frame.bit_stream); |
| 412 | } | 412 | } |
| 413 | return frame; | 413 | return frame; |
| @@ -806,8 +806,8 @@ VpxBitStreamWriter VP9::ComposeUncompressedHeader() { | |||
| 806 | const std::vector<u8>& VP9::ComposeFrameHeader(const NvdecCommon::NvdecRegisters& state) { | 806 | const std::vector<u8>& VP9::ComposeFrameHeader(const NvdecCommon::NvdecRegisters& state) { |
| 807 | std::vector<u8> bitstream; | 807 | std::vector<u8> bitstream; |
| 808 | { | 808 | { |
| 809 | Vp9FrameContainer curr_frame = std::move(GetCurrentFrame(state)); | 809 | Vp9FrameContainer curr_frame = GetCurrentFrame(state); |
| 810 | current_frame_info = std::move(curr_frame.info); | 810 | current_frame_info = curr_frame.info; |
| 811 | bitstream = std::move(curr_frame.bit_stream); | 811 | bitstream = std::move(curr_frame.bit_stream); |
| 812 | } | 812 | } |
| 813 | 813 | ||
diff --git a/src/video_core/command_classes/vic.cpp b/src/video_core/command_classes/vic.cpp index 248443027..6cfc193fa 100644 --- a/src/video_core/command_classes/vic.cpp +++ b/src/video_core/command_classes/vic.cpp | |||
| @@ -58,7 +58,7 @@ void Vic::Execute() { | |||
| 58 | return; | 58 | return; |
| 59 | } | 59 | } |
| 60 | const VicConfig config{gpu.MemoryManager().Read<u64>(config_struct_address + 0x20)}; | 60 | const VicConfig config{gpu.MemoryManager().Read<u64>(config_struct_address + 0x20)}; |
| 61 | const AVFramePtr frame_ptr = std::move(nvdec_processor->GetFrame()); | 61 | const AVFramePtr frame_ptr = nvdec_processor->GetFrame(); |
| 62 | const auto* frame = frame_ptr.get(); | 62 | const auto* frame = frame_ptr.get(); |
| 63 | if (!frame || frame->width == 0 || frame->height == 0) { | 63 | if (!frame || frame->width == 0 || frame->height == 0) { |
| 64 | return; | 64 | return; |