DMAEngine: Accelerate BufferClear
This commit is contained in:
parent
776f391ff6
commit
b780d5b5c5
11 changed files with 115 additions and 6 deletions
|
@ -87,9 +87,11 @@ void MaxwellDMA::CopyPitchToPitch() {
|
|||
// TODO: allow multisized components.
|
||||
if (is_buffer_clear) {
|
||||
ASSERT(regs.remap_const.component_size_minus_one == 3);
|
||||
accelerate.BufferClear(regs.offset_out, regs.line_length_in, regs.remap_consta_value);
|
||||
std::vector<u32> tmp_buffer(regs.line_length_in, regs.remap_consta_value);
|
||||
memory_manager.WriteBlock(regs.offset_out, reinterpret_cast<u8*>(tmp_buffer.data()),
|
||||
regs.line_length_in * sizeof(u32));
|
||||
memory_manager.WriteBlockUnsafe(regs.offset_out,
|
||||
reinterpret_cast<u8*>(tmp_buffer.data()),
|
||||
regs.line_length_in * sizeof(u32));
|
||||
return;
|
||||
}
|
||||
UNIMPLEMENTED_IF(regs.launch_dma.remap_enable != 0);
|
||||
|
|
|
@ -31,6 +31,8 @@ class AccelerateDMAInterface {
|
|||
public:
|
||||
/// Write the value to the register identified by method.
|
||||
virtual bool BufferCopy(GPUVAddr src_address, GPUVAddr dest_address, u64 amount) = 0;
|
||||
|
||||
virtual bool BufferClear(GPUVAddr src_address, u64 amount, u32 value) = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue