Дядя Миша
На макбуках серии про есть дискретная видеокарта.
В старых (модели до 2016 года) были жифорсы, и там вообще всё шоколадно было. В новых радеоны - ну тоже терпимо, после парочки хаков.
Но я теперь начинаю понимать, почему такие проблемы со встроенными. Производительность ниже, это да, но это не фатально (всегда можно отключить пару фич). Проблема именно в том, как устроен драйвер. У встроенных драйвера сильно простые, и они, например, когда видят попытку записи в вбо, который в настоящее время используется для рисования, не придумывают ничего лучше, чем ждать завершения рисования. Ну они и не обязаны ничего иного делать по стандарту. Но дрова гефорсов и радеонов умеют такую ситуацию разруливать, создавая временные буферы (и кстати это часто выходит эффективнее, чем если делать это на стороне движка). Такая же ситуация с использованием фбо/ртт. То есть в случае интелов больше работы ложится на плечи автора движка. Работы, о которой он мог даже не подозревать, если разрабатывал движок на дискретном гпу.
Ku2zoff писал: Самое лучшее решение в данной ситуации - перестать заниматься садомазохизмом и начать не любить встроенные видеокарты. Уж сколько раз твердили миру, что встройка слаба, глючна; но только всё не впрок, и в геймерском сообществе ноутбучник-извращенец всегда отыщет уголок.
Я бы даже не морочился насчёт подобного. Если игра планируется на мобилки - совсем другое дело.
это допустимо для всяких любительских инди-поделок, работающих только на нвидеа, но для коммерческого продукта такой подход не профессионален, сужает аудиторию, и не всем нужны игровые пк
XaeroX писал: У встроенных драйвера сильно простые, и они, например, когда видят попытку записи в вбо, который в настоящее время используется для рисования, не придумывают ничего лучше, чем ждать завершения рисования.
НИКОГДА
НИЧЕГО
НЕ ПИШИ
В VBO
ВО ВРЕМЯ
РЕНДЕРИНГА
Уже сколько раз доказывал, что VBO это read-only. Он заполняется на этапе загрузки и всё. Только чтение.
Дядя Миша
Глупости какие. Динамические вбо для чего существуют, по-твоему?
К тому же откуда мне знать, пишу я во время рендеринга или нет? OpenGL это тебе не Direct3D, где можно в любой момент у апи спросить статус. Это чёртов чёрный ящик.
Добавлено 26-09-2020 в 01:06:
Цитата:
JPEG писал: для коммерческого продукта такой подход не профессионален
Профессиональный подход - это соразмерять затраты на поддержку и получаемую выгоду. Если фиксить стоит дороже, чем ожидаемая прибыль от аудитории, для которой делался фикс - то профессионал забьёт и просто изменит системные требования продукта.
А если запилить софтварный рендер? в 320х200 хотя бы выдаст 24 фпс?
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
Дядя Миша писал: Их вводили еще в те времена, когда шейдерная модель мало что позволяла сделать.
Ну это зависит от того, какие ты минимальные системные требования пропишешь.
Волатила может и тормозит на интелах, но зато на GeForce 9600 работает вполне шустро. И я не вижу причин любителю ретро-игр не воткнуть в свой десктоп хотя бы такую, она же почти ничего не стоит в наши дни.
Цитата:
Дядя Миша писал: Если ты будешь в любой момент спрашивать статус - больше времени на синхронизации потеряешь
Так я про дебаг.
На этих интелах, блин, даже ARB_debug_output нет.
Цитата:
qishmish писал: А если запилить софтварный рендер? в 320х200 хотя бы выдаст 24 фпс?
Если уровня второй кваки, т.е. без эффектов почти - выдаст наверное. Особенно если GPGPU заюзать. Но в чём тогда смысл? С отключенными шейдерами в 320х200 движок и так выдаст не меньше 24 фпс (а скорее всего ощутимо больше) почти везде. С анизотропной фильтрацией и деномическим хванариком (который на самой минималке шейдеров не требует, но рисуется не в лайтмапу, а мультипассом с glTexGen).
XaeroX писал: Волатила может и тормозит на интелах, но зато на GeForce 9600 работает вполне шустро
так 9600 потдерживает всё необходимое, например.
Вообще говоря я с интелами достиг немалых успехов, там главный секрет - юзать core. Как начинаешь цеплять расширения, то и всё. А если поставить к примеру кору 3.3, то всё потдерживается.
9600 должна уже уметь в нее.
Дядя Миша писал: Как начинаешь цеплять расширения, то и всё. А если поставить к примеру кору 3.3, то всё потдерживается.
Это ненормально, когда в коре 3.3 всё хорошо, а в коре 1.1+расширения всё ломается. Это признак кривого драйвера.
Но ты прав, возможно стоит попробовать создавать явно контекст с версией и брать кор-функции. Хотя в идеальном мире разницы быть не должно.
Добавлено 26-09-2020 в 01:53:
Цитата:
Дядя Миша писал: так 9600 потдерживает всё необходимое, например.
Ну вот там такие же вбо и такой же мультисэмпл-дептч-ресолв, и всё работает быстро. А на интеле - начинается...
XaeroX писал: Это ненормально, когда в коре 3.3 всё хорошо, а в коре 1.1+расширения всё ломается. Это признак кривого драйвера.
Это признак интел. Самое смешное, что если запрашивать расширения, то она их отдаёт, но в действительности ничего не работает.
Интел напрочь отвергает расширяемую модель.
Я тебе больше скажу - в сети полном гневных писем Интелу, где их инженеры признают проблему и... ничерта не делают.