Використання віртуального адресного простору під час розробки ігор у Windows

Переклади статей Переклади статей
Номер статті: 940105 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ПІДСУМКИ

У цій статті обговорюється використання віртуального адресного простору у ході розробки ігор у Windows. Описуються потенційні проблеми, які можуть виникнути під час запуску застосунків у сучасній операційній системі, наприклад, у Windows Vista. Стаття містить відомості про оновлення, яке може вирішити деякі з цих проблем. Щоб отримати додаткові відомості про ці проблеми, відвідайте такий веб-сайт корпорації Майкрософт:
http://www.microsoft.com/whdc/device/display/WDDM_VA.mspx

ДОДАТКОВІ ВІДОМОСТІ

У сучасній операційній системі, якою є Windows Vista, застосунки працюють в межах власного віртуального адресного простору. Зазвичай розмір віртуального адресного простору для 32-розрядних застосунків визначено як 2 гігабайти (ГБ). Розмір доступного віртуального адресного простору не залежить від обсягу фізичної пам'яті комп'ютера.

Кожний розподіл пам'яті, розподіл файлів або бібліотеки, що завантажується застосунком, споживають частину цього віртуального адресного простору. Якщо застосунок витрачає весь свій віртуальний простір, додаткові операції такого роду завершуються помилкою. Хоча всі застосунки повинні обробляти збої розподілу пам'яті, багато застосунків не відновлюються після таких збоїв. Тому програма може працювати нестабільно або після відновлення від подібних збоїв припиняє реагувати.

Існуючі ігри та інші графічні застосунки часто розміщують у віртуальній пам'яті копію ресурсів відеопам'яті, використовуваних застосунком. Застосунок використовує цю копію для швидкого відновлення зображення, якщо вміст відеопам'яті загублено. Наприклад, ця копія використовується, якщо користувач натискає комбінацію клавіш ALT+TAB або переводить комп'ютер у режим очікування. Зазвичай середа виконання DirectX керує копією від імені застосунку, якщо застосунок створює керований ресурс. Проте застосунок також може сам керувати цією копією. Віртуальна пам'ять, яка використовується копією, прямо пропорційна ресурсам відеопам'яті, які розподіляються застосунком.

Сучасний графічний процесор може мати 512 або більше мегабайт відеопам'яті. Застосунки, які намагаються скористатися такими великими обсягами відеопам'яті, можуть використовувати велику частину віртуального адресного простору, яку виділено для копії відеоресурсів у пам'яті. В 32-розрядних системах такі застосунки можуть споживати весь доступний віртуальний адресний простір.

Завдяки появі у Windows Vista інтерфейсів DirectX 10 та Windows Display Driver Model (WDDM) застосункам немає потреби зберігати копію ресурсів у системній пам'яті. Замість цього диспетчер відеопам'яті спостерігає за тим, щоб вміст кожного розподілу відеопам'яті зберігався під час переходів зображення. Через проблеми з сумісністю Windows Vista імітує для версій DirectX, раніших за DirectX 10, події типу "device lost" (втрата пристрою), щоб гарантувати відсутність змін у роботі API-інтерфейсів, доступних для застосунків.

Щоб віртуалізувати відеопам'ять, диспетчер відеопам'яті Windows Vista призначає діапазон віртуальних адрес кожному ресурсу відеопам'яті. Цей діапазон є подібним до копії, яку може створити застосунок. Проте диспетчер відеопам'яті керує процесом ефективніше, ніж застосунок. Диспетчер відеопам'яті використовує діапазон віртуальних адрес для обробки переходів або надмірного споживання відеопам'яті. Однак діапазон віртуальних адрес зазвичай не використовується в системі, яка має великий обсяг відеопам'яті. Якщо діапазон віртуальних адрес залишається невикористаним, фізична пам'ять для нього не розподіляється. З іншого боку, копія системної пам'яті, яка обробляється старішими моделями драйвера, гарантовано заповнюється фізичною пам'яттю.

Якщо застосунок створює свою власну копію відеоресурсів або використовує DirectX 9 чи ранішу версію, віртуальний адресний простір містить віртуалізований діапазон диспетчера відеопам'яті WDDM та копію від застосунку. Застосунки, які використовують API-інтерфейси, раніші за DirectX 10, і графічні процесори, які мають великі обсяги відеопам'яті, можуть легко вичерпати свій віртуальний адресний простір.

Для усунення цієї проблеми корпорація Майкрософт змінює спосіб, яким диспетчер відеопам'яті розподіляє вміст ресурсів відеопам'яті. Ця зміна робиться до того, щоб постійний діапазон віртуальних адрес не використовувався для кожного віртуалізованого розподілу. Завдяки цьому простір віртуального адресного простору застосунку тільки витрачають розподіли, які створюються як "lockable" (блоковані). Розподіли, які не створюються як "lockable", не витрачають простір. Такий підхід значно скорочує використання віртуального адресного простору. Тому застосунки можуть працювати з конфігураціями відеопам'яті великого обсягу, не досягаючи обмежень.

Хоча цей підхід скорочує споживання віртуальних адрес, він не усуває обмеження віртуального адресного простору до 2 ГБ, до якого вже наближається багато застосунків. Зрештою застосунки досягнуть цього обмеження з інших причин.

Відомості про оновлення

У центрі завантаження корпорації Майкрософт для завантаження пропонуються такі файли:

Windows Vista, 32-розрядні версії

Згорнути це зображенняРозгорнути це зображення
Завантажити
Завантажити пакет 940105.

Windows Vista, 64-розрядні версії

Згорнути це зображенняРозгорнути це зображення
Завантажити
Завантажити пакет 940105.

Докладніше про завантаження файлів технічної підтримки Майкрософт див. у статті бази знань Microsoft Knowledge Base:
119591 Отримання файлів підтримки корпорації Майкрософт від інтерактивних служб (Це посилання може вказувати на матеріали, повністю або частково викладені англійською мовою.)
Цей файл перевірено корпорацією Майкрософт на наявність вірусів. Корпорація Майкрософт використала для перевірки найновіше програмне забезпечення виявлення вірусів, доступне на час публікації цього файлу. Файл зберігається на добре захищених серверах, які запобігають внесенню до нього будь-яких несанкціонованих змін.

Попередні вимоги

Якщо комп'ютер під керуванням Windows Vista має декілька відеоадаптерів, рекомендується спочатку інсталювати виправлення, яке надається у статті 936710 бази знань Microsoft Knowledge Base. Докладніше див. у статті бази знань Microsoft Knowledge Base:
936710 Якщо застосунок DirectX 10 працює на комп'ютері під керуванням Windows Vista, на якому інстальовано кілька відеоадаптерів, комп'ютер не використовує додатковий відеоадаптер (Це посилання може вказувати на матеріали, повністю або частково викладені англійською мовою.)

Вимога перезавантаження

Після інсталяції цього оновлення комп'ютер необхідно перезавантажити.

Відомості про заміну оновлення

Це оновлення не замінює попередню версію оновлення.

Відомості про файли

Англійська версія цього поновлення має атрибути файлів, наведені в наступній таблиці, або є новішою. Значення дати та часу надається за скоординованим універсальним часом (UTC). У разі перегляду відомостей про файли ці дані перераховуються в місцевий час. Щоб визначити різницю між UTC і місцевим часом, відкрийте вкладку Часовий пояс у вікні Дата й час на панелі керування.
Windows Vista, 32-розрядні версії
Згорнути цю таблицюРозгорнути цю таблицю
Ім'я файлуВерсія файлуРозмір файлуДатаЧасПлатформа
Cdd.dll6.0.6000.2064836,86427.07.200702:17x86
Dxgkrnl.sys6.0.6000.20648621,05627.07.200701:07x86
Update.mumНемає1,78827.07.200717:27Немає
X86_5e2dac6229b5926b0c74da835150f1a5_31bf3856ad364e35_6.0.6000.20648_none_42a29c9b7959cc08.manifestНемає69627.07.200717:27Немає
X86_microsoft-windows-lddmcore_31bf3856ad364e35_6.0.6000.20648_none_aa48b77dff9d11aa.manifestНемає8,95827.07.200717:27Немає
Windows Vista, 64-розрядні версії
Згорнути цю таблицюРозгорнути цю таблицю
Ім'я файлуВерсія файлуРозмір файлуДатаЧасПлатформа
Amd64_ce07f9e62de28926f56e50610267ed82_31bf3856ad364e35_6.0.6000.20648_none_ff82e7b15cf29216.manifestНемає70027.07.200717:27Немає
Amd64_microsoft-windows-lddmcore_31bf3856ad364e35_6.0.6000.20648_none_06675301b7fa82e0.manifestНемає9,22327.07.200717:31Немає
Cdd.dll6.0.6000.2064847,10427.07.200703:13x64
Dxgkrnl.sys6.0.6000.20648878,08027.07.200701:19x64
Update.mumНемає1,78827.07.200717:27Немає

Властивості

Номер статті: 940105 - Востаннє переглянуто: 28 листопада 2007 р. - Редакція: 3.1
ЗАСТОСОВУЄТЬСЯ ДО:
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Business 64-bit edition
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Ultimate 64-bit edition
  • Windows Vista Starter
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Ultimate
Ключові слова: 
kbvistasp1fix atdownload kbfix kbexpertiseadvanced kbwinvistapostrtmfix kbqfe kbhotfixserver KB940105

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com