mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-03-09 23:14:46 +01:00
gl/dma: Fix range calculation when creating DMA blocks
This commit is contained in:
parent
cf5eb22591
commit
a1af15b907
|
|
@ -22,7 +22,7 @@ namespace gl
|
|||
void* userptr = vm::get_super_ptr(base_address);
|
||||
|
||||
m_data = std::make_unique<gl::buffer>();
|
||||
m_data->create(buffer::target::array, block_size, userptr, buffer::memory_type::userptr, 0);
|
||||
m_data->create(buffer::target::copy_dst, block_size, userptr, buffer::memory_type::userptr, 0);
|
||||
m_base_address = base_address;
|
||||
|
||||
// Some drivers may reject userptr input for whatever reason. Check that the state is still valid.
|
||||
|
|
@ -77,7 +77,7 @@ namespace gl
|
|||
{
|
||||
const auto start_block_address = start & s_dma_block_mask;
|
||||
const auto end_block_address = (start + length + s_dma_block_size - 1) & s_dma_block_mask;
|
||||
return utils::address_range32::start_end(start_block_address, end_block_address);
|
||||
return utils::address_range32::start_length(start_block_address, end_block_address - start_block_address);
|
||||
}
|
||||
|
||||
const dma_block& get_block(u32 start, u32 length)
|
||||
|
|
|
|||
Loading…
Reference in a new issue