Пользователи и DirectX 10. Часть первая: Microsoft
В данном цикле статей мы ознакомим вас с информацией, связанной с новой версией DirectX. Информация получена от лиц, которые к данному вопросу имеют самое прямое отношение. Первая статья посвящена соображениям самой компании-разработчика API – Microsoft. Предлагаем вашему вниманию интервью с Дэвидом Блайсом и Крисом Донахью…
Общая картина DX10
ExtremeTech: Быть может, каждый из вам расскажет о своей роли в разработке и адаптации DirectX 10.
Блайс: Моя основная работа – диалог с разработчиками игр и компьютерных устройств о тех проблемах, которые мы пытаемся решить. Затем мы создаем архитектуру так, чтобы решить максимальное количество проблем. После этого мы переходим к более детальному обсуждению архитектуры и готовим спецификацию, затем передаем ее команде разработчиков, которая готовит модели, работающие с драйвером, который написан независимым вендором IHV (прим. Independent hardware vendor). Дальше работает с командой SDK, готовим сэмплы и демо, которые показывают, как работает система.
Донахью: Дэвид упомянул про работу с IHV и ISV (прим. Independent Software vendor)…существует комиссия экспертов по вопросу графики и графических устройств, в которую входят самые яркие умы индустрии. Дэвид и многие члены команды DirectX и группы Graphics Platform Unit тратят уйму времени на то, чтобы создать новое поколение графического API. Но все эти разговоры выливаются не только в актуальный код API, но также и в реальные компьютерные устройства. Это действительно беспрецедентное сотрудничество команды разработчиков Microsoft, различных ISV, которые являются непосредственными потребителями API и создателями приложений, реализующих преимущества данного API, и создателями устройств.
ExtremeTech: DirectX, безусловно, больше, чем просто графика. Это и DirectSound, DirectInput и т.д. Насколько значительно изменятся эти элементы под воздействием DirectX 10 и изменяться ли вообще?
Донахью: На самом деле, не так заметно. Если вы хотите реальный пример, то возьмем контроллер. Контроллер Xbox 360 и вся периферия должны работать в Windows. Чтобы реализовать это, мы берем XInput, используемый для Xbox, конвертируем или модифицируем его так, чтобы он работал в Windows. Поэтому XInput для нас является наиболее предпочтительным API, если мы хотим реализовать преимущества всех органов управления и компонентов, относящихся к периферийным устройствам. Что касается DSound – да, мы обновили его чтобы компонент оставался актуальным, но мы более не хотим в него вкладывать свои усилия. В разработке находятся другие аудио-компоненты низкого и высокого уровня, но пока, к сожалению, не могу сообщить подробности.
ExtremeTech: Какие изменения и улучшения по сравнению с предыдущей – девятой – версией несет нам DirectX 10?
Блайс: Это достаточно сложный вопрос, потому как слишком многое изменилось. Могу сказать, что нашей основной задачей было увеличение эффективности DirectX. Изменений также коснулись принципы работы API." Таким образом, приложения могут реализовать более материальные изменения – изменения в описании геометрии. Тем не менее, это совсем не значит, что в API появятся функции типа "включите и получите прирост производительности".
Также изменения коснулись согласованности функций с точки зрения аппаратной реализации, которая упростит разработчикам создание кроссплатформенных систем. Это позволит определить универсальный набор функций, который будет присутствовать в каждом устройстве.
Затем, если углубиться в отдельные характеристики, мы добавили набор целочисленных инструкций и геометрические шейдеры. Также были внесены изменения в конвейер - мы пытались переложить часть операций с центрального процессора на графический. Таким образом, повторяющиеся операции теперь будут выполняться GPU без необходимости сортировки возвращенных данных с CPU, обрабатываться на конвейере и возвращаться.
ExtremeTech: Вы же вряд ли посмотрели на скриншот и сказали: "Вау, смотри, сколько инструкций на том скриншоте!", ведь так?
Блайс: Так. Но глядя на другие реализованные задачи, как добавленные геометрические шейдеры, можно перенаправить выходные данные в память, вернуть и использовать участок памяти в качестве вертексного буфера. Это позволит более просто реализовать такие элементы, как системы частиц. Конечно же, более просто по сравнению с предыдущим поколением API.
Почему данная версия предназначена исключительно для Windows Vista
ExtremeTech: Часть сказанного вами о увеличенной эффективности основана на новой модели WDDM (прим. WDDM – Windows Display Driver Model), правда?
Блайс: Верно.
ExtremeTech: Многие с сожалением говорят: "Ох, ну почему же нет DirectX 10 для Windows XP?!". Но есть ведь тому грамотное техническое объяснение, почему нельзя применить DX10 в модели драйверов Windows XP.
Блайс: Как я уже говорил, мы хотим объединить приложения, API и аппаратное обеспечение. В течение ближайших пяти лет мы планируем многое сделать и пока будет преждевременно сказать: "будет версия и для Windows XP" – пока такая задача не стоит. Это будет аналогично тому, если спросить нас, хотим ли мы вообще усовершенствования API?
ExtremeTech: Даст ли новая модель ощутимый прирост производительности всей графической системы?
Блайс: Скорей всего, да. Но с точки зрения API, вы не увидите внезапных изменений в производительности, которые мы хотели бы видеть в ближайшие годы.
Донахью: Есть много других преимуществ в новой модели. Не только производительность и графические компоненты. В любом случае, все это имеет отношение к графике. Но стабильность и другие компоненты, которые принесет новая модель, также являются огромным преимуществом.
ExtremeTech: Можно чуточку поподробнее? То есть это имеет мало общего с загрузкой драйвера непосредственно в ядро, так?
Блайс: Одной из основных причин для создания новой модели драйверов было не просто увеличение производительности DirectX 10, но увеличение стабильности системы. Первое, что было сделано для этого – это согласование работы видеокарты и действий модели драйвера, которая должна соответствовать быстро меняющимся поколениям устройств, сама оставаясь без возможности изменений. Часть этих изменений подразумевает перенаправление вычислений с ядра в область, отведенную пользователю, что теоретически поможет снизить количество BSOD, вызванными проблемами с ядром. Таким образом, если в драйвере есть ошибка, это не навредит всей системе.
Мы хотим виртуализировать приложения таким образом, чтобы ресурсы графического устройства были доступны максимальному количеству «потребителей». Эти сродни эволюции CPU, работающих в режиме разделения времени, когда есть возможность одноврeменного запуска нескольких приложений, которые делят между собой процессорное время. В тоже время память становится виртуализированной так, что приложениям выглядят так, что им доступные все ресурсы памяти. Тоже самое мы хотим сделать и для графической стороны приложения. Короче говоря, новая модель драйверов создана, чтобы воплотить наши идеи.
ExtremeTech: Всем известно, что рабочий стол в Vista прорисовывается с помощью DirectX 9. Что произойдет, если у вас карта с поддержкой DirectX 10? Будет ли рабочий стол прорисовываться с помощью DX9 или все-таки DX10?
Блайс: Нет, рабочий стол будет также, как и сегодня использовать DirectX 9. Становится сложным совместно создавать низкоуровневую технологию и что-то, что располагается над ней. Желательно, чтобы между ними была временная задержка. В тоже время мы внесли несколько незначительных изменений в DirectX 9 с целью снабдить API новыми функциями, необходимыми для прорисовки рабочего стола. Для нас лучшим вариантом является единая согласованная платформа. Даже если мы представим преимущества, который получит рабочий стол от использования DX10, пока нам проще исправить недоработки DX9. По прошествии некоторого времени, когда у нас будет обкатанная аппаратная платформа для DX10, мы подготовим следующий релиз, в котором, быть может, переведем весь рабочий стол на 10-ую версию DX.
Новые геометрические шейдеры и конвейеры
ExtremeTech: Вы упоминали о новых геометрических шейдерах. Быть может, вы поведаете нам, что такое геометрические шейдеры? Мы знаем о пиксельных шейдерах, слышали о вертексных (прим. вертексные шейдеры также известны, как вершинные шейдеры), но многие спросят: "А что такое геометрические шейдеры?"
Блайс: Традиционная модель такова: вершины, расположенные в начале конвейера, трансформируются и перегруппировываются в треугольники. Затем происходит растеризация, после чего треугольник снова раскладывается на фрагменты, которые потом индивидуально обрабатываются пиксельным шейдером.
Геометрический шейдер находится как раз между этими двумя этапами и он имеет доступ к вершинам треугольников, причем сразу же после этапа его сборки. Геометрический шейдер может выполнять две различные задачи: может увеличивать число треугольников так, чтобы взять их вершины и создать новый набор треугольников. Или просто может создавать новый набор точек, или набор линий, чтобы затем транслировать ее в растеризатор для генерации пиксельных фрагментов. Мы можем взять точку и сгенерировать набор треугольников вокруг этой точки и расширить до спрайта. Или можно разобрать треугольник на еще меньшие треугольники так, чтобы это выглядело как мозаика. Или можно вывернуть грани треугольника.
Одна из существующих проблем - это необходимость получения достаточного количества информации графическим процессором от CPU. Теперь, когда мы можем генерировать информацию непосредственно на графическом процессоре, эффект «горлышка бутылки» исчез (прим. эффект «горлышка бутылки» в компьютерном мире, как правило, вызван ограниченной пропускной способностью шины, а не ограниченными ресурсами устройства).
ExtremeTech: Теперь стало возможным переложить часть задач процессора на видеокарту: обнаружение пересечений или вычисление затененных поверхностей. У разработчиков появилась возможность использования геометрических шейдеров при грамотном распределении системных ресурсов.
Блайс: Да, это делает систему действительно интересной. Эта возможность дает разработчикам большую гибкость, позволяет делать такие вещи, о которых раньше нельзя было и мечтать, которые было позволено делать исключительно на CPU. Но постоянный обмен огромными по современных меркам объемами информации между центральными и графическими процессорами идет не в пользу производительности в той или иной игре.
ExtremeTech: Многие восхищаются, сравнивая DX10 с тем, что мы видим в новом поколении консолей. Конечно, PlayStation 3 и Xbox 360 используют графику поколения DirectX 9. В случае PS3 это особенно очевидно, потому как в качестве графического ускорителя используется GPU из линейки GeForce 7. Пример Xbox 360 несколько отличается и в ней есть некоторые черты DX10. Не могли бы вы точнее объяснить, чем DX10 будет отличатся от того, что мы видим в новых консолях?
Блайс: То, над чем мы бьемся, - это более эффективное генерирование информации в рамках конвейера. Тем не менее, на консолях следующего поколения этого нельзя добиться, даже несмотря на то, что у них имеются свои уникальные возможности. Есть и вещи как набор целочисленных инструкций, который также недоступен для консолей. Возможно имитировать этот набор путем использования операций с плавающей точкой, но это крайне сложная задача и многие считают, что на ее решение потребуется слишком много времени. С другой стороны, набор целочисленных инструкций позволяет осуществлять намного более интересные адресные вычисления, упаковку и распаковку битов информации. Эти вещи не являются функциями в себе до тех пор, пока это не связано с каким-либо эффектом визуализации. Это позволит выполнять более интеллектуальные инструкции непосредственно на графическом процессоре.
Донахью: Хотя Crysis недавно показал, что мы не все знаем о DirectX 9.
ExtremeTech: Да уж. Пользователей сбивает с толку этот пример и они говорят: "О, выглядит, как DirectX 10". Но насколько я знаю, это были скриншоты DX9, просто они выглядят настолько поражающе, что люди смущаются и называют это DX10.
Донахью: Да уж. Это один из финтов, выполненных парнями из Crytek. Это действительно скриншоты, они ведь не художники, а разработчики. Мы очень тесно сотрудничаем с ними и другими разработчиками, которые хотят, чтобы на коробках с их играми красовался логотип DX10. И как сказал Дэвид, это даст возможность генерирования большего количества информации на самом конвейере. Уровень сложности растет не столько для того, чтобы позволить объектам двигаться более реально, сколько для того, чтобы увеличить число одновременно двигающихся объектов. Думаю, что DirectX 10 как нельзя лучше подходит для этой цели.
Графические процессоры поколения DX10 — больше, чем просто графика
ExtremeTech: Не всегда физика компьютерных игр близка к физике реального мира. Что нам покажет DirectX 10 в плане физики, конечно же, по сравнению с DX9?
Блайс: Вы знаете, DX10 позиционируется как API для обыкновенных задач. Но что касается физики – DX10 отлично подходит для этой цели. Но его преимущества не кончаются лишь физикой – они касаются всех графических вычислений. Все, кто увидят графику DX10, не смогут оторвать глаз.
ExtremeTech: Видео – это другая область, смотря на которую не перестаешь удивляться, насколько много усилий вкладывают производители в свои решения. Сможет ли DX10 сделать современные GPU более производительными в этом отношении?
Блайс: Безусловно. В данной сфере наши партнеры среди разработчиков аппаратного обеспечения продолжают внедрять инновации. На столь широком рынке существует много задач, которые нужно выполнить. В частности это касается видео-процессинга и более продуманной обработки изображений. Те нововведения, которые появятся в DX10, дадут производителям непаханое поле возможностей.
ExtremeTech: Расскажите, пожалуйста, о том, над чем конкретно сегодня работают ваши сотрудники. Очевидно, что вам не позволено называть имена или делать какие-либо заявления, но прошу вас описать некоторые новые эффекты – в общем, разницу. Если бы сегодня я играл в DX10-игру, что бы я увидел, что радикально отличает эту игру от DX9-игры?
Блайс: Крис уже начал говорить об этом. Наиболее очевидной станет серьезно возросшая сложность и детализация игр, причем это может принимать различные формы. Листья, трава, скалы, деревья. Можно подумать, что это не суть как важно, но именно это позволяет сделать текущий игровой ландшафт богаче. Кроме того, теперь элементы ландшафта, к примеру, листья выглядят по-разному, а не как размноженные копии. Благодаря DX10 у нас появилась возможность добавить новые эффекты затенения, мы можем моментально менять геометрию объектов – это, безусловно, добавляет сцене сложности.
Чтобы создать более качественных персонажей, мы обратили свои взоры на техники типа displacement mapping (прим. процесс создания карт смещения). Это также добавляет сложность силуэтам персонажей. Появились новые виды освещения, тени. Мы находимся в поиске улучшенных техник мягких теней, которые могут быть использованы геометрическими шейдерами.
Взаимодействие с разработчиками
ExtremeTech: Вычислительная мощь GPU быстро растет, а пропускная способность памяти - нет. Она медленно-медленно двигается в верном направлении, но не удваивается и не утраивается вместе с мощью графических процессоров. Насколько я знаю, вы тесно сотрудничаете с независимыми поставщиками комплектующих. Работаете ли вы над более эффективным использованием полосы пропускания памяти?
Блайс: В последнее время это стало насущной проблемой. В частности, как вы отметили, играм требуется более широкая полоса пропускания памяти, так как растет количество информации о текстурах. Нельзя не заметить рост разрешения мониторов, что накладывает определенные условия на детализацию видео-информации. Поэтому в DX10 мы увеличили максимальные размеры текстур: по сравнению с размерами, используемыми в DX9 - 2048x2048 или 4096x4096, максимальный размер текстуры в DX10 равен 8192x8192. Если в линейке графических ускорителей существует постоянный набор функций, то разработчикам игр будет необходимо сконцентрироваться на производительности (а не на функциях) и только менять разрешение. Вместе с игрой разработчики должны предоставить на выбор все возможные разрешения, а при установке DX10 сможет выбрать подходящее для используемой видеокарты разрешение.
ExtremeTech: DirectX 9 вносил путаницу, так как для одних целей требовались пиксельные шейдеры версии 2.0, а для другой - версии 3.0. Это причиняло лишнюю головную боль для разработчиков, но также и для покупателей, потому что покупатели, покупая «Графическую карту DirectX 9», не знали, что они действительно покупают. Но производителей комплектующих такая ситуация радовала, потому что им нравится отличаться. Им нравится добавлять новые функции. Как Microsoft сможет обеспечить в DirectX 10 баланс между возможностью добавлять новые функции у производителей видеокарт и пользователями с разработчиками, которые хотят получить унифицированный набор возможностей?
Блайс: Мы внимательно относимся ко мнению разработчиком игр, потому как сами хотим получить постоянный набор функций. В DirectX 10 существует весьма ограниченное количество дополнительных возможностей. Есть поддержка различных видов мультисэмплиногового антиальясинга (прим. multisample antialiasing). Есть возможность фильтрации 32-битных текстур. Действительно важным является возможность выполнения 32-битных операций с плавающей запятой внутри блока разработки текстур или блока блендинга (прим. blending – смешивание), хотя за это приходится расплачиваться аппаратными ресурсами. Поэтому не каждый производитель графических решений желает использовать такой вариант.
Среди перечисленных трех вещей мультисэплинг – одна из технологий, которой мы хотим уделить особое внимание, но это планы на будущее. В нынешней ситуации оказывается, что 32-битное смешивание и фильтрация текстур находятся не на первом месте приоритетов разработчиков игр.
ExtremeTech: Будет ли справедливо сказать, что в DX10 необходимость в иных требованиях отпадает, то есть остается всего три?
Блайс: Это правда.
ExtremeTech: И если действительно этих требований три, то разработчикам не о чем волноваться.
Блайс: Я не хочу давать никаких обещаний, что их всегда будет три. Мы все-таки надеемся (смеется), что с течением времени появятся новые версии DirectX , которые обзаведутся новыми наборами функций.
Будущее DirectX
ExtremeTech: Мы успели познакомится с несколькими реинкарнациями DirectX 9, которые хотя и были поколения "DX9", но имели отличные друг от друга возможности. Произойдет ли тоже самое и с DirectX 10 или вы можете сказать: "До выхода DirectX 11 никаких изменений в текущую версию внесено не будет"? Каждый год, когда появляется новая серия графических процессоров, производители графических решений хотят новых возможностей DirectX, чтобы сказать: "Мы первые, кто поддерживает эти возможности".
Блайс: Мы чутко относимся к сообществу разработчиков, причем это относится как к разработчикам приложений, так и к производителям устройств. Поэтому если у них появятся новые потребности, то мы найдем способ их реализовать так быстро, как это только возможно. Не буду делать никаких анонсов или говорит о каких-либо сроках, но пока нам проще выпускать, скажем, обновления и критические обновления нашего API. И так как DX10 является достаточно серьезным обновлением API, то ничто не мешает нам не вносить маленькие изменения и делать твики. Можете рассматривать их в качестве оплошностей наших разработчиков или запоздалым переосмыслением, но мы оставляем за собой возможность выпускать периодичные обновления нашего API.
ExtremeTech: Готов ли у вас роадмэп преемника DirectX 10?
Блайс: Скажем так, мы много об этом думали.
ExtremeTech: Не раскрывая секретных планов компании на это время, не могли бы вы вкратце обрисовать общую картину ?
Блайс: Есть парочка проблем, которые нас беспокоят. Одна из них состоит в следующем: есть задача создать более богатое и более сложное наполнение в играх и мы действительно беспокоимся о том, сколько потребуется временных и трудовых затрат разработчикам игр, чтобы добиться реализации этой задачи. Сколько часов потребуется дизайнерам, чтобы создать красивый эффект пыли в конкретной сцене? И как хранить эту информацию в памяти, ведь если графика высокого разрешения, то ей потребуется огромное количество пространства?
Наша обеспокоенность также связана с ограниченностью полосы пропускания памяти, которая никак не соответствует скорости вычислений. По этой причине мы стремимся возложить большую часть сложных вычислений на графический процессор. Что касается персонажей, то можно улучшить их силуэты и увеличить количество деталей. Мы видим заметное увеличение реализма теней, но мы хотим добиться и реальной геометрической сложности всех объектов. Один из способов реализовать эту идею – усложнить конвейер так, чтобы максимальное количество операций выполнялось видеокартой. Такой способ можно использовать для расчета поверхностей высокого порядка, к примеру, поверхностей Кэтмулла-Кларка, и их смешивания с картами смещения. Вот именно над этим мы и ломаем головы в течение достаточно продолжительного времени.
ExtremeTech: Хотите ли вы сказать, что преемник DirectX 10 подарит нам графику кинематографического уровня, а у разработчики игр просто не будут к этому готовы? Так как же максимально удачно согласовать аппаратные возможности с созданием и обработкой графической информации?
Блайс: Насчет качества вы праве. Но все зависит от того, как скоро появятся игры такого качества и когда будет решена проблема с эффектом «горлышка бутылки».
ExtremeTech: Но наличие унифицированных пиксельных и вертексных (и геометрических) шейдеров на уровне API совсем не означает их наличия на аппаратном уровне. То есть DirectX 10-совместимая карта с раздельными блоками вертексных и пиксельных шейдеров в порядке вещей, так?
Блайс: Это верно. Это вопрос производителям видеокарт. Для них это хорошая возможность, потому как спецификация тут не диктует конкретной реализации.
ExtremeTech: По-вашему, с аппаратной точки зрения наиболее эффективны унифицированные пиксельные и вертексные шейдеры?
Блайс: Думаю, что это тенденция отрасли и мы движемся в правильном направлении. Графический процессор представляет собой некий набор параллельно работающих блоков, которые занимаются выполнением параллельных вычислений. А сверху находится слой, выполняющий графические вычисления, которые обеспечивают логическую абстракцию вершинных, пиксельных и геометрических шейдеров.
Когда же мы все это увидим?
ExtremeTech: Что не попадет в спецификации DX10? Я имею ввиду, что вы хотели воплотить, но пока вам не удалось внедрить это в API.
Блайс: В самом начале нам хотелось научить DX10 работать с плоскостями высокого порядка. Позднее мы решили, что такая задача весьма нетривиальна, поэтому отложили ее на следующую версию. У нас, на самом деле, не хватает человеческих ресурсов, чтобы правильно решить такую задачу и мы решили, что пока у нас есть и более значимые задачи, которым и уделили все внимание наших разработчиков. У нас было много хороших идей, которые действительны хороши, но после того, как мы углубились в их изучение, мы столкнулись с очень сложными проблемами. В качестве примера можно привести желание сделать интерфейс компонента сбора информации о вертексах более программируемым. На сегодняшний день оказалось, что игра не стоит свеч – потенциальные доходы от нашей идеи не стоят требуемых затрат времени.
ExtremeTech: После появления нового DirectX разработчикам требуется некоторое время, чтобы реализовать новые возможности в играх и еще больше времени на то, чтобы привести их к общему знаменателю. Как вы считаете, будет ли переход на DirectX 10 быстрее по сравнению с предыдущими версиями API?
Донахью: Часть ответа на поставленный вопрос кроется в маркетинговой политике. Вряд ли сразу же после появления DX10-карт появятся игры, но с течением времени они появятся, а их количество будет расти в геометрической прогрессии. Если обратиться к истории и взглянуть на ситуацию с миграцией с DX8 на DX9, это произошло достаточно быстро . Предполагаю, что ситуация с DX10 повторится. Но думаю, что в ближайшее время – не могу сказать, как быстро – мы увидим заголовки игр, которые будут предназначены исключительно для DirectX 10.
ExtremeTech: Игры достаточно быстро адаптировались к DirectX 9 и воспользовались его преимуществами, но до того момента, как DX9 стал обязательным условием, прошло продолжительное время. Что в данном вопросе готовит нам DirectX 10?
Донахью: Трудно сказать. Все ведь зависит от производителей графических акселераторов и разработчиков игр. Если кто-то решит создать мультиплатформенную игру, которая будет работать и на консолях, им в любом случае придется использовать конвейер типа используемого в DX9. С этой точки зрения, мне известны многие компании, которые, скорей всего, воспользуются этой возможностью.
Думаю, что в ближайшие два года мы увидим игры, предназначенные исключительно для DX10. Но повторюсь, это зависит от базы аппаратного обеспечения, совместимого с DirectX 10. Так что ждем.
ExtremeTech: Когда появятся графические решения с поддержкой DirectX 10?
Донахью: Отличная попытка! Эти вопросы не ко мне, а скорее к производителям устройств.
В будущих статьях мы познакомим вас с мнениями сотрудников самых крупных производителей графических решений – ATI и Nvidia, а также с планами разработчиков игр. Так что оставайтесь в курсе.
Источник:
Перевод: deeper2k
Комментарии
"Так что оставайтесь в курсу." lol deeper ты хоть читай то что переводишь - в каждой статье такие тупые ошибки
это не ошибка а опечатка....человек просто на латинскую Е нажал в торопях и все.....проблем-то...
lol тот кто на это внимание обращает! А так класная статься! Ждём следуйщих.
Короче МС опять ерундой маются... Растеризация уже морально устарела, а они все еще пинают ее.
Ребята из МС, забейте на DX10, разработайте нормальный ray-tracing движок в железе.
И будут вам и тени, и производительность, и масштабируемость...
Intel давно просекла, что те костылики, какими достигается "реалистичность" в растеризации, это мартышкин труд.
Аппаратный ray-tracing ftw!
По теме
- Windows Vista официально "мертва"
- Завтра прекращается поддержка Windows Vista
- Остался последний месяц поддержки Windows Vista
- 11 апреля Microsoft прекратит поддержку Windows Vista
- Через год прекращается поддержка Windows Vista
- Microsoft открыла исходный код Open XML SDK
- Баллмер: Longhorn/Vista - моя самая серьезная ошибка
- Сегодня заканчивается бесплатная фаза поддержки Windows Vista и Office 2007
- Microsoft продлила срок поддержки Windows Vista и Windows 7
- Практики обеспечения безопасности Microsoft - лучшие в мире