mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
radv: Always expose non-visible local memory type on dedicated GPUs
DOOM Eternal expects this type, but RADV doesn't expose it when the VRAM
is entirely host-visible, in my case on Fiji. Matches AMDVLK behavior.
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/3054
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5308>
(cherry picked from commit 202252566b)
This commit is contained in:
parent
9532790a66
commit
abac485961
2 changed files with 8 additions and 19 deletions
|
|
@ -1399,7 +1399,7 @@
|
|||
"description": "radv: Always expose non-visible local memory type on dedicated GPUs",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -162,24 +162,13 @@ radv_physical_device_init_mem_types(struct radv_physical_device *device)
|
|||
|
||||
unsigned type_count = 0;
|
||||
|
||||
if (device->rad_info.has_dedicated_vram) {
|
||||
if (vram_index >= 0) {
|
||||
device->memory_domains[type_count] = RADEON_DOMAIN_VRAM;
|
||||
device->memory_flags[type_count] = RADEON_FLAG_NO_CPU_ACCESS;
|
||||
device->memory_properties.memoryTypes[type_count++] = (VkMemoryType) {
|
||||
.propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||
.heapIndex = vram_index,
|
||||
};
|
||||
}
|
||||
} else {
|
||||
if (visible_vram_index >= 0) {
|
||||
device->memory_domains[type_count] = RADEON_DOMAIN_VRAM;
|
||||
device->memory_flags[type_count] = RADEON_FLAG_NO_CPU_ACCESS;
|
||||
device->memory_properties.memoryTypes[type_count++] = (VkMemoryType) {
|
||||
.propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||
.heapIndex = visible_vram_index,
|
||||
};
|
||||
}
|
||||
if (vram_index >= 0 || visible_vram_index >= 0) {
|
||||
device->memory_domains[type_count] = RADEON_DOMAIN_VRAM;
|
||||
device->memory_flags[type_count] = RADEON_FLAG_NO_CPU_ACCESS;
|
||||
device->memory_properties.memoryTypes[type_count++] = (VkMemoryType) {
|
||||
.propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||
.heapIndex = vram_index >= 0 ? vram_index : visible_vram_index,
|
||||
};
|
||||
}
|
||||
|
||||
if (gart_index >= 0) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue