* vulkan: start without fragmentShaderBarycentric on GPUs that lack it
Pascal (GTX 10xx), RDNA 1 and older drivers have no
VK_KHR_fragment_shader_barycentric, so device selection rejected them
with 'Could not find suitable device' (#1432, #1416, #762). The SPIR-V
backend only emits the capability for pixel shaders with
per-vertex/barycentric inputs, so make the extension and feature
optional: warn at selection and creation, enable only when supported.
Shaders that need custom barycentrics fail at pipeline creation
instead of blocking startup for every game.
* vulkan: fix macOS build and warn about unsupported GPUs
---------
Co-authored-by: Matthew Hurley <171001439+theantipopau@users.noreply.github.com>
Co-authored-by: nmzik <Nmzik@mail.ru>
* window: explain why each GPU was rejected in device selection
"Could not find suitable device" gave no hint of what was missing; the
reasons only went to the log file, which users often cannot find (#489).
Device selection now records each rejection reason and the fatal error
lists every GPU with its reasons, for example:
Could not find suitable device:
AMD BC-250 (RADV GFX1013): fragmentShaderBarycentric is not supported
The missing-extension check also names each missing extension instead of
stopping at the first one without saying which. Device requirements and
selection are unchanged; the log keeps the same messages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* window: simplify GPU rejection reporting and capability checks
* window: identify storage-image format failures accurately
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: nmzik <Nmzik@mail.ru>
* cli: add --gpu <index> to select a Vulkan physical device
Select the Vulkan physical device by enumeration index, defaulting to
automatic selection (-1). Invalid or out-of-range indices fall back to
automatic selection with a clear message, and the selected device is
logged.
Co-Authored-By: Claude <noreply@anthropic.com>
* cli: reject invalid --gpu index, translate comments, apply clang-format
An invalid --gpu index now prints an error and exits with code 1 (usage),
matching --user-id / --present-mode / --console-language. The automatic
fallback is kept only for out-of-range indices detected at runtime.
Comments translated to English and the touched files brought in line
with clang-format (pre-commit v22.1.3).
Co-Authored-By: Claude <noreply@anthropic.com>
* cli: simplify Vulkan device selection
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: nmzik <Nmzik@mail.ru>