условном огл 4 и скомпилирована в исполняемый файл, его можно будет запустить на допотопном железе? или же более поздние версии не совместимы аппаратно?
если на этом железе имеется поддержка огл 4, то да)
Это вопрос к дровам, не к твоему бинарнику
OpenGL описывает какие есть функции, что они принимают и что они делают. В каждой версии свой набор функций. Вы загружаете функции в рантайме. Если вы запросите gl4 функцию, а драйвер умеет только gl2, вы получите nullptr. При попытке вызвать функцию по указателю равному nullptr ваша программа крашнется.
я правильно понимаю, что функции получает драйвер, преобразовывает их в машинный код, а дальше команды в двоичном представлении поступают на чип? по сути все зависит не от железа, а от драйвера и умеет ли он, а железо нужно только для того, что увеличить объем, скорость работы ?
В целом да, поэтому в графических апи термины не цпу/гпу, а клиент/сервер. Сервер это любая программа, которая на опредеденные вызовы дает опредеденные по спецификации результаты. Клиент и сервер могут быть и на цпу (эмуляция), и на разных вычислителях, или даже разделены по Интернету
Нет, функции gl исполняются на cpu, внутри драйвера. В каком виде драйвер общается с железом тут не так важно, но скорее всего через команд листы. То что вы описали больше похоже на то что происходит с шейдерами. То что умеет железо напрямую связано с тем что предоставляет драйвер. Для многих фич нужно дополнительное железо.
не совсем понимаю. какое нужно доп. железо, если, как я понял, основную роль выполняет драйвер?
Чтобы функции из драйвера работали. нужна аппаратная поддержка
Представь, что видеокарта это завод. А драйвер директор этого завода. А твоя программа - ты. Ты приходишь к директору завода и просишь сделать тебе деталь. Директор завода объясняет своим рабочим задачу (в отличии от тебя - он знает сколько именно на заводе рабочих, какие у них есть станки т. д., более того, рабочие на заводе говорят только на китайском, а ты нет, зато и ты и директор знаете английский), они её делают, он тебе отдаёт результат. А теперь представь, что ты пришёл к директору деревообрабатывающего завода и просишь сделать железную деталь. Какой бы не был умный директор завода и как бы искусно он не объяснял бы задачу своим рабочим, если на заводе нет станков по обработке металла, деталь тебе не сделают.
Драйвер просто предоставляет интерфейс к тому что умеет железо.
даже разделены через x11?
Обсуждают сегодня