При покупке или просмотре спецификаций видеокарты вы увидите версию DirectX, которую она поддерживает (в моем конкретном случае карта поддерживает 10). Что я хочу знать, так это то, что когда Microsoft выпустила свою новую версию 11, что помешало этой карте работать по стандартам DX11?
Я бы предположил, что это вопрос прошивки самой видеокарты, нельзя ли ее прошить для поддержки последней версии? Или эта карта DX10 будет поддерживать и работать с DX11, просто Nvidia не могла так ее обозначить, поскольку DX11 еще не вышел?
Если у кого-то есть хорошая информация по этому поводу, дайте мне знать!
Редактировать: хорошо, если вы поставите минус этой теме или проголосуете за ее закрытие... объясните, пожалуйста, почему вы считаете это "глупым вопросом". Мне серьезно интересно, как или в чем разница между версиями DX, которые требуют полной замены оборудования. Наборы инструкций GPU одинаковы, единственное отличие в оборудовании заключается в том, что у более новых версий более быстрая VRAM, больше потоковых процессоров и т. д. Так почему же нельзя обновить карту DX10 для поддержки DX11?? Назовите мне причину.
решение1
Причина, по которой видеокарты DirectX 10 не могут быть обновлены до DirectX 11, скорее всего, заключается в том, что DirectX 11 требует определенных функций, таких как определенный уровень точности математических операций. Подобные вещи сложно и немного раздражает портировать на оборудование, которое не предназначено для работы с ними.
Это было бы то же самое, что и конкретный ЦП, не поддерживающий новые функции, представленные более новым ЦП, конечно, новые функции можно эмулировать (и они могут работать не намного медленнее, чем собственная реализация), но сам ЦП все равно не будет по-настоящему поддерживать требуемые функции. Похожая идея может заключаться в возможности эмуляции инструкций SSE на процессоре без SSE, конечно, вы можете это сделать, но это требует большого количества искажений и будет намного медленнее, чем полная аппаратная реализация.
Вы вполне можете, используя специальное программное обеспечение, заставить карту DirectX 10 выглядеть так же хорошо, как карта DirectX 11, и делать почти все аналогичным образом, но все собственные функции или дополнительная точность, которые требует DirectX 11, будут отсутствовать, и в целом я думаю, что программный/эмуляционный уровень будет значительно медленнее, чем полностью аппаратный подход.
решение2
После (и включая) DirectX 10, Microsoft решила просто выбросить все эти "биты совместимости" и просто установить минимальный уровень DirectX в карте. Если ваша карта совместима с DX11, она поддерживаетвсе функции DX11. Это упрощает работу разработчиков (вам не нужно проверять доступность функции перед ее использованием) и обеспечивает более единообразный опыт.
С концептуальной точки зрения, что, по мнению любого, кто просматривает эту ветку, потребуется для аппаратных модификаций для перехода с DX10 на DX11? У графических процессоров и потоковых процессоров были одинаковые или очень похожие наборы инструкций.
На самом деле, это не так. Опять же, обратите внимание на то, что я сказал выше - для того, чтобы карта былааппаратное обеспечениеСовместимость с DX11, этодолжен поддерживать все функции DX11. В прошлом изменения между версиями DirectXиметьизмененные аспекты самого аппаратного обеспечения графического процессора, включая архитектуру конвейера, модель шейдеров (и поддерживаемые языки/шейдеры), точность вычислений с плавающей точкой и расширения набора инструкций.
Покане все из нихбыли изменены при переходе с DX10 на DX11, есть дополнительные функции, которые были реализованы как на аппаратном, так и на программном уровне (большинство этих изменений имеют закрытый исходный код, поэтому я не могу комментировать конкретные изменения).
При этом выможетзапустить программное обеспечение DirectX 11 с использованием оборудования DirectX 9/10, хотя и без дополнений к DirectX 11 (а именно тесселяции, многопоточного рендеринга и вычислительных шейдеров), и предполагая, что разработчик правильно реализовал приложение. Я не вижу этоговсегдачто является проблемой, поскольку ее реализация буквально ничего не стоит — вот почему я ранее упомянул о «битах совместимости».
Если вы хотите добавить новые функции в новейшем и лучшем уровне DX, вы запрашиваете оборудование, чтобы узнать, поддерживает ли оно новейший уровень DX. Если да, включите их, в противном случае откатитесь к следующему уровню DX (в отличие от проверки доступности определенных аппаратных функций). Вот почему приложения, скомпилированные с использованием библиотек Direct3D 11, смогут работать на оборудовании, совместимом с Direct3D 9/10.
решение3
"Обновление прошивки" не является решением всех проблем. Требования DirectX для каждой версии будут включать как аппаратные, так и прошивочные решения.
решение4
Это потому, что когда видеокарта сделана, GPU предназначен только для работы в стандарте DirectX, для которого вы видите его сертифицированным. Обычно DirectX обратно совместим с предыдущими версиями, поэтому все, что нужно сделать, это повысить точность здесь и там для некоторых математических вычислений. Но с новыми версиями DX иногда вводятся новые функции (например, добавленная тесселяция DX11), которые требуют новой аппаратной поддержки. Фактические внутренние компоненты видеокарты не программируются (кроме шейдеров, которые, опять же, указаны в спецификации DX). Прошивка — это тип программного обеспечения, которое находится в некоторой внутренней памяти, которую будет запускать логическая микросхема общего назначения. Сила GPU в том, что он на самом деле специально разработан не для общего назначения, а для выполнения определенных задач очень эффективно. Эти определенные задачи — именно те задачи, которые описывает спецификация DX. Поэтому, когда выходит новая версия DX, необходимо выполнить новые аппаратные обновления, для которых требуется новый GPU. Да, производители плат могут добавлять более быструю память и т. п., но после изготовления графического процессора его логику изменить невозможно.