KhronosGroup / Vulkan-Ecosystem

Public repository for Vulkan Ecosystem issues
Apache License 2.0
132 stars 15 forks source link

How to best choose the physical device for app? #29

Closed krOoze closed 6 years ago

krOoze commented 6 years ago

From https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/2600

AFAIK Vulkan spec (or the loader interface doc) does not prescribe any particualar order in the vkEnumeratePhysicalDevices list.

What would be the best way to choose appropriate physical device from the list for your average fullscreen app?

It is not exposed through the API which one is the one currently connected to primary monitor (which would be a reasonable default to choose). Also some OS are somewhat too eager to connect all GPUs to all display ports, which can lead to some performance issues (and you cannot choose by simply querying the presentation support).

Might also be nice to query approximate FLOPS of the device.

A) I struggle to find examples (for all platforms) on how to determine the primary GPU for subsequent use in Vulkan. Should such examples be created and offered somewhere reachable?

B) Considering this may be nontrivial, should new API be added to Vulkan to query GPU and monitors realation (as well as finding the "primary" for those platforms where such concept exists)?

C) Or maybe the loader should order the GPUs on platforms where it is feasible as outside-spec solution?

krOoze commented 6 years ago

Merged with #30.