Инициализация устройства Direct3DInitialize the Direct3D device

В Direct3D 9 мы создавали дескриптор устройства Direct3D, вызывая метод IDirect3D9::CreateDevice.In Direct3D 9, we created a handle to the Direct3D device by calling IDirect3D9::CreateDevice. Мы начинали с получения указателя на интерфейс IDirect3D9 и задавали ряд параметров для управления конфигурацией устройства Direct3D и цепочки буферов.We started by getting a pointer to IDirect3D9 interface and we specified a number of parameters to control the configuration of the Direct3D device and the swap chain. Перед этим мы вызывали функцию GetDeviceCaps, чтобы убедиться, что не просим устройство сделать то, на что оно неспособно.Before doing this we called GetDeviceCaps to make sure we weren’t asking the device to do something it couldn’t do.

Direct3D 9Direct3D 9

В Direct3D 11 контекст устройства и графическая инфраструктура считаются отдельными от устройства.In Direct3D 11, the device context and graphics infrastructure is considered separate from the device itself. Инициализация разделена на множество шагов.Initialization is divided into multiple steps.

Сначала мы создаем устройство.First we create the device. При этом мы получаем список уровней компонентов, которые поддерживает устройство — это большая часть того, что нам нужно знать о графическом процессоре.We get a list of the feature levels the device supports — this informs most of what we need to know about the GPU. Кроме того, нам не надо создавать интерфейс только для того, чтобы обращаться к Direct3D.Also, we don’t need to create an interface just to access Direct3D. Вместо этого мы используем базовый API D3D11CreateDevice.Instead we use the D3D11CreateDevice core API. От него мы получаем дескриптор и непосредственный контекст устройства.This gives us a handle to the device and the device’s immediate context. Контекст устройства используется для установки состояния конвейера и генерации команд отрисовки.The device context is used to set pipeline state and generate rendering commands.

Создав устройство Direct3D 11 и его контекст, мы можем воспользоваться функциональностью COM-указателей для получения последней версии интерфейсов, которые содержат дополнительные возможности – это всегда рекомендуется.After creating the Direct3D 11 device and context, we can take advantage of COM pointer functionality to get the most recent version of the interfaces, which include additional capability and are always recommended.

Direct3D 11Direct3D 11


Type: IDXGIAdapter*

A pointer to the video adapter to use when creating a device. Pass NULL to use the default adapter, which is the first adapter enumerated
by IDXGIFactory1::EnumAdapters.

Note  Do not mix the use of DXGI 1.0 (IDXGIFactory) and DXGI 1.1 (IDXGIFactory1) in an application. Use IDXGIFactory or IDXGIFactory1, but not both in an application.



The D3D_DRIVER_TYPE, which represents the driver type to create.


A handle to a DLL that implements a software rasterizer.
If DriverType is D3D_DRIVER_TYPE_SOFTWARE, Software must not be NULL. Get the handle by
calling LoadLibrary,
LoadLibraryEx ,
or GetModuleHandle. The value should be non-NULLwhen D3D_DRIVER_TYPE is D3D_DRIVER_TYPE_SOFTWARE and NULL otherwise.

Type: UINT

The runtime layers to enable (see D3D11_CREATE_DEVICE_FLAG);
values can be bitwise OR’d together.

Type: const D3D_FEATURE_LEVEL*

A pointer to an array of D3D_FEATURE_LEVELs, which determine the order of feature levels to attempt to create.
If pFeatureLevels is set to NULL,
this function uses the following array of feature levels:

Note  If the Direct3D 11.1 runtime is present on the computer and pFeatureLevels is set to NULL, this function won’t create a D3D_FEATURE_LEVEL_11_1 device. To create a D3D_FEATURE_LEVEL_11_1 device, you must explicitly provide a D3D_FEATURE_LEVEL array that includes D3D_FEATURE_LEVEL_11_1. If you provide a D3D_FEATURE_LEVEL array that contains D3D_FEATURE_LEVEL_11_1 on a computer that doesn’t have the Direct3D 11.1 runtime installed, this function immediately fails with E_INVALIDARG.


Type: UINT

The number of elements in pFeatureLevels.

Type: UINT

The SDK version; use D3D11_SDK_VERSION.


A pointer to a swap chain description (see DXGI_SWAP_CHAIN_DESC) that contains initialization parameters for the swap chain.

Type: IDXGISwapChain**

Returns the address of a pointer to the IDXGISwapChain object that represents the swap chain used for rendering.

Type: ID3D11Device**

Returns the address of a pointer to an ID3D11Device object that represents the device created. If this parameter is NULL, no ID3D11Device will be returned’.


Returns a pointer to a D3D_FEATURE_LEVEL, which represents the first element in an array of feature levels supported
by the device. Supply NULL as an input if you don’t need to determine which feature level is supported.

Type: ID3D11DeviceContext**

Returns the address of a pointer to an ID3D11DeviceContext object that represents the device context. If this parameter is NULL, no ID3D11DeviceContext will be returned.

Build instructions

Building DLLs

The simple way

Inside the DXVK directory, run:

This will create a folder in , which contains both 32-bit and 64-bit versions of DXVK, which can be set up in the same way as the release versions as noted above.

In order to preserve the build directories for development, pass to the script. This option implies . After making changes to the source code, you can then do the following to rebuild DXVK:

Compiling manually

The D3D9, D3D10, D3D11 and DXGI DLLs will be located in . Setup has to be done manually in this case.

Notes on Vulkan drivers

Before reporting an issue, please check the Wiki page on the current driver status and make sure you run a recent enough driver version for your hardware.

Online multi-player games

Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk.


The environment variable controls a HUD which can display the framerate and some stat counters. It accepts a comma-separated list of the following options:

  • : Displays the name of the GPU and the driver version.
  • : Shows the current frame rate.
  • : Shows a frame time graph.
  • : Shows the number of command buffers submitted per frame.
  • : Shows the number of draw calls and render passes per frame.
  • : Shows the total number of graphics and compute pipelines.
  • : Shows the amount of device memory allocated and used.
  • : Shows estimated GPU load. May be inaccurate.
  • : Shows DXVK version.
  • : Shows the D3D feature level used by the application.
  • : Shows shader compiler activity
  • : Shows the current number of sampler pairs used
  • : Scales the HUD by a factor of (e.g. )

Additionally, has the same effect as , and enables all available HUD elements.

Device filter

Some applications do not provide a method to select a different GPU. In that case, DXVK can be forced to use a given device:

DXVK_FILTER_DEVICE_NAME=»Device Name» Selects devices with a matching Vulkan device name, which can be retrieved with tools such as vulkaninfo. Matches on substrings, so «VEGA» or «AMD RADV VEGA10» is supported if the full device name is «AMD RADV VEGA10 (LLVM 9.0.0)», for example. If the substring matches more than one device, the first device matched will be used.

Note: If the device filter is configured incorrectly, it may filter out all devices and applications will be unable to create a D3D device.

State cache

DXVK caches pipeline state by default, so that shaders can be recompiled ahead of time on subsequent runs of an application, even if the driver’s own shader cache got invalidated in the meantime. This cache is enabled by default, and generally reduces stuttering.

The following environment variables can be used to control the cache:

  • Disables the state cache.
  • Specifies a directory where to put the cache files. Defaults to the current working directory of the application.
  • Enables Vulkan debug layers. Highly recommended for troubleshooting rendering issues and driver crashes. Requires the Vulkan SDK to be installed on the host system.
  • Controls message logging.
  • Changes path where log files are stored. Set to to disable log file creation entirely, without disabling logging.
  • Sets path to the configuration file.

Способ 3: Решение проблем игры

Иногда неполадки оказываются не с операционной системой, а на стороне приложения, требующего DLL. В такой ситуации его нужно попытаться скачать заново, если вдруг есть подозрения, что загрузка могла произойти с ошибками, поискать другую копию, что касается юзеров, скачивающих пиратские игры. Вероятно, поможет отключение антивируса перед повторной установкой.

При использовании игровых сервисов типа Steam и Origin имеет смысл сперва выполнить сканирование файлов игры на наличие различных проблем.


  1. В «Библиотеке» найдите игру, которую не удается запустить, и нажмите по ней правой кнопкой мыши. Из меню выберите «Свойства».

Переключитесь на вкладку «Локальные файлы».

Кликните по «Проверить целостность файлов игры» и дождитесь окончания процедуры, а именно окна с информацией о том, было ли что-нибудь восстановлено.


  1. Переместитесь в «Библиотеку» клиента и отыщите там плитку с игрой. ПКМ по ней вызовет контекстное меню, из которого следует выбрать «Восстановить».

Процесс запустится, и его прогресс будет виден в этом же месте.

Как только получите уведомление о том, что игра готова к запуску, можете проверять, была ли исправлена неполадка.

Как исправить ошибки d3d11.dll всего за несколько шагов?

Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!

Ошибки файла d3d11.dll могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом d3d11.dll или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно

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

Шаг 2.. Обновите систему и драйверы.

Установка соответствующих исправлений и обновлений Microsoft Windows может решить ваши проблемы, связанные с файлом d3d11.dll. Используйте специальный инструмент Windows для выполнения обновления.

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Центр обновления Windows» в поле поиска.
  3. Выберите подходящую программу (название может отличаться в зависимости от версии вашей системы)
  4. Проверьте, обновлена ​​ли ваша система. Если в списке есть непримененные обновления, немедленно установите их.
  5. После завершения обновления перезагрузите компьютер, чтобы завершить процесс.

Помимо обновления системы рекомендуется установить последние версии драйверов устройств, так как драйверы могут влиять на правильную работу d3d11.dll или других системных файлов. Для этого перейдите на веб-сайт производителя вашего компьютера или устройства, где вы найдете информацию о последних обновлениях драйверов.

Шаг 3.. Используйте средство проверки системных файлов (SFC).

Проверка системных файлов — это инструмент Microsoft Windows. Как следует из названия, инструмент используется для идентификации и адресации ошибок, связанных с системным файлом, в том числе связанных с файлом d3d11.dll. После обнаружения ошибки, связанной с файлом %fileextension%, программа пытается автоматически заменить файл d3d11.dll на исправно работающую версию. Чтобы использовать инструмент:

  1. Откройте меню «Пуск» в Windows.
  2. Введите «cmd» в поле поиска
  3. Найдите результат «Командная строка» — пока не запускайте его:
  4. Нажмите правую кнопку мыши и выберите «Запуск от имени администратора»
  5. Введите «sfc / scannow» в командной строке, чтобы запустить программу, и следуйте инструкциям.

Шаг 4. Восстановление системы Windows.

Другой подход заключается в восстановлении системы до предыдущего состояния до того, как произошла ошибка файла d3d11.dll. Чтобы восстановить вашу систему, следуйте инструкциям ниже

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Восстановление системы» в поле поиска.
  3. Запустите средство восстановления системы — его имя может отличаться в зависимости от версии системы.
  4. Приложение проведет вас через весь процесс — внимательно прочитайте сообщения
  5. После завершения процесса перезагрузите компьютер.

Если все вышеупомянутые методы завершились неудачно и проблема с файлом d3d11.dll не была решена, перейдите к следующему шагу. Помните, что следующие шаги предназначены только для опытных пользователей

Решаем проблему

Существует сразу 2 способа исправить ситуацию и бесплатно установить d3d11.dll в систему Windows XP, Windows 7, Windows 8 или Windows 10. Первый вариант подразумевает загрузку и инсталляцию всего пакета DirectX, второй же – одного файла d3d11.dll. Рассмотрим оба метода подробнее.

Устанавливаем DirectX

Установка DirectX – это правильный способ. В отличие от загрузки одного d3d11.dll, он дает практически 100% положительный исход и, соответственно, успешный запуск игры. Что для этого нужно? Во-первых, скачать саму библиотеку с ее официального сайта, во-вторых, правильно ее установить. Ни с первым, ни со вторым сложностей возникать не будет – рассмотрим оба пункта.

  1. Скачиваем по прямой ссылке библиотеку DirectX (для вашего удобства мы загрузили последнюю версию с официального сайта Microsoft и разместили у себя). Запустите загруженный WEB-инсталлятор и примите условия лицензионного соглашения. Для этого установите флажок переключателя в позицию, обозначенную на скриншоте цифрой «1». Как только это будет сделано, кликаем по виртуальной клавише «Далее».

  1. В следующем окне отключите установку дополнительного программного обеспечения (в нашем случае это Bing панель) и нажмите «Далее».

  1. На этом установка окончена, нам остается только кликнуть по кнопке с надписью «Готово».

Теперь можно пробовать запускать игру.

Скачиваем и устанавливаем d3d11.dll

Существует и еще один способ заставить игрушку работать без установки DirectX. Мы можем просто отдельно скачать файл d3d11.dll и добавить его в системную папку. Однако такой вариант не дает стопроцентной гарантии того, что проблема будет решена, и игра запустится. Но, для полноты картины, давайте рассмотрим и этот способ.

Сначала скачаем сам d3ddll

Тут следует заострить ваше внимание. Дело в том, что официального файла не существует и, если вы попытаетесь найти его в сети, вероятность загрузить вирус на ПК будет практически стопроцентной

Мы извлекли компонент из библиотеки DirectX, скачанной с официального сайта Microsoft, и поместили его на свой сайт. Скачивайте файл по прямой ссылке и не беспокойтесь о «здоровье» вашего компьютера.
Теперь нужно поместить загруженную dll в системный каталог, причем в зависимости от разрядности. Для того чтобы проверить по какой архитектуре выполнена ваша операционная система, используйте сочетание «горячих клавиш» Win+PauseBreak. На скриншоте отмечен пункт, который требует внимания. В нашем случае это 64-bit Windows 10

  1. После того как вы узнали разрядность Windows, поместите d3ddll в C:\Windows\system32 если у вас x32-битная ОС, и в C:\Windows\sysWOW64 – если x64.

  1. Также копируйте файл и в каталог с игрой. Причем именно в ту папку, где содержатся исполняемые компоненты с расширением .exe.

  1. Осталось только зарегистрировать файлы. Одного добавления в папку, к сожалению, недостаточно. Открываем инструмент «Выполнить» (используйте сочетание клавиш Win+R) и вводим в окошко команду: regsvr32 d3ddll, затем жмем «ОК».

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

Как скачать D3D11.dll для Windows 7

В Windows 7 по умолчанию может не быть файла d3d11.dll, а в тех образах, где он присутствует, может не работать с новыми играми, вызывая ошибки инициализации D3D11.

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

А вдруг и это будет интересно:

Почему бы не подписаться?

01.04.2019 в 08:47

Здравствуйте! Подскажите пожалуйста, при запуске визуализации выдает ошибку «D3D object has a non-zero reference count (meaning things were not properly cleaned up). This visualizer will now exit.» что делать?

01.04.2019 в 10:59

Здравствуйте. Не знаком с ошибкой. В первую очередь, конечно, загрузите DirectX через веб-установщик (я понимаю, что уже установлен, но веб-установщик установит недостающее), а также обновите драйверы видеокарты. А дальше уже — не знаю. Погуглил по проблему, в одной игре из Steam (Path of Exile) она широко обсуждается, решают там правкой .ini файла, включая оконный режим (а у вас и так оконный на скрине) и меняя разрешение. Так что не уверен, что для вашего ПО применим метод.

02.08.2019 в 08:17

Здраствуйте. У меня ошибка немного другая. Когда я пытаюсь запустить Fortnite, выдаёт: failed to find a graphics adapter with the minimum required DX11 feature level. Пыталась удалить все деректы, но всё равно остаётся 12-ый. Помогите пожалуйста.

02.08.2019 в 11:41

Здравствуйте. Сообщение говорит о том, что не найдена графическая карта, которая бы поддерживала минимально требуемый DirectX 11. Т.е. либо видеокарта действительно старая, либо драйверы на нее не стоят правильные.

Примечание: после отправки комментария он не появляется на странице сразу. Всё в порядке — ваше сообщение получено. Ответы на комментарии и их публикация выполняются ежедневно днём, иногда чаще. Возвращайтесь.

To handle the diversity of video cards in new and existing machines, Microsoft Direct3DВ 11 introduces the concept of feature levels. This topic discusses Direct3D feature levels.

Each video card implements a certain level of Microsoft DirectX (DX) functionality depending on the graphics processing units (GPUs) installed. In prior versions of Microsoft Direct3D, you could find out the version of Direct3D the video card implemented, and then program your application accordingly.

With Direct3DВ 11, a new paradigm is introduced called feature levels. A feature level is a well defined set of GPU functionality. For instance, the 9_1 feature level implements the functionality that was implemented in Microsoft Direct3DВ 9, which exposes the capabilities of shader models ps_2_x and vs_2_x, while the 11_0 feature level implements the functionality that was implemented in Direct3DВ 11.

Now when you create a device, you can attempt to create a device for the feature level that you want to request. If the device creation works, that feature level exists, if not, the hardware does not support that feature level. You can either try to recreate a device at a lower feature level or you can choose to exit the application. For more info about creating a device, see the D3D11CreateDevice function.

Using feature levels, you can develop an application for Direct3DВ 9, Microsoft Direct3DВ 10, or Direct3DВ 11, and then run it on 9, 10 or 11 hardware (with some exceptions; for example, new 11 features will not run on an existing 9 card). Here is a couple of other basic properties of feature levels:

  • A GPU that allows a device to be created meets or exceeds the functionality of that feature level.
  • A feature level always includes the functionality of previous or lower feature levels.
  • A feature level does not imply performance, only functionality. Performance is dependent on hardware implementation.
  • Choose a feature level when you create a Direct3DВ 11 device.

For information about limitations creating nonhardware-type devices on certain feature levels, see Limitations Creating WARP and Reference Devices.

To assist you in deciding what feature level to design with, compare the features for each feature level.

The 10Level9 Reference section lists the differences between how various ID3D11Device and ID3D11DeviceContext methods behave at various 10Level9 feature levels.


For more information about D3DX11CompileFromFile, see D3DCompile.

You must supply NULL to the pHResult parameter if you also supply NULL to the pPump parameter. Otherwise, you cannot create a shader by using the compiled shader code that D3DX11CompileFromFile returns in the memory that the ppShader parameter points to. To create a shader from complied shader code, you call one of the following ID3D11Device interface methods:

  • CreateComputeShader
  • CreateDomainShader
  • CreateGeometryShader
  • CreateGeometryShaderWithStreamOutput
  • CreateHullShader
  • CreatePixelShader
  • CreateVertexShader

In addition, if you supply a non-NULL value to pHResult when you supply NULL to pPump, D3DX11CompileFromFile returns the E_INVALIDARG error code.



Determines the fill mode to use when rendering (see D3D11_FILL_MODE).


Indicates triangles facing the specified direction are not drawn (see D3D11_CULL_MODE).

Type: BOOL

Determines if a triangle is front- or back-facing. If this parameter is TRUE, a triangle will be considered front-facing if its vertices are counter-clockwise on the render target and considered back-facing if they are clockwise. If this parameter is FALSE, the opposite is true.

Type: INT

Depth value added to a given pixel. For info about depth bias, see Depth Bias.


Maximum depth bias of a pixel. For info about depth bias, see Depth Bias.


Scalar on a given pixel’s slope. For info about depth bias, see Depth Bias.

Type: BOOL

Enable clipping based on distance.

The hardware always performs x and y clipping of rasterized coordinates. When DepthClipEnable is set to the default–TRUE, the hardware also clips the z value (that is, the hardware performs the last step of the following algorithm).

When you set DepthClipEnable to FALSE, the hardware skips the z clipping (that is, the last step in the preceding algorithm). However, the hardware still performs the «0 < w» clipping. When z clipping is disabled, improper depth ordering at the pixel level might result. However, when z clipping is disabled, stencil shadow implementations are simplified. In other words, you can avoid complex special-case handling for geometry that goes beyond the back clipping plane.

Type: BOOL

Enable scissor-rectangle culling. All pixels outside an active scissor rectangle are culled.

Type: BOOL

Specifies whether to use the quadrilateral or alpha line anti-aliasing algorithm on multisample antialiasing (MSAA) render targets. Set to TRUE to use the quadrilateral line anti-aliasing algorithm and to FALSE to use the alpha line anti-aliasing algorithm. For more info about this member, see Remarks.

Type: BOOL

Specifies whether to enable line antialiasing; only applies if doing line drawing and MultisampleEnable is FALSE. For more info about this member, see Remarks.


Title Description
CD3D11_BLEND_DESC1 Describes the blend state that you use in a call to ID3D11Device1::CreateBlendState1 to create a blend-state object.
CD3D11_RASTERIZER_DESC1 Describes rasterizer state.
D3D11_BLEND_DESC1 Describes the blend state that you use in a call to ID3D11Device1::CreateBlendState1 to create a blend-state object.
D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA Represents key exchange data for hardware content protection.
D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA Represents key exchange input data for hardware content protection.
D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA Represents key exchange output data for hardware content protection.
D3D11_RASTERIZER_DESC1 Describes rasterizer state.
D3D11_RENDER_TARGET_BLEND_DESC1 Describes the blend state for a render target.
D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION Provides data to the ID3D11VideoContext::DecoderBeginFrame method.
D3D11_VIDEO_DECODER_BUFFER_DESC1 Describes a compressed buffer for decoding.
D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK Describes a sub sample mapping block.
D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT Provides information about the input streams passed into the ID3DVideoContext1::VideoProcessorGetBehaviorHints method.
D3D11_VIDEO_SAMPLE_DESC Describes a video sample.


An application identifies the way a resource is intended to be used (its usage) in a resource description. There are several structures for creating resources including: D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC, and D3D11_BUFFER_DESC.

Differences between Direct3D 9 and Direct3D 10/11:

In Direct3D 9, you specify the type of memory a resource should be created in at resource creation time (using D3DPOOL). It was an application’s job to decide what memory pool would provide the best combination of functionality and performance.

In Direct3D 10/11, an application no longer specifies what type of memory (the pool) to create a resource in. Instead, you specify the intended usage of the resource, and let the runtime (in concert with the driver and a memory manager) choose the type of memory that will achieve the best performance.

Resource Usage Restrictions


D3D11_USAGE_DYNAMIC usage is a special case that optimizes the flow of data from CPU to GPU when the CPU generates that data on-the-fly and sends that data with high frequency. D3D11_USAGE_DYNAMIC is typically used on resources with vertex data and on constant buffers. Use the ID3D11DeviceContext::Map and ID3D11DeviceContext::Unmap methods to write data to these resources. To achieve the highest performance for data consumed serially, like vertex data, use the D3D11_MAP_WRITE_NO_OVERWRITE and D3D11_MAP_WRITE_DISCARD sequence. For more info about this sequence, see Common Usage of D3D11_MAP_WRITE_DISCARD with D3D11_MAP_WRITE_NO_OVERWRITE.

D3D11_USAGE_IMMUTABLE usage is another special case that causes the GPU to generate data just once when you create a resource. D3D11_USAGE_IMMUTABLE is well-suited to data such as textures because such data is typically read into memory from some file format. Therefore, when you create a texture with D3D11_USAGE_IMMUTABLE, the GPU directly reads that texture into memory.

Use the following table to choose the usage that best describes how the resource will need to be accessed by the CPU and/or the GPU. Of course, there will be performance tradeoffs.

Resource Usage Default Dynamic Immutable Staging
GPU-Read yes yes yes yes¹
GPU-Write yes yes¹
CPU-Read yes¹
CPU-Write yes yes¹

1 — GPU read or write of a resource with the D3D11_USAGE_STAGING usage is restricted to copy operations. You use ID3D11DeviceContext::CopySubresourceRegion and ID3D11DeviceContext::CopyResource for these copy operations. Also, because depth-stencil formats and multisample layouts are implementation details of a particular GPU design, the operating system can’t expose these formats and layouts to the CPU in general. Therefore, staging resources can’t be a depth-stencil buffer or a multisampled render target.

Note  You can technically use ID3D11DeviceContext::UpdateSubresource to copy to a resource with any usage except D3D11_USAGE_IMMUTABLE. However, we recommend to use ID3D11DeviceContext::UpdateSubresource to update only a resource with D3D11_USAGE_DEFAULT. We recommend to use ID3D11DeviceContext::Map and ID3D11DeviceContext::Unmap to update resources with D3D11_USAGE_DYNAMIC because that is the specific purpose of D3D11_USAGE_DYNAMIC resources, and is therefore the most optimized path.

Note  D3D11_USAGE_DYNAMIC resources consume specific hardware capabilities. Therefore, use them sparingly. The display driver typically allocates memory for D3D11_USAGE_DYNAMIC resources with a caching algorithm that favors CPU writes and hinders CPU reads. Furthermore, the memory behind D3D11_USAGE_DYNAMIC resources might not even be the same for successive calls to ID3D11DeviceContext::Map. Therefore, do not expect high performance or even consistent CPU reads from D3D11_USAGE_DYNAMIC resources.

Note  ID3D11DeviceContext::CopyStructureCount is a special case of GPU-to-CPU copy. Use ID3D11DeviceContext::CopyStructureCount only with unordered access views (UAVs) of buffers.

Resource Bind Options

Resource Can Be Bound As Default Dynamic Immutable Staging
Input to a Stage yes² yes³ yes
Output from a Stage yes²
  • 2 — If bound as an input and an output using different views, each view must use different subresources.
  • 3 — The resource can only be created with a single subresource. The resource cannot be a texture array. The resource cannot be a mipmap chain.

Для чего нужен

Данный файл является компонентом мультимедийной библиотеки DirectX от Microsoft. Нужна данная dll-библиотека для обеспечения работоспособности разных 3D-игр и приложений, например, Sniper Elite v2, Assassins Creed 3 Black Flag, Sleeping Dogs и т. д. Благодаря эволюции DirectX, отрисовка графики в современных играх происходит все более качественно, быстро и при этом требует все меньше аппаратной производительности компьютера или ноутбука.

Понятное дело, что, если игра запускается, операционная система обращается к DirectX, а та, в свою очередь, к d3d11.dll. Обнаруживается, что файла попросту нет и в результате мы видим ошибку. Из-за чего же может отсутствовать данный компонент (драйвер)? Причин тому существует несколько. Например, если это пиратская игра, при добавлении в дистрибутив кряка, нужный компонент динамической библиотеки мог быть поврежден или удален. Также вирус, который тайно обосновался на ПК, способен удалять любые файлы, в том числе и нужные для запуска игр.

Исправление ошибок D3D11

Причиной рассматриваемой ошибки могут быть различные факторы, самые распространенные из которых

  1. Ваша видеокарта не поддерживает DirectX 11 (при этом, нажав клавиши Win+R и введя dxdiag, вы можете там видеть, что установлена именно 11 или 12 версия. Однако, это ничего не говорит о том, что есть поддержка этой версии со стороны видеокарты — только о том, файлы данной версии установлены на компьютере).
  2. Не установлены последние оригинальные драйверы на видеокарту — при этом начинающие пользователи часто пробуют обновить драйверы, используя кнопку «Обновить» в диспетчере устройств, это неправильный метод: сообщение о том, что «Драйвер не нуждается в обновлении» при данном способе обычно мало что означает.
  3. Не установлены необходимые обновления для Windows 7, что может приводить к тому, что даже при наличии DX11, файла d3d11.dll и поддерживаемой видеокарты, игры, наподобие Dishonored 2 продолжают сообщать об ошибке.

Первые два пункта взаимосвязаны и в равной степени могут встречаться как у пользователей Windows 7, так и Windows 10.

Правильным порядком действий при ошибках в данном случае будет:

  1. Вручную скачать оригинальные драйверы видеокарты с официальных сайтов AMD, NV >Также вы можете посмотреть отдельно установленную и поддерживаемую аппаратно версию DirectX в сторонних программах, например, в AIDA64 (см. Как узнать версию DirectX на компьютере).

В Windows 7 ошибки D3D11 и инициализации DirectX 11 при запуске современных игр могут появляться даже в тех случаях, когда необходимые драйверы установлены, а видеокарта не из старых. Исправить ситуацию можно следующим образом.

Список версий файлов

Имя файла

Windows 10

Размер файла
720896 bytes



Подробности файла
MD5 87cca00446659c199d44303200008ca8
SHA1 d4c6c9927547cc13e9024eb00c3724bc769933a4
SHA256 2893d05a5461992a06353ad80a6c1831fdf033f48ebbf04ea977037e9a1987ea
CRC32 61a17ec9
Пример расположения файла C:\Windows\System32\

Имя файла

Windows 8.1

Размер файла
1065984 bytes



Подробности файла
MD5 8b9329059eb7db571f269b67e0dadbec
SHA1 315ec0123f8e001ed0161122480b887becaa0e55
SHA256 c4addbcf6b0d33326c508098930e8f2b796130de3136f42cd4af1d2784c20d1f
CRC32 210a0e39
Пример расположения файла C:\Windows\System32\

Имя файла

Windows 8

Размер файла
1012736 bytes



Подробности файла
MD5 13a07f17e14abfa44a09f890aeb86240
SHA1 c8536397234aecbade4ca9eabcde710d3eba20a5
SHA256 53b8b632d20b99b3ffac4bd2f3af9557f71f923d2209f9536ff51d0e491dd28e
CRC32 97b7d3ce
Пример расположения файла 1: C:\Windows\System32\

Имя файла

Windows 7

Размер файла
1036800 bytes



Подробности файла
MD5 241a1900c52dcba38b20a4f3671444e0
SHA1 d6f635b5091ecbd7b7da5ece66e97a1e1f57669f
SHA256 9f359a1856f177ad31fd534f5165966aeb1ab5ca74bde01b5bceacd99736f8a6
CRC32 26eb93c2
Пример расположения файла C:\Windows\SysWOW64\

Имя файла

Windows Vista

Размер файла
1039360 bytes



Подробности файла
MD5 b123b2e554ad31fc88a7447f551d9fec
SHA1 2e87c95603357004f64fdf5ed547e724b491babf
SHA256 daa161546619e0b7431568634a57e072fab80ab582b217c9a082663ccc3535b6
CRC32 1d2ea1fa
Пример расположения файла C:\Windows\SysWOW64\

Имя файла

Windows XP

Размер файла
1179648 bytes



Подробности файла
MD5 f099b129022170f2df9e1c0185c9bcfb
SHA1 3b0866d354adc454d4aa0d1232775b3ac9968473
SHA256 28e1153276db83206e4d887503479ef37700710008d181fc046d1768dd9bb686
CRC32 9ef71d51
Пример расположения файла


Title Description
D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG Describes flags that are used to create a device context state object (ID3DDeviceContextState) with the ID3D11Device1::CreateDeviceContextState method.
D3D11_COPY_FLAGS Specifies how to handle the existing contents of a resource during a copy or update operation of a region within that resource.
D3D11_CRYPTO_SESSION_STATUS Represents the status of an ID3D11CryptoSession interface.
D3D11_LOGIC_OP Specifies logical operations to configure for a render target.
D3D11_VIDEO_DECODER_CAPS Specifies capabilities of the video decoder.
D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS Specifies flags that indicate the most efficient methods for performing video processing operations.
Оцените статью
Рейтинг автора
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
Добавить комментарий