mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 00:11:24 +12:00
vk/dma: Disable pasthrough DMA for NVIDIA+windows
- The driver seems to cache page mapping as long as allocation has not been removed - This is undesirable as we cannot stop the emulator to remove stale allocations every time a page is unmapped
This commit is contained in:
parent
90ac9165e2
commit
22584fb2d1
1 changed files with 2 additions and 19 deletions
|
@ -225,24 +225,6 @@ namespace vk
|
||||||
|
|
||||||
bool test_host_pointer(u32 base_address, usz length)
|
bool test_host_pointer(u32 base_address, usz length)
|
||||||
{
|
{
|
||||||
#if 0 // Unusable due to vm locks
|
|
||||||
auto block = vm::get(vm::any, base_address);
|
|
||||||
ensure(block);
|
|
||||||
|
|
||||||
if ((block->addr + block->size) < (base_address + length))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (block->flags & 0x120)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto range_info = block->peek(base_address, u32(length));
|
|
||||||
return !!range_info.second;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
MEMORY_BASIC_INFORMATION mem_info;
|
MEMORY_BASIC_INFORMATION mem_info;
|
||||||
if (!::VirtualQuery(vm::get_super_ptr<const void>(base_address), &mem_info, sizeof(mem_info)))
|
if (!::VirtualQuery(vm::get_super_ptr<const void>(base_address), &mem_info, sizeof(mem_info)))
|
||||||
|
@ -263,7 +245,8 @@ namespace vk
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
const bool allow_host_buffers = (vendor == driver_vendor::NVIDIA) ?
|
const bool allow_host_buffers = (vendor == driver_vendor::NVIDIA) ?
|
||||||
test_host_pointer(base_address, expected_length) :
|
//test_host_pointer(base_address, expected_length) :
|
||||||
|
rsx::get_location(base_address) == CELL_GCM_LOCATION_LOCAL : // NVIDIA workaround
|
||||||
true;
|
true;
|
||||||
#else
|
#else
|
||||||
// Anything running on AMDGPU kernel driver will not work due to the check for fd-backed memory allocations
|
// Anything running on AMDGPU kernel driver will not work due to the check for fd-backed memory allocations
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue