История изменений
Исправление robus, (текущая версия) :
Не в курсе насчет версии 100, но в 450 версии нет никаких malloc/free (во всяком случае в вершинных, фрагментных и вычислительных шейдерах). Шейдеры в OpenGL 4.5 могут только читать/менять буфферы.
Реаллок делать не могут — так как шейдер выполняется параллельно на разных данных (вершинах, полигонах, фрагментах, и т.д.). Получается эдакий SIMD на GPU. И вызов realoc на общем буффере/его куске приведёт к неприятным последствиям для производительности и сильно переусложнит транслятор. А если realoc одной и той же области вызвали 2 инстанса с разными аргументами, всё совсем печально становится. В общем в realloc шейдеры не могут и это правильно.
опять весь форум теоретиков когдато давно читавих ОпенГЛ2.0 спеки
Есть такое. Лично я на практике только с (330 core)+ имел дело. Ну ещё на втором «первый треугольник» писал, но было это давно и не правда. И вообще «первый треугольник» не считается.
Исходная версия robus, :
Не в курсе насчет версии 100, но в 450 версии нет никаких malloc/free (во всяком случае в вершинных, фрагментных и вычислительных шейдерах). Шейдеры в OpenGL 4.5 могут только читать/менять буфферы.
Реаллок делать не могут — так как шейдер выполняется параллельно на разных данных (вершинах, полигонах, фрагментах, и т.д.). Получается эдакий SIMD на GPU. И вызов realoc на общем буффере/его куске приведёт к неприятным последствиям для производительности и сильно переусложнит транслятор. А если realoc одной и той же области вызвали 2 инстанса с разными аргументами, всё совсем печально становится. В общем в realloc шейдеры не могут и это правильно.
опять весь форум теоретиков когдато давно читавих ОпенГЛ2.0 спеки
Есть такое. Лично я на практике только с (330 core)+ имел дело. Ну ещё вторым первый треугольник рисовал.