Во-первых, иногда бывают случаи, когда выпускается патч драйвера, который может повысить производительность или повысить эффективность для определенного процессора. Но, очевидно, вы задаете этот вопрос, потому что это не так часто. Однако то, что делают оптимизации драйвера процессора, похоже.
Графический процессор - очень сложная часть схемы. Он существует для разгрузки определенных задач, которые занимают очень много времени на процессоре. Они получают наборы данных и инструкции о том, что делать с этими данными. Графический процессор должен иметь возможность упорядочивать данные в удобной для пользователя форме и интерпретировать инструкции, чтобы указывать, что делать. Затем он должен выполнить ряд математических операций с данными. После этого он должен заново упорядочить данные и отправить результаты обратно в операционную систему после завершения. Это очень упрощенное описание конвейера компьютерной графики . Есть несколько шагов, которые необходимо выполнить, прежде чем данные будут готовы для программы.
Теперь, поскольку графический процессор должен принимать наборы инструкций и реализовывать очень сложные математические операции в оборудовании, будут определенные вещи, которые, как известно, будут выполняться быстрее или медленнее по этому конвейеру. Частью написания драйвера для устройства является интерпретация данных и инструкций, отправляемых на устройство, перевод их так, чтобы устройство могло их понять. Когда драйвер делает это, он может принять решение о том, как отправить данные на устройство, чтобы задачи выполнялись в кратчайшие сроки. Тем не менее, драйвер, как правило, не очень много информации о том, что программа, которую он обслуживает, делает. Все, что он получает от программы, это вызовы API («нарисовать линию», «закрасить точку», «заштриховать треугольник» и т. Д.). Таким образом, предположения, которые он может сделать, не очень хороши.
Когда AMD или nVidia выпускают обновление драйвера, которое содержит улучшения производительности для определенных игр, это означает, что драйвер будет определять, что игра называет графическим оборудованием, и будет иметь ряд жестко закодированных предположений, которые известны о том, как игра реализованы. Возможно, в игре много текстурных изображений, которые нужно быстро поменять местами в памяти или из памяти, или что она смешивает много цветов на лету для получения определенных световых эффектов. Обычно игра будет реализовывать небольшие программы (так называемые «шейдеры»), которые описывают, как выполнять эти вычисления, и они будут отправлены в GPU для выполнения. Если водитель знает, как игра использует аппаратное обеспечение, он может организовать данные и выбрать наборы инструкций, которые выполняют требуемую задачу таким образом, чтобы повысить пропускную способность и эффективность.
Однако иногда после отгрузки продукта могут быть обнаружены ошибки в некоторой части графического процессора. Это может быть достаточно неясным, чтобы быть пропущенным при проверке, когда проектировался чип, но может оказаться, что это вызывает некоторое ошибочное или нежелательное поведение (или даже сбой) в конкретной игре, которая поражает его. В этом случае драйвер обнаружит это ошибочное состояние и обойдет его, либо выгрузив некоторые вычисления на сторону ЦП, либо изменив способ подачи данных в графический процессор, чтобы он не входил в это состояние. Они, опять же, будут выпущены в виде обновлений драйверов.
Таким образом, в основном, это не изменение производительности самого оборудования, а просто изменение его использования, чтобы оно могло работать более эффективно и быстро с одним и тем же набором данных.