HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > D3D11 и D3D_FEATURE_LEVEL_9_1
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


D3D11 и D3D_FEATURE_LEVEL_9_1

В новых версиях директа (начиная с 10-го) появилась такая концепция как feature levels, облегчающая поддержку устаревшего и не очень устаревшего железа. То есть теперь поддержка видеокартой определенного FL гарантирует некий минимальный набор фич и можно не страдать параноей, проверяя каждый отдельный параметр на предмет того, что программа в него влезет.

Кто пользовался данной фичей? С какими подводными камнями сталкивались? Правильно ли я понимаю, что поддержка определенного FL допускает, что отдельные параметры могут превышать значения определенные в данном FL? То есть конкретная видеокарта может например поддерживать текстуры больше чем 2к несмотря на заявленный D3D_FEATURE_LEVEL_9_1?

Еще меня смущает отсутствие третьих шейдеров: в 9-х FL поддерживаются только вторые, а в 10-х уже четвертые. Можно ли скормить 11-му директу третий шейдер? Какой таргет при этом использовать?

Сообщить модератору | | IP: Записан
Сообщение: 184438

Старое сообщение 09-10-2019 19:56
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Я что-то слышал про feature levels, но никогда не использовал.
Использую D3D9, третьи шейдеры и кое-какие недоки, в принципе для нужд Волатилы хватает. Шейдеры пишу на Cg, в разные таргеты компилирует он сам. Есть и собранные таргеты под DX11, которые можно будет в будущем подключить к DX11-рендеру, если мне будет совсем нечего делать и я начну очередную амелиорацию движка.
Попробуй собрать таргеты vs_3_0 и ps_3_0 и скормить их директу, это точно рабочие профили девятых иксов.

Цитата:
Government-Man писал:
можно не страдать параноей, проверяя каждый отдельный параметр на предмет того, что программа в него влезет.

Это зависит от философии разработки.
Есть философия минимального набора фич, который составляет целостную картину мира, в которой функционирует движок. А есть философия "используем то, что есть, и в любом порядке", когда движок умеет постоянно переключаться между разными подходами (или рендерпатчами, если угодно) в зависимости от подлежащего железа. Во втором случае проверка капсов - это не параноя, а совершенно рабочий механизм.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 184439

Старое сообщение 10-10-2019 03:50
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Government-Man писал:
облегчающая поддержку устаревшего и не очень устаревшего железа

Особого смысла всё это не имеет, ведь D3D11 не заведётся на XP, где есть старое железо, а поставить дышатку на такое устаревшее железо едва ли получится.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 184440

Старое сообщение 10-10-2019 07:58
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Дядя Миша
А семерку?

Сообщить модератору | | IP: Записан
Сообщение: 184444

Старое сообщение 10-10-2019 15:10
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Government-Man мне отчего-то кажется, что надо абстрагироваться версией API на нормальном уровне, а не искать в новых API пути совместимости. Совместимость она или есть, или её нет. А это полумеры.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 184445

Старое сообщение 10-10-2019 15:13
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
мне отчего-то кажется

Отчего тебе так кажется?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 184457

Старое сообщение 10-10-2019 17:49
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Шейдеры пишу на Cg


Прикольно, он еще жив?

Цитата:
XaeroX писал:
Использую D3D9


Как впечатления по сравнению с гл кстати? Если я правильно помню, они положительные?

Цитата:
XaeroX писал:
Попробуй собрать таргеты vs_3_0 и ps_3_0 и скормить их директу


Да, я так и думал сделать. Но пока что я влезаю в vs_4_0_level_9_1 и ps_4_0_level_9_1 (это типа вторые шейдеры но с семантиками из четвертых). Если повезет, то их хватит.

Сообщить модератору | | IP: Записан
Сообщение: 184466

Старое сообщение 10-10-2019 18:06
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Government-Man писал:
Прикольно, он еще жив?

Ну он депрекейтед и дисконтинуед, но то что есть, вполне работает. Но таргеты DX11 - это максимум. DX12 уже не поддерживается, как и вулкан.
А што, Cg уже убрали из Юнити?
Цитата:
Government-Man писал:
Как впечатления по сравнению с гл кстати? Если я правильно помню, они положительные?

В целом - те же яйца, только в профиль.
Но легче дебажить и лучше документация, как мне показалось.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 184468

Старое сообщение 10-10-2019 18:18
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Ну он депрекейтед и дисконтинуед


Так это ж хорошо - если обновлений не выходит, значит у тебя всегда последняя версия, а все ее баги гордо именуются особенностями.

Цитата:
XaeroX писал:
А што, Cg уже убрали из Юнити?


Вроде бы нет.

Цитата:
XaeroX писал:
DX12 уже не поддерживается, как и вулкан.


А ты вулкан с дх12 еще не ковырял?

Сообщить модератору | | IP: Записан
Сообщение: 184469

Старое сообщение 10-10-2019 18:41
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
XaeroX писал:
Отчего тебе так кажется?

ну чёб не плодить сущности.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 184471

Старое сообщение 10-10-2019 20:15
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Government-Man писал:
Так это ж хорошо - если обновлений не выходит, значит у тебя всегда последняя версия, а все ее баги гордо именуются особенностями.

Да, это важный плюс. Но с другой стороны, есть страх однажды напороться на фатальный баг, который уже некому фиксить.
Цитата:
Government-Man писал:
А ты вулкан с дх12 еще не ковырял?

Ещё нет. У меня руки до DX11 и GLES2+-рендеров пока не дошли. Я в последние три года вообще очень мало графикой занимаюсь, много других задач.
Цитата:
Дядя Миша писал:
ну чёб не плодить сущности.

Если ты делаешь проект для программистов - то да, чем меньше сущностей в движке, тем проще и понятнее код. А вот игрокам плевать, какая там гремучая смесь условий и веток, лишь бы на их компах игра работала. Нужно искать золотую середину, кмк.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 184476

Старое сообщение 11-10-2019 06:31
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
XaeroX писал:
Если ты делаешь проект для программистов

Любая программа делается для программистов, как минимум одного - самого себя. Тебе жы потом и разбираться с этим дерьмом.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 184480

Старое сообщение 11-10-2019 07:16
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Заметил еще одну странность...

В шейдерах как известно есть ограничение на количество сэмплеров - обычно их 16. В версиях шейдров до 4-й текстуры биндились непосредственно к сэмплерам, а вот начиная с 4-й версии сэмплер и текстура это разные сущности - сэмплеров (правильнее теперь - сэмплер-стейтов) так и осталось 16, а вот текстур стало можно пихать дофигища.

В ps_4_0_level_9_1, насколько я понял, новое поведение эмулируется: в коде шейдера текстура и сэмплер - разные сущности, однако в реале для каждой пары сэмплер-текстура используется отдельный регистр.

И вот тут есть странность. Раз в SM2.0 есть 16 сэмплеров, то логично предположить, что на них можно забиндить 16 текстур. Однако таблица с описанием совместимости апи дает следующие ограничения:

Для ID3D11DeviceContext::PSSetSamplers: No more than 16 samplers can be bound
Для ID3D11DeviceContext::PSSetShaderResources: No more than 8 simultaneously bound shader resources

То есть сэмплер-стейтов можно забиндить 16, а текстур - всего 8!

А теперь внимание вопрос: уважаемые знатоки старого железа, с чем может быть связано такое ограничение? Связано ли оно с тем, что существовало большое количество железа, на котором количество уникальных текстур было ограничено 8-ю, несмотря на наличие 16-ти сэмплеров?.. Минута на обсуждение...

Отредактировано Government-Man 13-10-2019 в 00:51

Сообщить модератору | | IP: Записан
Сообщение: 184582

Старое сообщение 13-10-2019 00:49
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
Government-Man писал:
То есть сэмплер-стейтов можно забиндить 16, а текстур - всего 8!

Можно забиндить 16 текстур, но текстурных координат передать не более 8.
Вернее, если я правильно понимаю, в ps_3_0 можно передать не более 10 input registers, которые включают вообще всё. Ну обычно это по семантике POSITION, COLOR и 8 TEXCOORD-регистров. Т.к. шейдер может делать dependent texture reads, то вполне можно засэмплить в нём 16 текстур.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 184584

Старое сообщение 13-10-2019 04:34
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


XaeroX
Ну тогда получается, что это какое-то дурацкое искусственное ограничение для вторых шейдеров на 11-м директе. Ведь никто вроде не запрещает использовать одни и те же текстурные координаты для разных текстур?

Еще из ограничений - написано что общее число констант для VS и PS не должно превышать 256 и 32 соответственно. Если это правда, то получается, что на SM2.0 в дх-11 можно использовать только флоат-константы, а булы и инты - нельзя...

Разумеется для моих текущих целей этого всего пока хватает за глаза и я вряд ли упрусь в эти ограничения. Но в целом у меня пока создается впечатление, что максимум из DX9-железа при помощи DX11 не выжать, так что тем кто к этому стремится, логичнее использовать девятый директ.

Сообщить модератору | | IP: Записан
Сообщение: 184585

Старое сообщение 13-10-2019 05:14
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 22:53. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > D3D11 и D3D_FEATURE_LEVEL_9_1
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024