Войти
ПрограммированиеФорумГрафика

OpenGL на видеокартах AMD

Страницы: 1 2 3 Следующая »
#0
11:58, 20 сен. 2018

Дал тут парочке товарищей проверить свой движок и выяснилось, что на AMD он совершенно не идёт :)
Вопрос: если ли смысл дёргаться или забить? И как на них обстоит дело с Vulkan = нормально?
На Nvidia везде идёт нормально ))) и те, и те тестировались на Windows 7 / 10 x64.


#1
12:09, 20 сен. 2018

Iron Man
> и выяснилось, что на AMD он совершенно не идёт

ты прикалываешься или просто первый раз ? если первый раз такое - welcome to GL :)

#2
12:21, 20 сен. 2018
И как на AMD обстоит дело с Vulkan = нормально?

Нормально.
Если ты pushconstant функцией не будешь 256 байт передавать.
АМД только 128 тобишь две матрицы.

Ну и расширения NV не работают на АМД.

Делал Вулкан и тестил свой пример и на NVIDIA и на AMD. Работали это было в 2016 году.
Даже на Win XP Vulkan запустился.
Так же дрова влияют.
Когда скачал в 2018 году, новые дрова Вулкана, то перестали мои примеры запускаться.
Походу некоторые структуры были поправлены в тихоря Кроносами.

Дал тут парочке товарищей проверить свой движок и выяснилось, что на AMD он совершенно не идёт :)

Делай в дебаг режиме GL и выводи инфу в текстовый файл.
Что бы глянуть что не так происходит с твоим движком на АМД видеокартах.

#3
12:44, 20 сен. 2018

Iron Man
> Дал тут парочке товарищей проверить свой движок и выяснилось, что на AMD он совершенно не идёт :)
Возможно баг на твоей стороне, на убогом АПИ сложно писать, но если все делать аккуратно то работать будет, приведу пример, недавно сделал DrawIndirect при неверном порядке вызово VAO + glBindBuffer ничего не рисовалось, пока не поставил другой порядок вызовов, для сравнения: таких нюансов нету на Direct3D11 :)

1) чего используешь? какая версия? какой контекст?
2) Выкладывай минимальный проект, куски кода, поможем.
3) поддерживаю ronniko, GL_ARB_debug_output/GL_KHR_debug тебе в помощь, не забудь контекст с WGL_CONTEXT_DEBUG_BIT_ARB создать.

но на будущее все-же лучше Vulkan, или Direct3D11 минимум.

#4
12:51, 20 сен. 2018

Andrey
> для сравнения: таких нюансов нету на Direct3D11

для сравнения - запускается DX11 на Linux/Mac ? 10 лет прошло, каким был, таким и остался :)

> но на будущее все-же лучше Vulkan

рисовать кубики?

#5
12:56, 20 сен. 2018

Andrey
> 3) поддерживаю ronniko, GL_ARB_debug_output/GL_KHR_debug тебе в помощь, не
> забудь контекст с WGL_CONTEXT_DEBUG_BIT_ARB создать.

мда, если баг в драйвере - никакой debug не поможет

#6
14:03, 20 сен. 2018

Всё дело в кривом GL, с которого давно пора уже слезать. Баг драйвера для OpenGL - обычное являете, сколько раз уже замечал подобные косяки, взять тоже выключение интерполяции значение между геом и фраг шейдерами, ставишь flat, а интерполяция всё равно идёт на карте NVidia, хотя на AMD карте всё работало как надо; или же вот понадобился compute shader, на AMD карте всё работало, а на nVidia 1080ti - gl_GlobalInvocationID всегда нули выдаёт, бред какой-то... Забил и переписал всё на CUDA.
В общем, если хочешь нормально утилизировать железо, под AMD пиши на OpenGL/Vulkan/OpenCL, под NVidia - DirectX/Vulkan/CUDA

#7
14:13, 20 сен. 2018

innuendo
> мда, если баг в драйвере - никакой debug не поможет
Я тоже так решил, потому что на нескольких компьютерах с Nvidia идёт без проблем и на Win7, и на Win10. А с AMD не запускается ни на одном!
Пока время терпит, буду до конца осваивать OpenGL, а как опыта наберусь, перейду на Vulkan, всё равно у меня в будущем запланирован переход на него.

А что на счёт DX = крохоборы... нет = крохоборцы (идейные борцы за жалкие крохи) из Майкрософт мне откровенно омерзительны :)
Я хоть и разрабатываю свой движок исключительно под Винду, тем не менее перенёс его на GCC, а опрос геймпада с XInput на Raw Input, так что... )))
Всем спасибо = суть ясна!

#8
14:16, 20 сен. 2018

Iron Man
> А с AMD не запускается ни на одном!

что, конкретно, не работает?

#9
14:23, 20 сен. 2018

innuendo
Приложение просто вылетает, на одном компьютере успевает слинковать и сохранить кэш шейдерных программ (значит контекст создаётся и расшаривается), а на другой даже и этого нет.
Но если я не ошибаюсь, там видеокарта поддерживает только OGL 4.3 (на которой программы не слинковались), хотя, что самое интересное = на Nvidia с поддержкой OGL 4.3 пошло!
Я инициализирую контекст версии 4.6, расширения у меня используются пока не старше версии 4.3, только шейдеры грузятся SPIR-V (версия 4.6).

#10
15:05, 20 сен. 2018

Iron Man
> Приложение просто вылетает,
в каком месте вылет?
>на одном компьютере успевает слинковать и сохранить кэш шейдерных программ (значит контекст создаётся и расшаривается)
расшаренный контект? многопоточность что-ли? компилируешь шейдеры в разных потоках?
>OGL 4.3 (на которой программы не слинковались),
>расширения у меня используются пока не старше версии 4.3, только шейдеры грузятся SPIR-V (версия 4.6).
Наверное так: ты пытаешься подсунуть SPIR-V для AMD c OGL 4.3 который SPIR-V не поддержитвает, следовательно не линкует, ты потом может пытаешься рисовать и все падает.

#11
15:21, 20 сен. 2018

Ivashka
> Побираетесь у Гейтца, понятно
а причём тут Гейтц, дрова на CUDA и под Linux есть, Vulkan тоже под линуксом пашет, вот DX конечно же - виндус онли, да ну и хрен с ним, идеальный вариант - делать свою ось...
P.S.: сам сижу на винде :)

#12
15:30, 20 сен. 2018

Iron Man
> Приложение просто вылетает, на одном компьютере успевает слинковать и сохранить
> кэш шейдерных программ (значит контекст создаётся и расшаривается), а на другой
> даже и этого нет.

вот жесть ... неужеле нельзя проще писать ?

#13
16:08, 20 сен. 2018

Ошибка на вашей стороне. 

> GL_ARB_debug_output/GL_KHR_debug тебе в помощь, не забудь контекст с WGL_CONTEXT_DEBUG_BIT_ARB создать.
тут полностью поддерживаю

> на убогом АПИ сложно писать
Очень субъективное суждение

#14
16:15, 20 сен. 2018

0r@ngE
> > на убогом АПИ сложно писать
> Очень субъективное суждение

просто кто-то сначала оптимизирует

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.