[PATCH] winex11.drv: Add VRAM size to GPU hardware information if available.

Paul Gofman pgofman at codeweavers.com
Tue Oct 19 10:03:07 CDT 2021


On 10/19/21 15:52, Paul Gofman wrote:
> 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.
>
>
So in the end of the private discussion the decisive argument is that 
wined3d currently adds all the device local heaps, so we should probably 
do the same here to be consistent. I will resend this way.




More information about the wine-devel mailing list