mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-04 15:00:36 +01:00
anv: fix Get*MemoryRequirements for !LLC
Even though we supported both coherent and non-coherent memory types, we
effectively forced apps to use the coherent types by accident. Found by
inspection, only compile tested.
Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "17.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 6319bfc2a6)
This commit is contained in:
parent
6e0ad8b73e
commit
aede9fc7ae
1 changed files with 8 additions and 6 deletions
|
|
@ -1412,11 +1412,12 @@ VkResult anv_InvalidateMappedMemoryRanges(
|
|||
}
|
||||
|
||||
void anv_GetBufferMemoryRequirements(
|
||||
VkDevice device,
|
||||
VkDevice _device,
|
||||
VkBuffer _buffer,
|
||||
VkMemoryRequirements* pMemoryRequirements)
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
|
||||
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||
|
||||
/* The Vulkan spec (git aaed022) says:
|
||||
*
|
||||
|
|
@ -1425,20 +1426,21 @@ void anv_GetBufferMemoryRequirements(
|
|||
* only if the memory type `i` in the VkPhysicalDeviceMemoryProperties
|
||||
* structure for the physical device is supported.
|
||||
*
|
||||
* We support exactly one memory type.
|
||||
* We support exactly one memory type on LLC, two on non-LLC.
|
||||
*/
|
||||
pMemoryRequirements->memoryTypeBits = 1;
|
||||
pMemoryRequirements->memoryTypeBits = device->info.has_llc ? 1 : 3;
|
||||
|
||||
pMemoryRequirements->size = buffer->size;
|
||||
pMemoryRequirements->alignment = 16;
|
||||
}
|
||||
|
||||
void anv_GetImageMemoryRequirements(
|
||||
VkDevice device,
|
||||
VkDevice _device,
|
||||
VkImage _image,
|
||||
VkMemoryRequirements* pMemoryRequirements)
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_image, image, _image);
|
||||
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||
|
||||
/* The Vulkan spec (git aaed022) says:
|
||||
*
|
||||
|
|
@ -1447,9 +1449,9 @@ void anv_GetImageMemoryRequirements(
|
|||
* only if the memory type `i` in the VkPhysicalDeviceMemoryProperties
|
||||
* structure for the physical device is supported.
|
||||
*
|
||||
* We support exactly one memory type.
|
||||
* We support exactly one memory type on LLC, two on non-LLC.
|
||||
*/
|
||||
pMemoryRequirements->memoryTypeBits = 1;
|
||||
pMemoryRequirements->memoryTypeBits = device->info.has_llc ? 1 : 3;
|
||||
|
||||
pMemoryRequirements->size = image->size;
|
||||
pMemoryRequirements->alignment = image->alignment;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue