summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2020-12-03 12:33:05 -0500
committerGravatar Lioncash2020-12-03 12:33:07 -0500
commitcf9767c608dfb49b77708966d8d07354930d150c (patch)
treeb1f11131c8b690208749cea1980288cd21825179
parentMerge pull request #5000 from lioncash/audio-error (diff)
downloadyuzu-cf9767c608dfb49b77708966d8d07354930d150c.tar.gz
yuzu-cf9767c608dfb49b77708966d8d07354930d150c.tar.xz
yuzu-cf9767c608dfb49b77708966d8d07354930d150c.zip
vp9/vic: Resolve pessimizing moves
Removes the usage of moves that don't result in behavior different from a copy, or otherwise would prevent copy elision from occurring.
-rw-r--r--src/video_core/command_classes/codecs/vp9.cpp20
-rw-r--r--src/video_core/command_classes/vic.cpp2
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_
355Vp9PictureInfo VP9::GetVp9PictureInfo(const NvdecCommon::NvdecRegisters& state) { 355Vp9PictureInfo 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() {
806const std::vector<u8>& VP9::ComposeFrameHeader(const NvdecCommon::NvdecRegisters& state) { 806const 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;