[PATCH] winex11.drv: Add VRAM size to GPU hardware information if available.
Paul Gofman
pgofman at codeweavers.com
Tue Oct 19 07:52:30 CDT 2021
On 10/19/21 14:58, Zhiyi Zhang wrote:
>
> I wonder if we can add all heaps with VK_MEMORY_HEAP_DEVICE_LOCAL_BIT together and get the total vram.
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT is set nowadays in Vulkan for a heap
corresponding to a real device local memory (or what integrated GPU
driver things reasonable to expose as such) and also for a heap
corresponding to BAR memory (which is much smaller).
My RX 580 has 8GB local video memory and that is exactly what I see on
Windows 10 for it in this registry field. Vulkan reports 0x1f0000000
local heap and 0x10000000 (256MB) host coherent heap, so looking at this
particular case adding those would make sense. However, this is
different for Nvidia with 8GB here: Vulkan reports exactly 8GB as device
local heap and additionally 256MB in host coherent heap. So, given those
differences it seems more straightforward to me to report a single heap,
even if with the current Vulkan drivers for AMD discrete card it ends up
256MB less.
Also, we could potentially distinguish between those heaps by exploring
memory types corresponding to the heap (MEMORY_PROPERTY_HOST_VISIBLE_BIT
on memory type suggests that is BAR memory), but I didn't go this way
(checking memory types) as it might make things twisted for integrated GPUs.
>
> Also, what does Windows report for integrated graphics?
>
>
I suppose it might be integrated graphics dependent. I only have Windows
7 laptop with (quite old) integrated Intel / discrete Nvidia and
registry field reports around 2GB. I don't have Linux on the same
machine but here with a newer Intel integrated GPU Linux Vulkan reports
a single 2GB heap (VK_MEMORY_HEAP_DEVICE_LOCAL_BIT with a single memory
type of MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
MEMORY_PROPERTY_HOST_VISIBLE_BIT | MEMORY_PROPERTY_HOST_COHERENT_BIT |
MEMORY_PROPERTY_HOST_CACHED_BIT (that is, it is generally
indistinguishable from BAR memory reporting on discrete GPU thus my
unwillingness to guess the memory type explicitly).
It is less straightforward what is VRAM for integrated GPU but I believe
it is (Vulkan and GL) driver responsibility to advertise a reasonable
device local heap info which should match what system specs as "VRAM
size" as a single value.
More information about the wine-devel
mailing list