Список проблем:
- Неправильное управление памятью: Starfield некорректно распределяет память из-за несоответствия размеров страниц памяти центрального процессора. Если драйверы вашей видеокарты не имеют защиты от этой проблемы, игра может случайным образом завершать работу (крашиться).
- Злоупотребление функцией dx12 ExecuteIndirect: Игра Starfield неправильно использует функцию dx12 под названием ExecuteIndirect. Эта функция предназначена для запросов от игры, чтобы графический драйвер знал, какие действия ожидать. Однако, поскольку игра предоставляет неверные запросы, драйвер создает "пузыри" в очереди команд. Эти "пузыри" означают, что графический процессор должен прервать текущие операции, проверить запросы дважды и начать работу сначала.
- Несколько запросов ExecuteIndirect подряд: Starfield генерирует несколько запросов ExecuteIndirect последовательно вместо их пакетной обработки. Это только ухудшает описанные выше проблемы и ухудшает производительность игры.
Неизвестно обратят ли внимание программисты из Bethesda на советы коллеги, однако со своей стороны он уточнил, что его библиотека постарается устранить эти недоработки и улучшить производительность игры.*VKD3D является транслятором вызовов DirectX 12 в Vulkan, позволяющим пользователям Linux играть в проекты ориентированные на DirectX 12 под Windows.