From 957840be9151e7c3b97b638cc0d10d73173c4036 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sat, 5 Nov 2022 22:26:38 +0100 Subject: Fermi2D: Rework blit engine and add a software blitter. --- src/video_core/engines/fermi_2d.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/video_core/engines/fermi_2d.h') diff --git a/src/video_core/engines/fermi_2d.h b/src/video_core/engines/fermi_2d.h index 1229aa35b..24b518cb5 100644 --- a/src/video_core/engines/fermi_2d.h +++ b/src/video_core/engines/fermi_2d.h @@ -5,6 +5,7 @@ #include #include +#include #include "common/bit_field.h" #include "common/common_funcs.h" #include "common/common_types.h" @@ -21,6 +22,10 @@ class RasterizerInterface; namespace Tegra::Engines { +namespace Blitter { +class SoftwareBlitEngine; +} + /** * This Engine is known as G80_2D. Documentation can be found in: * https://github.com/envytools/envytools/blob/master/rnndb/graph/g80_2d.xml @@ -32,7 +37,7 @@ namespace Tegra::Engines { class Fermi2D final : public EngineInterface { public: - explicit Fermi2D(); + explicit Fermi2D(MemoryManager& memory_manager_); ~Fermi2D() override; /// Binds a rasterizer to this engine. @@ -286,6 +291,7 @@ public: struct Config { Operation operation; Filter filter; + bool must_accelerate; s32 dst_x0; s32 dst_y0; s32 dst_x1; @@ -298,6 +304,7 @@ public: private: VideoCore::RasterizerInterface* rasterizer = nullptr; + std::unique_ptr sw_blitter; /// Performs the copy from the source surface to the destination surface as configured in the /// registers. -- cgit v1.2.3