Browse Source

[video_core/vic] remove handrolled vector implementation that also uses software prefetching(!!!!); don't try to outsmart compiler - also remove template spam

Signed-off-by: lizzie <lizzie@eden-emu.dev>
pull/2856/head
lizzie 3 months ago
committed by crueter
parent
commit
db82a05f48
  1. 983
      src/video_core/host1x/vic.cpp
  2. 22
      src/video_core/host1x/vic.h

983
src/video_core/host1x/vic.cpp
File diff suppressed because it is too large
View File

22
src/video_core/host1x/vic.h

@ -610,24 +610,12 @@ public:
private:
void Execute();
void Blend(const ConfigStruct& config, const SlotStruct& slot);
template <bool Planar, bool Interlaced = false>
void ReadProgressiveY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets,
std::shared_ptr<const FFmpeg::Frame> frame);
template <bool Planar, bool TopField>
void ReadInterlacedY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets,
std::shared_ptr<const FFmpeg::Frame> frame);
template <bool Planar>
void ReadY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets,
std::shared_ptr<const FFmpeg::Frame> frame);
void ReadProgressiveY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets, std::shared_ptr<const FFmpeg::Frame> frame, bool planar, bool interlaced);
void ReadInterlacedY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets, std::shared_ptr<const FFmpeg::Frame> frame, bool planar, bool top_field);
void ReadY8__V8U8_N420(const SlotStruct& slot, std::span<const PlaneOffsets> offsets, std::shared_ptr<const FFmpeg::Frame> frame, bool planar);
void WriteY8__V8U8_N420(const OutputSurfaceConfig& output_surface_config);
template <VideoPixelFormat Format>
void WriteABGR(const OutputSurfaceConfig& output_surface_config);
void WriteABGR(const OutputSurfaceConfig& output_surface_config, VideoPixelFormat format);
s32 id;
s32 nvdec_id{-1};
@ -636,8 +624,6 @@ private:
VicRegisters regs{};
FrameQueue& frame_queue;
const bool has_sse41{false};
Common::ScratchBuffer<Pixel> output_surface;
Common::ScratchBuffer<Pixel> slot_surface;
Common::ScratchBuffer<u8> luma_scratch;

Loading…
Cancel
Save