Browse Source

Minor improvement

pull/3211/head
MaranBr 1 month ago
committed by crueter
parent
commit
f37bee363c
  1. 13
      src/video_core/engines/maxwell_dma.cpp

13
src/video_core/engines/maxwell_dma.cpp

@ -96,23 +96,23 @@ void MaxwellDMA::Launch() {
auto& accelerate = rasterizer->AccessAccelerateDMA();
const bool is_const_a_dst = regs.remap_const.dst_x == RemapConst::Swizzle::CONST_A;
if (regs.launch_dma.remap_enable != 0 && is_const_a_dst) {
accelerate.BufferClear(regs.offset_out, regs.line_length_in, regs.remap_const.remap_consta_value);
const u32 component_size = regs.remap_const.component_size_minus_one + 1;
const u32 line_length = regs.line_length_in;
read_buffer.resize_destructive(line_length * component_size);
read_buffer.resize_destructive(regs.line_length_in * component_size);
u8* buf = read_buffer.data();
switch (component_size) {
case 1: {
std::span<u8> span(buf, line_length);
std::span<u8> span(buf, regs.line_length_in);
std::ranges::fill(span, static_cast<u8>(regs.remap_const.remap_consta_value & 0xFF));
break;
}
case 2: {
std::span<u16> span(reinterpret_cast<u16*>(buf), line_length);
std::span<u16> span(reinterpret_cast<u16*>(buf), regs.line_length_in);
std::ranges::fill(span, static_cast<u16>(regs.remap_const.remap_consta_value & 0xFFFF));
break;
}
case 4: {
std::span<u32> span(reinterpret_cast<u32*>(buf), line_length);
std::span<u32> span(reinterpret_cast<u32*>(buf), regs.line_length_in);
std::ranges::fill(span, regs.remap_const.remap_consta_value);
break;
}
@ -120,8 +120,7 @@ void MaxwellDMA::Launch() {
LOG_WARNING(Render_OpenGL, "Remap CONST_A with unsupported component size {} bytes", component_size);
break;
}
memory_manager.WriteBlockUnsafe(regs.offset_out, buf, line_length * component_size);
accelerate.BufferClear(regs.offset_out, line_length, regs.remap_const.remap_consta_value);
memory_manager.WriteBlockUnsafe(regs.offset_out, buf, regs.line_length_in * component_size);
} else {
memory_manager.FlushCaching();
const auto convert_linear_2_blocklinear_addr = [](u64 address) {

Loading…
Cancel
Save