Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Как узнать производителя видеокарты? (В OpenGL) (2 стр)

Как узнать производителя видеокарты? (В OpenGL) (2 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
FordPerfectПостоялецwww2 июня 201822:32#15
...сама думает, а внутре у ней нейронка!
v1cПользовательwww2 июня 201823:03#16
CapSopener
Есть уникальные для каждого вендора расширения.
DelfigamerПостоялецwww3 июня 20182:33#17
> обучи нейронную сеть по списку определять венодора
А в чём смысл? ОП пишет детектор видеокарт?

Правка: 3 июня 2018 2:33

Daniil PetrovПостоялецwww3 июня 20182:54#18
Попробуй проверить на поддержку распространённых вендорозависимых расширений типа ATI / NV и т.д.
skalogryzУчастникwww3 июня 20182:56#19
GL_VENDOR
DelfigamerПостоялецwww3 июня 20183:45#20
Daniil Petrov
> Попробуй проверить на поддержку распространённых вендорозависимых расширений
> типа ATI / NV и т.д.
Не, не надо сразу давать такие сложные решения, вы лучше расскажите - зачем нормальному человеку определять вендора с такой точностью?

Правка: 3 июня 2018 3:45

Daniil PetrovПостоялецwww3 июня 20184:46#21
Delfigamer
> зачем нормальному человеку определять вендора с такой точностью?
А хрен его знает :)
+ Показать

Я вообще избегаю вендорозависимых расширений и SDK, а доступную информацию о железе получаю только для вывода в лог.

Правка: 3 июня 2018 4:48

skalogryzУчастникwww3 июня 20188:16#22
о! написал проверку по GL_VENDOR-у
если у кого есть желание - поганяйте.
приложение консольное, выдает в stdout примерное такие вот сообщения:
Card:    GeForce GT 330M/PCIe/SSE2
Vendor:  NVIDIA Corporation
Version: OpenGL 3.3.0

Card is vcNvidia
собственно, строчка "Card is vcNvidia" это и есть кульминация парсинга "Vendor" (что есть GL_VENDOR)

сам код парсинга выглядит так:

function DetectVideoCorp(const vendor: string): TVideoCorp;
var
  n : string;
  i : integer;
begin
  n:=lowercase(vendor);
  if pos('nvidia', n)>0 then Result:=vcNvidia
  else if pos('intel',n)>0 then Result:=vcIntel
  else begin
    i:=pos('ati',n);
    if (i>0) and ((i+3=length(n)+1) or (n[i+3] in [' ',#9,#13,#10])) then Result:=vcAti
    else Result:=vcOther;
  end;
end;
+ Показать

Правка: 3 июня 2018 8:19

g-contПостоялецwww3 июня 201811:24#23
Проверка по вендору нужна например для подсчёта кол-ва юниформов, для ATI надо делить на 4, причём не для каждой ATI. Для совсем старой серии - не надо. Убывбы. Ну и еще для Intel надо принудительно выключать GL_EXT_texture_load_bias если он используется.
g-contПостоялецwww3 июня 201811:26#24
skalogryz
для ATI еще проверку на AMD надо сделать, не?
innuendoПостоялецwww3 июня 201811:30#25
g-cont
> Проверка по вендору нужна например для подсчёта кол-ва юниформов, для ATI надо
> делить на 4, причём не для каждой ATI.

Жесть какая-то, делаешь render paths и всё. 

barnesПостоялецwww3 июня 201811:40#26
Ну... я то думал человек хочет PCI id карточки проверять, чтобы знать АСУС там или МСИ....
Daniil PetrovПостоялецwww3 июня 201813:13#27
g-cont
> Проверка по вендору нужна например для подсчёта кол-ва юниформов
А разве на более или менее последних картах они сильно отличаются? Например у GTX 780 Ti и её аналога от AMD :)
g-contПостоялецwww3 июня 201813:30#28
Daniil Petrov
стандартно, чем меньше круг поддерживамого железа тем меньше заморочек. Особенно если отсечь все карточки, которые не могут в вулкан, например.
innuendoПостоялецwww3 июня 201814:55#29
g-cont
> Особенно если отсечь все карточки, которые не могут в вулкан, например.

это всё разговоры в пользу бедных

можно же сделать базовый render path самый минимум и всегда откатываться на него если что

Страницы: 1 2 3 4 5 6 7 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр