The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект Wine выпустил Vkd3d 1.3 с реализацией Direct3D 12 "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Проект Wine выпустил Vkd3d 1.3 с реализацией Direct3D 12 " +1 +/
Сообщение от Аноним (22), 04-Мрт-22, 02:25 
> Тогда как Direct3D 10 требовал новую модель драйверов, которая есть только в Windows Vista, и на которую производители графических карт переходили с большим трудом...

Хочу дополнить...

Важным отличием DirectX 10 от 9 является то, что до 9 - это фреимворк, а 10+ - это модуль ядра Windows. Именно в этом. Помните как DirectX устанавливался и обновлялся через инсталлятор, который тащил в себе все версии библиотек за всё время с которыми могло динамически линковаться приложение? Так вот 10 и далее всегда были в комплекте с Windows и не могли быть установлены на другую версию ОС (другая мажорная версия ядра). Все помнят что DirectX 10 нельзя поставить на Windows XP, но в виду непопулярности DirectX 10 мало кто задумывается, что его нельзя поставить на Windows 7, например. По архитектуре DirectX 10+ это совсем другое.

Причиной такого серьезного изменения явилось стремление перейти на композитный рабочий стол который использовался впервые в Windows Vista и стал единственной опцией работы начиная с Windows 8. Теперь через DirectX производилась отрисовка элементов среды рабочего стола. При этом старая традиционная графика уровня ядра Windows GDI так никуда и не делась и продолжила существовать в ядре для обратной совместимости (рендеринг старых шрифтов, работа приложений для WinForms, печать и прочее).

Для того чтобы композитинг заработал было добавлено многопоточное и всегда асинхронное API DirectComposition, которое стало обязательным и через него производится рендеринг кадров передаваемый на буферы для отрисовки. Компоновка же происходит в процессах dwm.exe (сам композитор).

При этом были несколько попыток реализаций композитного рабочего стола с использованием OpenGL и X11, которые по началу имели весьма сложную архитектуру. Реализация композитинга DirectX полагалась на COM и маршалировала пересылаемые объекты между процессами в рамках сессии в буферы композитора с использованием win32k.sys, API которого был расширен для возможности бесшовной работы старых GDI-приложений и новых приложений (сравнительно новых... начиная с WPF). Для решения этих архитектурных сложностей в Linux было сначала принято решение по аналогии с Windows добавить минимальное графическое API в ядро (DRM/KMS) организующее единую точку входа для юзерспейс приложений, которые используют API OpenGL. Для еще большего приведения в порядок и упрощения архитектуры было принято решение вынести на сторону юзерспейса композитор (по аналогии с DirectComposition/DWM), отказавшись от ненужных прослоех двойных буферов и двойных драйверов (юзерспейс-драйвер отдельно и драйвер ядра отдельно) и вот это мы уже знаем как Wayland.

При работе с Desktop в этот момент как раз и произошел максимальный раскол между DirectX и OpenGL. DirectX ушел в ядро Windows и расширил себя дополнительными API для композитинга, но оставил API DirectShow в юзерспейсе (выгнал его в Core Api на самом деле) в то время как OpenGL остался фреимворком в пространстве пользователя.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект Wine выпустил Vkd3d 1.3 с реализацией Direct3D 12 , opennews, 03-Мрт-22, 11:00  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру