d3d12: Add a driver version to the screen to be used for workarounds

Reviewed-by: Bill Kristiansen <billkris@microsoft.com>
Reviewed-By: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14837>
This commit is contained in:
Jesse Natalie 2022-01-28 15:12:35 -08:00 committed by Marge Bot
parent 944832d3d7
commit 0144e7b18d
3 changed files with 6 additions and 0 deletions

View file

@ -156,6 +156,7 @@ d3d12_create_dxcore_screen(struct sw_winsys *winsys, LUID *adapter_luid)
FAILED(screen->adapter->GetProperty(DXCoreAdapterProperty::DedicatedAdapterMemory, &dedicated_video_memory)) ||
FAILED(screen->adapter->GetProperty(DXCoreAdapterProperty::DedicatedSystemMemory, &dedicated_system_memory)) ||
FAILED(screen->adapter->GetProperty(DXCoreAdapterProperty::SharedSystemMemory, &shared_system_memory)) ||
FAILED(screen->adapter->GetProperty(DXCoreAdapterProperty::DriverVersion, &screen->base.driver_version)) ||
FAILED(screen->adapter->GetProperty(DXCoreAdapterProperty::DriverDescription,
sizeof(screen->description),
screen->description))) {

View file

@ -135,6 +135,10 @@ d3d12_create_dxgi_screen(struct sw_winsys *winsys, LUID *adapter_luid)
return nullptr;
}
LARGE_INTEGER driver_version;
screen->adapter->CheckInterfaceSupport(__uuidof(IDXGIDevice), &driver_version);
screen->base.driver_version = driver_version.QuadPart;
screen->base.vendor_id = adapter_desc.VendorId;
// Note: memory sizes in bytes, but stored in size_t, so may be capped at 4GB.
// In that case, adding before conversion to MB can easily overflow.

View file

@ -90,6 +90,7 @@ struct d3d12_screen {
/* description */
uint32_t vendor_id;
uint64_t driver_version;
uint64_t memory_size_megabytes;
double timestamp_multiplier;
bool have_load_at_vertex;