А вообще говоря, наши западные партнёры давно всё сделали за нас:
Это понятно, но я же говорю - столкнулся с тем, что старая версия GL может некорректно работать с GL_EXT_GPU_shader4, зато 3.30 уделили больше внимания (если она вообще поддерживается). В OpenGL с каких-то пор наметилась нехорошая тенденция, что старые версии и расширения толком не отлаживаются.
Я определил как минимальный любой GPU, который работает с DX9, поддерживает 4 TMU, D3DTEXOPCAPS_MODULATE и D3DTEXOPCAPS_MODULATE4Х
Ты в курсе, что я никогда директом особо не интерисовался, но исходя из твоих слов поддержки DX9.0 недостаточно, чтоб заработал срузис?
Я всегда полагал, раз карточка держит Dx 9.0, значит там всё необходимое имеется. А выходит, что там половина может программно эмулироваться или вообще отсутствовать?
У меня движок не привязан к версии OpenGL. С минимумом функционала будет работать на OpenGL 3.0 или если поддерживается только OpenGL 2.1, но есть необходимые расширения, то и на нём запустится
Ну как бы сама архитектура GL к этому располагает, да. Но я вот чота задумался, насколько сильны различия между GL 2.1 + GL_EXT_Gpu_shader4 и GL3.3
Теоретически возможности должны быть примерно равны, но помоему версию 3.30 нормально оттестировали, а ту связку - нет. Особенно на тех же интелах.
Впрочем пока это просто предположение. Я пока собираю информацию.
Но недавно воткнул из OpenGL 4.0 - OpenGL 4.3 GL_ARB_multi_bind, GL_ARB_debug_output
debug_output я себе тоже взял, очень классная вещь. После этих идиотских invalid enum и invalid value, прямо человеком себя чувствуешь.
g-cont
> Но я вот чота задумался, насколько сильны различия между GL 2.1 +
> GL_EXT_Gpu_shader4 и GL3.3
А где вообще эта связка актуальна? То есть где поддерживается GL_EXT_gpu_shader4, но нет GL3?
g-cont
> Я всегда полагал, раз карточка держит Dx 9.0, значит там всё необходимое
> имеется. А выходит, что там половина может программно эмулироваться или вообще
> отсутствовать?
Ну как бы капсы, много чего может отсутствовать. К тому же есть какие-то DX 9.0b, 9.0c. У меня 4 года назад был планшет на винде 7 с Intel GMA 3150, который поддерживает только DX 9.0b. Вот там срузис не работает, ругается на видюху при запуске.
Andrey
> Но недавно воткнул из OpenGL 4.0 - OpenGL 4.3 GL_ARB_multi_bind
А если его нет, то каюк или есть обходной путь?
А где вообще эта связка актуальна? То есть где поддерживается GL_EXT_gpu_shader4, но нет GL3?
Хороший вопрос, конечно :)
Наверное нигде. А вот обратная ситуация мне на каком-то интеле попадалась. Т.е. GL3 мы умеем, а GL_EXT_GPU_shader4 - нет. Мож конечно дрова такие кривые были. Я с этой связкой сижу, по двум причинам. Сначала из-за совместимости (предполагал, что так она будет выше), а потом мне стало банально лень переписывать все шейдеры под новые требования.
пример такой связки intel hd 4000\4400
g-cont
> Я всегда полагал, раз карточка держит Dx 9.0, значит там всё необходимое
> имеется.
DX9 можно и на RivaTNT поставить, но большая часть фич работать не будет.
Вот конкретно на риве нет D3DTEXOPCAPS_MODULATE4Х и всего 2 TMU.
gammaker
> А если его нет, то каюк или есть обходной путь?
Там проверка стоит на поддержку, если не поддерживается, то исполняется код, который просто шлет 1 вызову. Ох ну Щас innuendo по этому поводу опять выскажется.
Andrey
> по этому поводу опять выскажется.
Мне надоело
Кстати, тоже заметил, что есть интелы которые держут OGL 3, который по стандарту должен держать Shader4, но расширения GL_EXT_GPU_shader4 нету! WTF?!
И я правильно понимаю, что если нету этого расширения, то нельзя использовать целочисленные форматы в шейдере? Какие еще ограничения?
fullspektr
Вообще-то оно в ядро входит. На NVidia с поддержкой OpenGL 3 нету расширения GL_EXT_transform_feedback, но оно при этом должно работать, так как входит в стандарт.
fullspektr
так вот тож. Я сначала думал - может я чего-то не так делаю. Потому что против логики это. Нафиг тогда такую совместимость. Юзать сразу GL3.0 и всё.
А я подожду GL6.0 и сразу на него перейду с GL1.1. :) Ну чтобы три раза не бегать.
Моласар
> А я подожду GL6.0 и сразу на него перейду с GL1.1. :) Ну чтобы три раза не
> бегать.
А ты разве не в курсе, что GL6, как и GL5 не будет. Вместо OpenGL теперь будет Vulkan.
gammaker
Вот на него и перейду, когда он устаканится. Т.е. не раньше второго релиза. Там уже и OpenGL отомрёт окончательно, подобно Glide. А для всяких третьих думов появятся быстрые врапперы. Опять же, подобно врапперам OpenGL->Glide (кто застал, тот помнит).
Бунтарчик
> оно при этом должно работать, так как входит в стандарт
Смелое утверждение. Не знаю как у Нвидии, но у Интела версия стандарта может поддерживаться не полностью и узнать, что поддерживается, а что нет, приходится по старинке - через расширения.
2.0, ES 2.0
P.S.
> Vulkan
Чё? Блин, чё за отстойное название.
Тема в архиве.