Member
Статус: Не в сети Регистрация: 19.08.2010 Откуда: Прямо оттуда! Фото: 0
Т.к. в темеWindows 10 обсуждение DirectX 12 является офтопиком, пишем о нём и будущих играх с ним здесь. ******************************************************************************************** О самом DirectX 12 и его "Feature Levels" (какие ВК и какой уровень DirectX 12 поддерживают). Анонсированные игры: "Gears of War: Ultimate Edition (2016)" и "Deus Ex: Mankind Divided". Более полный список: "Список игр с DirectX 12" (немецкий язык, но нужная табличка и так понятна). ************************************************************************************* Одна "Игра в раннем доступе" уже вышла: "Ashes of the Singularity" (Steam). FPS у DirectX 12 примерно в 2 раза выше по сравнению с DirectX 11:
Ashes of the Singularity: DX11 vs DX12 Benchmarks by DigitalFoundry (видео):
Другой тест от GameGPU - в нём прирост всего около 5%. В общем пока всё неясно, и сама игра очень "сырая", её статус на 22.03.2016 - Beta. ************************************************************************* "Правила хорошего тона" (Локальные Правила) этой темы:
ЧИТАЕМ, ПРЕЖДЕ ЧЕМ ПИСАТЬ!:
1) Для начала ознакомиться с Правилами Конференции. 2) Категорически запрещается использовать красный цвет в сообщениях - оставьте его для Модераторов и Куратора! Рекомендуется также не злоупотреблять остальными цветами. 3) Все односложные сообщения (типа: "Аналогично", "+1...", "У меня также") будут стираться без предупреждений. 4) "Шапка" темы будет исправляться как можно быстрее. Куратор всегда в курсе всех изменений. Уважайте и цените труд Куратора - не подгоняйте его! 5) Обсуждение действий Куратора в теме не допускаются! Для этого есть ЛС (Личные сообщения). Прежде, чем написать - советую всё обдумать. "Дыма без огня не бывает!" 6) Предложения и вопросы по "шапке" и FAQ темы принимаются в ЛС (Личные сообщения). В самой теме этого делать не нужно. Спасибо за понимание!
Последний раз редактировалось Alex_Smile 22.03.2016 12:08, всего редактировалось 18 раз(а).
обновление статуса игры "Ashes of the Singularity"
Advanced guest
Статус: Не в сети Регистрация: 03.12.2004
Industrialice писал(а):
Где-то может и нет, где-то есть Было бы логично иметь разные названия, учитывая, что десктопные и консольные версии API имеют большие различия
Давно известно, что 11.2 на старте xbox one имел пару фич еще разрабатывавшегося 12 (в частности command bundles). Это не делает его особо уникальным, и не факт, что кто-то вообще успел воспользоваться. Т.к. системы для Xbox и PC разрабатываются параллельно, но релизы не синхронизированы, то логично, что иногда возникают подобные отличия. Практически все API, созданные специально для бокса (xinput, xaudio), раньше или позже добираются до десктопа и становятся на нем основными. Сейчас MS хочет окончательно убрать разделение со своим UWP.
Industrialice писал(а):
Вот тут разработчик DOOM говорит о том, что DX12 на XBO и Windows очень разные. На XBO потребуется отдельный код при желании добиться оптимальной производительности
Ничего про производительность там я не увидел. Код конечно не будет идентичен, потому что для бокса есть/необходим отдельный XDK. Но это отличия на уровне "vulkan под unix vs windows", код отличается на стадии инициализации API/устройства, но значимая его часть остается неизменной.
_________________ I came, I saw, I blew shit up, I came again
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
4e_alex выше был замечен валидный поинт, что система памяти на XBO отличается заметно от традиционной ПКшной. Разработчики любят жаловаться на то, что под неё сложно оптимизировать. И под неё нужно оптимизировать специально. А так я не знаком с XDK. Стал бы этот разработчик DOOM вообще отмечать разницу если она была бы почти что полностью только в инициализации? Это не имеет смысла. Кого волнует разница в инициализации
Advanced guest
Статус: Не в сети Регистрация: 03.12.2004
Industrialice писал(а):
Чем это вообще подкреплено, может, у вас есть цифры, которые показывают, насколько широко были использованы доступные низкоуровневые API, и насколько часто выбирались сторонние или нативные обёртки над ними? Мне было бы интересно на них взглянуть
выше был замечен валидный поинт, что система памяти на XBO отличается заметно от традиционной ПКшной. Разработчики любят жаловаться на то, что под неё сложно оптимизировать.
http://wccftech.com/crytek-explains-xbo ... dth-gains/ Они разбили сцену на тайлы, это даже не низкоуровневый какой-то подход. Тупость MS состоит в том, что они засунули esram к GPU, который рендерит не тайлами (что заставляет эмулировать такой рендеринг самого разработчика).
_________________ I came, I saw, I blew shit up, I came again
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
4e_alex писал(а):
В обоих случаях видим классическое "на низкоуровневые оптимизации не хватило времени".
Ну то есть у нас 2 примера для относительно новых PS4/XBO, которые ещё не так катастрофически отстают от ПК в производительности, как отставали XB360/PS3. Это для того, чтобы опровергнуть моё утверждение, что разработчики десятками лет на консолях использовали низкоуровневые API, чтобы выжать максимум? Gee, понятно, что и для XB360/PS3 поначалу многие могли использовать высокоуровневые обёртки, нужно было время освоить низкоуровневые, да и разрыв между консолями и ПК в производительности ещё не был так велик Я вот сейчас попробовал погуглить, нашёл кучу ссылок, где говорится, что LibGCM был использован большинством разработчиков на PS3. Можете сами попробовать погуглить это название, чтобы найти остальные. У кого-то из разработчиков были свои высокоуровневые обёртки над ним, но сама Sony даже не предоставляла полноценной альтернативы, PSGL по своим возможностям ни для чего серьёзного не годился
Advanced guest
Статус: Не в сети Регистрация: 03.12.2004
Industrialice писал(а):
Это для того, чтобы опровергнуть моё утверждение, что разработчики десятками лет на консолях использовали низкоуровневые API, чтобы выжать максимум?
Старье меня не интересует априори. На PS3 деваться было особо некуда с ее то "потенциалом". Это было в опровержение "сами просили о большем контроле на ПК". Прям представляю себе разработчика: "дайте мне API низкоуровневый, руки чешутся начать оптимизировать игру под миллионы возможных конфигов и десяток относительно живых архитектур GPU". Тут люди свой код то написать ленятся, даже id сдалась и в tech 6 понапихала middleware.
_________________ I came, I saw, I blew shit up, I came again
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
4e_alex писал(а):
Прям представляю себе разработчика
Michael Glueck, Crytek писал(а):
Having direct access to hardware would mean no drivers magically translating your byte code once again, and also having low-level memory management available, which you have to some degree with CUDA, and also your own thread scheduler would be really enjoyable. It definitely makes sense to have a standardised, vendor-independent API as an abstraction layer over the hardware, but we would also prefer this API to be really thin and allow more low-level access to the hardware. This will not only improve performance, but it will also allow better use of the available hardware features.
дайте мне API низкоуровневый, руки чешутся начать оптимизировать игру под миллионы возможных конфигов и десяток относительно живых архитектур GPU
Ну то есть до DX12 было по-другому? DX12 вообще ничего принципиально в этом отношении не меняет, кроме того, что добавил разработчикам возможностей, которые при том не все видеокарты сейчас полноценно поддерживает
Добавлено спустя 32 минуты 50 секунд:
4e_alex писал(а):
Прям представляю себе разработчика
Который выбирает С++ для написания ядра движка. Вот хипстер. Мог бы Java использовать, но зачем-то захотел использовать AOT язык с мануальным управлением памятью и детерменистическим временем жизни объектов. Теперь ещё захотел кастомного контроля над памятью и не только от графического API. Crazy batshit
Advanced guest
Статус: Не в сети Регистрация: 03.12.2004
Industrialice писал(а):
Ну то есть до DX12 было по-другому? DX12 вообще ничего принципиально в этом отношении не меняет, кроме того, что добавил разработчикам возможностей, которые при том не все видеокарты сейчас полноценно поддерживает
Конечно по-другому. За редким исключением рецепт был таким: кодим под наибольший общий делитель. Если у кого-то из вендоров что-то там в капсах в большую сторону выпирало, то оно просто игнорировалось (за исключением случаев, когда приходили специалисты от этого самого вендора с предложением помощи, в том числе финансовой). По такому рецепту было создано огромное количество шыдевров от EA, Ubisoft и пр.
Industrialice писал(а):
Который выбирает С++ для написания ядра движка. Вот хипстер. Мог бы Java использовать, но зачем-то захотел использовать AOT язык с мануальным управлением памятью и детерменистическим временем жизни объектов. Теперь ещё захотел кастомного контроля над памятью и не только от графического API.
Сомневаюсь, что управление памятью тут играет определяющую роль. MS уже очень давно толкает свой C# как основной язык. Без NETFX боксовый XDK даже не установится. Правда, психов, пишущих код на нем, пока нет. Сказывается немощность консольных CPU и очень медленная работа JIT-языков.
_________________ I came, I saw, I blew shit up, I came again
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
4e_alex писал(а):
Конечно по-другому
А причём тут сам по себе DX12? Новые фичи, которые слабо поддерживаются со стороны видеокарт, могли( и добавили ) в 11. Суть в том, что DX12 не такой уж низкоуровневый API, писать что-то под конкретную карту нужно не больше, чем это было раньше, с 11-ым. Но лишние, именно лишние абстракции, в нём убрали. Кто хочет получить более высокий уровень с более простой моделью программирования, может использовать надстройку над 12-ым. Или 11-ый, который всё ещё не списан со счетов
4e_alex писал(а):
MS уже очень давно толкает свой C# как основной язык
По-моему, уже скоро как 15 лет будет, как они это делают. Но для ядра движков всё равно выбирают С++, какой бы уродливый сам язык и не был. Майкрософт сами пытались переписать ядро Windows на C#, Vista должна была быть первой ОС с ним. В итоге потратили несколько лет, задержали выпуск ОС, но в итоге у них ничего не вышло и пришлось оставить С++ ядро
4e_alex писал(а):
Сомневаюсь, что управление памятью тут играет определяющую роль.
Одну из определяющих. Реально на замену С++ теперь появился Rust, который, в отличие от огромного числа конкурентов до этого, не полагается на GC. Для игрового движка, который не может себе позволить неожиданные остановки в работе и перерасход памяти, GC до сих пор не особо подходит, как бы он там хорошо не выглядел на бумаге и как бы не обещал не останавливать мир ни в коем случае
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
devl547 писал(а):
А что сразу не Go или Swift? Все "убийцы C/C++" заканчивают одинаково нишево.
Как вдруг Go оказался среди убийц С++? Он, для начала, из числа GC языков. По крайней мере серьёзнее Rust не было у С++ конкрурентов уже очень давно. Я не думаю, что тут есть провидцы, чтобы знать, какое будущее у Rust. С++ имеет столько недостатков, что победа современного Rust меня, например, не удивит ни разу, пускай язык сам по себе несколько хипстерский
Member
Статус: Не в сети Регистрация: 10.05.2011 Откуда: Москва
Industrialice писал(а):
Он, для начала, из числа GC языков.
Там не такое ядрёное GC, как в Java, например. А кому нужно, GC можно вообще отключить. А ещё есть Nim, например. В котором можно использовать GC, но который прямо заточен под мягкое реальное время (те же игры).
Ну и в Rust собираются GC добавить в будущем, срачи на этот счёт уже идут.
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
devl547 писал(а):
А кому нужно, GC можно вообще отключить.
Я этот аргумент даже не принимаю, Go не рассчитан на полноценное функционирование без GC. Можно вспомнить D, где GC так же отключается, а потом оказывается, что стандартная библиотека написана с рассчётом на GC, нужно от неё отказываться, а также от всех сторонних, которые тоже используют GC. Да и сам язык становится менее практичен
devl547 писал(а):
но который прямо заточен под мягкое реальное время (те же игры)
Я про это уже писал выше, про эти магические GC имплементации, которые обладают всеми преимуществами GC, и при том не будут создавать проблем даже при написании ядра игрового движка. Но если кто-то хочет рискнуть и написать полноценный движок надеясь на автоматический менеджмент - их право. Но что-то я таких на практике не знаю. Только Майнкрафт с их Джавой, с которой они мучались-мучались, и в итоге переписали движок на С++
Advanced guest
Статус: Не в сети Регистрация: 03.12.2004
Не совсем ясно, при чем тут конкретно DX12, если фича работает только в LDA-режиме. Ничто не мешало ее реализовать хоть 10 лет назад, опомнились. Думаю, что в каком-то виде оно и было уже, иначе бы храфик frametime был слишком мохнатым.
_________________ I came, I saw, I blew shit up, I came again
Member
Статус: Не в сети Регистрация: 01.06.2015 Фото: 3
knight_asdда я бы не стал такие выводы делать. Мелкомягкие его совсем для иных целей разрабатывали. Другой момент что набежали "любители красного потанцевала и халявы" и стали "втирать дичь" выдавая чемоданы за некий скрытый резерв. Мб через лет 5, когда он зайдет на рынок плотно и будут первые реальные успехи. Если к тому времени все консолепорты не угробят(
Member
Статус: Не в сети Регистрация: 10.05.2011 Откуда: Москва
knight_asd писал(а):
На нвидиа ситуация обратная
У них dx11-драйвер умный слишком) В dx12 сфера его ответственности резко упала, поэтому руки разработчиков он исправить не может. Хотя, ИМХО, разработчики Хуанга уже должны вовсю думать, куда влезть чтобы возможность маневра вернуть.
devl547 Выше писали, что в дх 12 драйвером тоже можно работать, но не так активно. Амд драйвер не поддерживает differred contex, от этого и такая процесорозависимость. Почему амд так и не написала драйвер - хз.
_________________ Intel Core i5 12400f, Asus PRIME b660m-k d4, DDR4 3200 CL19 16 gb RAM, Аsus DUAL RTX 3060TI, WD BLACK SN770 1TB, Windows 11 HOME
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения