|
|
|
@ -6,6 +6,7 @@ |
|
|
|
#include "common/microprofile.h"
|
|
|
|
#include "video_core/engines/fermi_2d.h"
|
|
|
|
#include "video_core/engines/sw_blitter/blitter.h"
|
|
|
|
#include "video_core/memory_manager.h"
|
|
|
|
#include "video_core/rasterizer_interface.h"
|
|
|
|
#include "video_core/surface.h"
|
|
|
|
#include "video_core/textures/decoders.h"
|
|
|
|
@ -20,8 +21,8 @@ namespace Tegra::Engines { |
|
|
|
|
|
|
|
using namespace Texture; |
|
|
|
|
|
|
|
Fermi2D::Fermi2D(MemoryManager& memory_manager_) { |
|
|
|
sw_blitter = std::make_unique<Blitter::SoftwareBlitEngine>(memory_manager_); |
|
|
|
Fermi2D::Fermi2D(MemoryManager& memory_manager_) : memory_manager{memory_manager_} { |
|
|
|
sw_blitter = std::make_unique<Blitter::SoftwareBlitEngine>(memory_manager); |
|
|
|
// Nvidia's OpenGL driver seems to assume these values
|
|
|
|
regs.src.depth = 1; |
|
|
|
regs.dst.depth = 1; |
|
|
|
@ -104,6 +105,7 @@ void Fermi2D::Blit() { |
|
|
|
config.src_x0 = 0; |
|
|
|
} |
|
|
|
|
|
|
|
memory_manager.FlushCaching(); |
|
|
|
if (!rasterizer->AccelerateSurfaceCopy(src, regs.dst, config)) { |
|
|
|
sw_blitter->Blit(src, regs.dst, config); |
|
|
|
} |
|
|
|
|