diff options
Diffstat (limited to 'src/video_core/host1x')
| -rw-r--r-- | src/video_core/host1x/vic.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/host1x/vic.h | 7 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/video_core/host1x/vic.cpp b/src/video_core/host1x/vic.cpp index ac0b7d20e..36a04e4e0 100644 --- a/src/video_core/host1x/vic.cpp +++ b/src/video_core/host1x/vic.cpp | |||
| @@ -155,7 +155,7 @@ void Vic::WriteRGBFrame(const AVFrame* frame, const VicConfig& config) { | |||
| 155 | // swizzle pitch linear to block linear | 155 | // swizzle pitch linear to block linear |
| 156 | const u32 block_height = static_cast<u32>(config.block_linear_height_log2); | 156 | const u32 block_height = static_cast<u32>(config.block_linear_height_log2); |
| 157 | const auto size = Texture::CalculateSize(true, 4, width, height, 1, block_height, 0); | 157 | const auto size = Texture::CalculateSize(true, 4, width, height, 1, block_height, 0); |
| 158 | luma_buffer.resize(size); | 158 | luma_buffer.resize_destructive(size); |
| 159 | std::span<const u8> frame_buff(converted_frame_buf_addr, 4 * width * height); | 159 | std::span<const u8> frame_buff(converted_frame_buf_addr, 4 * width * height); |
| 160 | Texture::SwizzleSubrect(luma_buffer, frame_buff, 4, width, height, 1, 0, 0, width, height, | 160 | Texture::SwizzleSubrect(luma_buffer, frame_buff, 4, width, height, 1, 0, 0, width, height, |
| 161 | block_height, 0, width * 4); | 161 | block_height, 0, width * 4); |
| @@ -181,8 +181,8 @@ void Vic::WriteYUVFrame(const AVFrame* frame, const VicConfig& config) { | |||
| 181 | 181 | ||
| 182 | const auto stride = static_cast<size_t>(frame->linesize[0]); | 182 | const auto stride = static_cast<size_t>(frame->linesize[0]); |
| 183 | 183 | ||
| 184 | luma_buffer.resize(aligned_width * surface_height); | 184 | luma_buffer.resize_destructive(aligned_width * surface_height); |
| 185 | chroma_buffer.resize(aligned_width * surface_height / 2); | 185 | chroma_buffer.resize_destructive(aligned_width * surface_height / 2); |
| 186 | 186 | ||
| 187 | // Populate luma buffer | 187 | // Populate luma buffer |
| 188 | const u8* luma_src = frame->data[0]; | 188 | const u8* luma_src = frame->data[0]; |
diff --git a/src/video_core/host1x/vic.h b/src/video_core/host1x/vic.h index 2b78786e8..3d9753047 100644 --- a/src/video_core/host1x/vic.h +++ b/src/video_core/host1x/vic.h | |||
| @@ -4,8 +4,9 @@ | |||
| 4 | #pragma once | 4 | #pragma once |
| 5 | 5 | ||
| 6 | #include <memory> | 6 | #include <memory> |
| 7 | #include <vector> | 7 | |
| 8 | #include "common/common_types.h" | 8 | #include "common/common_types.h" |
| 9 | #include "common/scratch_buffer.h" | ||
| 9 | 10 | ||
| 10 | struct SwsContext; | 11 | struct SwsContext; |
| 11 | 12 | ||
| @@ -49,8 +50,8 @@ private: | |||
| 49 | /// size does not change during a stream | 50 | /// size does not change during a stream |
| 50 | using AVMallocPtr = std::unique_ptr<u8, decltype(&av_free)>; | 51 | using AVMallocPtr = std::unique_ptr<u8, decltype(&av_free)>; |
| 51 | AVMallocPtr converted_frame_buffer; | 52 | AVMallocPtr converted_frame_buffer; |
| 52 | std::vector<u8> luma_buffer; | 53 | Common::ScratchBuffer<u8> luma_buffer; |
| 53 | std::vector<u8> chroma_buffer; | 54 | Common::ScratchBuffer<u8> chroma_buffer; |
| 54 | 55 | ||
| 55 | GPUVAddr config_struct_address{}; | 56 | GPUVAddr config_struct_address{}; |
| 56 | GPUVAddr output_surface_luma_address{}; | 57 | GPUVAddr output_surface_luma_address{}; |