Merge pull request #3422 from ReinUsesLisp/buffer-flush

surface_base: Implement texture buffer flushes
This commit is contained in:
bunnei 2020-02-22 23:09:50 -05:00 committed by GitHub
commit 754aac331f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View file

@ -277,6 +277,10 @@ void SurfaceBaseImpl::FlushBuffer(Tegra::MemoryManager& memory_manager,
SwizzleFunc(MortonSwizzleMode::LinearToMorton, host_ptr, params,
staging_buffer.data() + host_offset, level);
}
} else if (params.IsBuffer()) {
// Buffers don't have pitch or any fancy layout property. We can just memcpy them to guest
// memory.
std::memcpy(host_ptr, staging_buffer.data(), guest_memory_size);
} else {
ASSERT(params.target == SurfaceTarget::Texture2D);
ASSERT(params.num_levels == 1);