Id3d11device interface (d3d11.h)
Содержание:
- Enumerations
- Remarks
- Решаем проблему
- Как скачать D3D11.dll
- Remarks
- Check support of new Direct3D 11.1 features and formats
- Example Usage
- Force the sample count to create a rasterizer state
- d3d12.dll — что это за ошибка, как исправить
- Определение
- Вычисление шейдера
- Как скачать D3D11.dll для Windows 7
- Как исправить ошибки d3d11.dll всего за несколько шагов?
- Extended support for WARP devices
- Remarks
- Заключение
Enumerations
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. |
Remarks
Rasterizer state defines the behavior of the rasterizer stage. To create a rasterizer-state object, call ID3D11Device::CreateRasterizerState. To set rasterizer state, call ID3D11DeviceContext::RSSetState.
If you do not specify some rasterizer state, the Direct3D runtime uses the following default values for rasterizer state.
State | Default Value |
---|---|
FillMode | Solid |
CullMode | Back |
FrontCounterClockwise | FALSE |
DepthBias | |
SlopeScaledDepthBias | 0.0f |
DepthBiasClamp | 0.0f |
DepthClipEnable | TRUE |
ScissorEnable | FALSE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
Note For feature levels 9.1, 9.2, 9.3, and 10.0, if you set MultisampleEnable to FALSE, the runtime renders all points, lines, and triangles without anti-aliasing even for render targets with a sample count greater than 1. For feature levels 10.1 and higher, the setting of MultisampleEnable has no effect on points and triangles with regard to MSAA and impacts only the selection of the line-rendering algorithm as shown in this table:
Line-rendering algorithm | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
Aliased | FALSE | FALSE |
Alpha antialiased | FALSE | TRUE |
Quadrilateral | TRUE | FALSE |
Quadrilateral | TRUE | TRUE |
The settings of the MultisampleEnable and AntialiasedLineEnable members apply only to multisample antialiasing (MSAA) render targets (that is, render targets with sample counts greater than 1). Because of the differences in feature-level behavior and as long as you aren’t performing any line drawing or don’t mind that lines render as quadrilaterals, we recommend that you always set MultisampleEnable to TRUE whenever you render on MSAA render targets.
Решаем проблему
Существует сразу 2 способа исправить ситуацию и бесплатно установить d3d11.dll в систему Windows XP, Windows 7, Windows 8 или Windows 10. Первый вариант подразумевает загрузку и инсталляцию всего пакета DirectX, второй же – одного файла d3d11.dll. Рассмотрим оба метода подробнее.
Устанавливаем DirectX
Установка DirectX – это правильный способ. В отличие от загрузки одного d3d11.dll, он дает практически 100% положительный исход и, соответственно, успешный запуск игры. Что для этого нужно? Во-первых, скачать саму библиотеку с ее официального сайта, во-вторых, правильно ее установить. Ни с первым, ни со вторым сложностей возникать не будет – рассмотрим оба пункта.
- Скачиваем по прямой ссылке библиотеку DirectX (для вашего удобства мы загрузили последнюю версию с официального сайта Microsoft и разместили у себя). Запустите загруженный WEB-инсталлятор и примите условия лицензионного соглашения. Для этого установите флажок переключателя в позицию, обозначенную на скриншоте цифрой «1». Как только это будет сделано, кликаем по виртуальной клавише «Далее».
- В следующем окне отключите установку дополнительного программного обеспечения (в нашем случае это Bing панель) и нажмите «Далее».
- На этом установка окончена, нам остается только кликнуть по кнопке с надписью «Готово».
Теперь можно пробовать запускать игру.
Скачиваем и устанавливаем d3d11.dll
Существует и еще один способ заставить игрушку работать без установки DirectX. Мы можем просто отдельно скачать файл d3d11.dll и добавить его в системную папку. Однако такой вариант не дает стопроцентной гарантии того, что проблема будет решена, и игра запустится. Но, для полноты картины, давайте рассмотрим и этот способ.
Сначала скачаем сам d3ddll
Тут следует заострить ваше внимание. Дело в том, что официального файла не существует и, если вы попытаетесь найти его в сети, вероятность загрузить вирус на ПК будет практически стопроцентной
Мы извлекли компонент из библиотеки DirectX, скачанной с официального сайта Microsoft, и поместили его на свой сайт. Скачивайте файл по прямой ссылке и не беспокойтесь о «здоровье» вашего компьютера.
Теперь нужно поместить загруженную dll в системный каталог, причем в зависимости от разрядности. Для того чтобы проверить по какой архитектуре выполнена ваша операционная система, используйте сочетание «горячих клавиш» Win+PauseBreak. На скриншоте отмечен пункт, который требует внимания. В нашем случае это 64-bit Windows 10
- После того как вы узнали разрядность Windows, поместите d3ddll в C:\Windows\system32 если у вас x32-битная ОС, и в C:\Windows\sysWOW64 – если x64.
- Также копируйте файл и в каталог с игрой. Причем именно в ту папку, где содержатся исполняемые компоненты с расширением .exe.
- Осталось только зарегистрировать файлы. Одного добавления в папку, к сожалению, недостаточно. Открываем инструмент «Выполнить» (используйте сочетание клавиш Win+R) и вводим в окошко команду: regsvr32 d3ddll, затем жмем «ОК».
Данный вариант не дает гарантии успешного запуска игры. Например, зарегистрировать файл из-за отсутствия остальных компонентов удается далеко не всегда. В любом случае перезагрузите компьютер и попробуйте запустить игру.
Как скачать D3D11.dll
В интернете можно найти бесчисленное число сайтов, которые предложат решить эту проблему. Часть из них выдаёт специальное приложение, которое само починит нужные проблемы, скачает и установит нужные библиотеки. На других сайтах будут советовать установить DirectX последней версии. Однако загрузить D3D11.dll можно иначе.
Способ 1: Скачать библиотечный файл
Поскольку компания Microsoft не выкладывает в общий доступ все файлы библиотек, их стараются найти на других сайтах. Подобных сайтов множество, но лучше всего стараться загрузить именно файл библиотеки, предварительно проверив, не является ли ресурс вирусным. В данной статье загрузка файла рассматривается на примере сайта dllme.com
Перейти на сайт dllme.com
Справа на главной странице можно найти строку поиска, где написано «Search .DLL files». Здесь нужно написать D3D11.dll и нажать на кнопку «Start Searching».
Среди результатов поиска нужно выбрать один из файлов, который иногда содержит краткое описание справа.
После нажатия на ссылку появится полное описание файла
Здесь необходимо обратить внимание на поле «Version», которое показывает, для какой версии Windows предназначена библиотека.
Перед самой загрузкой нужно ввести капчу.
Последний шаг загрузки — нужно нажать на ссылку «Click here to download your DLL».
Загруженный файл нужно извлечь в папку, в данном примере это системная папка «System32», где и располагаются системные библиотеки.
После этого нужно открыть командную строку и сначала написать regsvr32, затем перетащить файл в командную строку. В данном примере команда имеет такой вид:
Скорее всего, появится сообщение, что библиотека загружена, но точка входа не найдена
Поэтому после выполнения программы нужно перезагрузить компьютер.
Способ 2: Использование системного сканера файлов
Скачать D3D11.dll можно и с помощью встроенных инструментов. Часто бывает так, что проблема связана с несколькими файлами, и необязательно это только динамические библиотеки. Начиная с Windows 7, D3D11.dll входит в состав всех последующих операционных систем, поэтому утилита от Майкрософт скачает и восстановит её.
- Открыв командную строку, нужно написать:
- System file scanner проверит наличие всех библиотек, которые должны быть в системе, скачает и восстановит их. Это может занять продолжительное время, но по окончании операции утилита выдаст сообщение, что всё сделано.
- Чтобы убедиться в наличии библиотеки, достаточно открыть папку System32.
Заключение
Хотя существует множество способов, как можно скачивать библиотеки, лучше всего это делать штатными средствами. Так решается сразу несколько проблем и исключается вариант подхватить вирус с непроверенного ресурса.
Remarks
This structure is used in a call to ID3D11Device::CreateTexture2D.
In addition to this structure, you can also use the CD3D11_TEXTURE2D_DESC derived structure, which is defined in D3D11.h and behaves like an inherited class, to help create a texture description.
The device places some size restrictions (must be multiples of a minimum size) for a subsampled, block compressed, or bit-format resource.
The texture size range is determined by the feature level at which you create the device and not the Microsoft Direct3D interface version. For example, if you use Microsoft Direct3D 10 hardware at feature level 10 (D3D_FEATURE_LEVEL_10_0) and call D3D11CreateDevice to create an ID3D11Device, you must constrain the maximum texture size to D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192) when you create your 2D texture.
Check support of new Direct3D 11.1 features and formats
Direct3D 11.1 lets you check for new features that the graphics driver might support and new ways that a format is supported on a device. Microsoft DirectX Graphics Infrastructure (DXGI) 1.2 also specifies new DXGI_FORMAT values.
This Direct3D 11.1 feature consists of the following API.
- ID3D11Device::CheckFeatureSupport with D3D11_FEATURE_DATA_D3D11_OPTIONS, D3D11_FEATURE_DATA_ARCHITECTURE_INFO, D3D11_FEATURE_DATA_D3D9_OPTIONS, D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT, and D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT structures
- ID3D11Device::CheckFormatSupport with D3D11_FORMAT_SUPPORT_DECODER_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT, D3D11_FORMAT_SUPPORT_VIDEO_ENCODER, and D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP
Example Usage
Typical usage of D3D11On12 would be to use D2D to render text or images on top of a D3D12 back buffer. See the D3D11On12 sample for example code. Here is a rough outline of the steps to take to do so:
- Create a D3D12 device (D3D12CreateDevice) and a D3D12 swap chain (CreateSwapChain with an ID3D12CommandQueue as an input).
- Create a D3D11On12 device using the D3D12 device and the same command queue as input.
- Retrieve the swap chain back buffers, and create D3D11 wrapped resources for each of them. The input state used should be the last way that D3D12 used it (e.g. RENDER_TARGET) and the output state should be the way that D3D12 will use it after D3D11 has finished (e.g. PRESENT).
- Initialize D2D, and provide the D3D11 wrapped resources to D2D to prepare for rendering.
Then, on each frame, do the following:
- Render into the current swap chain back buffer using a D3D12 command list, and execute it.
- Acquire the current back buffer’s wrapped resource (AcquireWrappedResources).
- Issue D2D rendering commands.
- Release the wrapped resource (ReleaseWrappedResources).
- Flush the D3D11 immediate context.
- Present (IDXGISwapChain1::Present1).
Force the sample count to create a rasterizer state
Direct3D 11.1 lets you specify a force sample count when you create a rasterizer state.
This Direct3D 11.1 feature consists of the following API.
ID3D11Device1::CreateRasterizerState1
Note
If you want to render with the sample count forced to 1 or greater, you must follow these guidelines:
- Don’t bind depth-stencil views.
- Disable depth testing.
- Ensure the shader doesn’t output depth.
- If you have any render-target views bound (D3D11_BIND_RENDER_TARGET) and you forced the sample count to greater than 1, ensure that every render target has only a single sample.
- Don’t operate the shader at sample frequency. Therefore, ID3D11ShaderReflection::IsSampleFrequencyShader returns FALSE.
Otherwise, rendering behavior is undefined. For info about how to configure depth-stencil, see Configuring Depth-Stencil Functionality.
d3d12.dll — что это за ошибка, как исправить
Операционная система состоит из ядра и множества динамических библиотек, подключаемых к нему. Каждый элемент выполняет свою роль, дополняет общую картину. Если же нужный компонент отсутствует, не может быть найден при запуске приложения, то на экране отобразится соответствующее уведомление.
К сожалению, с подобным явлением сталкиваются тысячи пользователей, и не всегда получается найти эффективное решение. В случае с d3d12.dll — ситуация аналогичная. Этот DLL файл является частью набора DirectX 12, необходимого для корректной обработки графики.
Ошибка характерна для Виндовс 7, где двенадцатая версия полноценно не поддерживается. Однако, можно прибегнуть к следующим решениям:
Обновить драйвера видеоадаптера, скачав актуальные апдейты с официального сайта. Также подойдет утилита Driver Booster, которая автоматически ищет отсутствующие «дрова», скачивает их и устанавливает за считанные минуты. А еще можно выполнить проверку в диспетчере устройств:
Нередко проблема заключается в том, что графический ускоритель не совместим с DirectX 12. Узнать больше о своей модели можно на официальных сайтах — AMD и nVidia.
Обновите операционную систему — помогает этот шаг редко, но на форумах встречаются сообщения об эффективности способа. Нужный раздел находится в панели управления:
Переход на Виндовс 10. В этой ОС d3d12.dll и другие важные DLL-файлы загружаются автоматически при установке. Очевидно, что не каждый владелец ПК готов «попрощаться с семеркой». Но Вы должны понимать, что скоро официальная поддержка прекратиться, да и «десятка» уже давно не сырое и унылое г*вно. Вот официальная информация по этому поводу:
Инсталляция DirectX 12 — самый простой метод. Позволит автоматически проверить, какие объекты отсутствуют в системе, а затем они загружаются из сети Интернет, копируются в подходящие папки. Достаточно скачать веб-установщик Дайрект Икс с официального ресурса Microsoft. Далее следовать интуитивно понятной инструкции:
Определение
Перед предоставлением руководства, как исправить ошибку с отсутствием вышепредставленной библиотеки, стоит в общих чертах разобраться, что это за ошибка d3d11.dll, ведь в любом случае необходимо понимать, с чем мы имеем дело.
А разбираться, в принципе, и не в чем. Обозначение d3d11.dll относится к динамической библиотеке, входящей в пакет DirectX 11
Важно отметить, что именно пакета одиннадцатой версии, а никакой другой. Например, если вы скачаете и установите DirectX 9, ошибка все равно будет происходить, так как в системе не окажется нужной библиотеки
К слову, DirectX, а соответственно и библиотека d3d11.dll, отвечает за корректное отображение графических моделей в программном обеспечении. То есть уже можно сделать вывод, что все программы или игры, которые не имеют в своем составе никаких объемных графических моделей, будут запускаться даже при отсутствующей библиотеке.
Помимо непосредственно определения, также стоит разобраться в причине проблемы. Исходя из контекста системного сообщения, уже можно понять, что программа или игра не может запуститься из-за отсутствия нужной библиотеки. Но это вовсе не означает, что она была удалена. Вы могли ее установить, но антивирус, посчитав файл зараженным, мог поместить ее в карантин, тем самым препятствуя работоспособности.
Что это за ошибка d3d11.dll, мы разобрались, а это означает, что можно приступать к методам ее устранения, к счастью их существует множество, и каждое решение хорошо по своему.
Вычисление шейдера
Вычислительный шейдер — это программируемый шейдер, предназначенный для параллельной обработки данных общего назначения. Иными словами, шейдеры вычислений позволяют использовать графический процессор в качестве параллельного процессора общего назначения. Вычисление шейдера похоже на другие программируемые построители текстур (вершина, пиксельные и геометрические), способные получить доступ к входным и выходным данным. Технология вычислений с шейдером также называется технологией DirectCompute. Вычисление шейдера интегрировано в Direct3D и доступно через устройство Direct3D. Он может напрямую обмениваться ресурсами памяти с графическими шейдерами с помощью устройства Direct3D. Однако он не подключен напрямую к другим этапам шейдера.
Шейдер вычислений предназначен для массовых приложений, выполняющих вычисления на интерактивных тарифах, когда затраты на переход между API (и связанным программным стеком) и ЦП занимают слишком много ресурсов.
У шейдера вычислений есть собственный набор состояний. В шейдере вычислений не обязательно наличие принудительного сопоставления 1-1 для входных записей (например, шейдер вершин) или выходных записей (например, шейдер пикселей). Некоторые функции шейдера графики поддерживаются, но другие были удалены, поэтому можно добавлять новые функции для работы с шейдером вычислений.
Для поддержки функций, относящихся к шейдеру вычислений, теперь доступны несколько новых типов ресурсов, таких как буферы чтения и записи, текстуры и структурированные буферы.
Дополнительные сведения см. в разделе Общие сведения о COMPUTE Shader .
Как скачать 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.
Как исправить ошибки d3d11.dll всего за несколько шагов?
Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!
Ошибки файла d3d11.dll могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.
Шаг 1.. Сканирование компьютера на наличие вредоносных программ.
Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом d3d11.dll или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.
Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно
Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии — сравнение антивирусного программного обеспечения
Шаг 2.. Обновите систему и драйверы.
Установка соответствующих исправлений и обновлений Microsoft Windows может решить ваши проблемы, связанные с файлом d3d11.dll. Используйте специальный инструмент Windows для выполнения обновления.
- Откройте меню «Пуск» в Windows.
- Введите «Центр обновления Windows» в поле поиска.
- Выберите подходящую программу (название может отличаться в зависимости от версии вашей системы)
- Проверьте, обновлена ли ваша система. Если в списке есть непримененные обновления, немедленно установите их.
- После завершения обновления перезагрузите компьютер, чтобы завершить процесс.
Помимо обновления системы рекомендуется установить последние версии драйверов устройств, так как драйверы могут влиять на правильную работу d3d11.dll или других системных файлов. Для этого перейдите на веб-сайт производителя вашего компьютера или устройства, где вы найдете информацию о последних обновлениях драйверов.
Шаг 3.. Используйте средство проверки системных файлов (SFC).
Проверка системных файлов — это инструмент Microsoft Windows. Как следует из названия, инструмент используется для идентификации и адресации ошибок, связанных с системным файлом, в том числе связанных с файлом d3d11.dll. После обнаружения ошибки, связанной с файлом %fileextension%, программа пытается автоматически заменить файл d3d11.dll на исправно работающую версию. Чтобы использовать инструмент:
- Откройте меню «Пуск» в Windows.
- Введите «cmd» в поле поиска
- Найдите результат «Командная строка» — пока не запускайте его:
- Нажмите правую кнопку мыши и выберите «Запуск от имени администратора»
- Введите «sfc / scannow» в командной строке, чтобы запустить программу, и следуйте инструкциям.
Шаг 4. Восстановление системы Windows.
Другой подход заключается в восстановлении системы до предыдущего состояния до того, как произошла ошибка файла d3d11.dll. Чтобы восстановить вашу систему, следуйте инструкциям ниже
- Откройте меню «Пуск» в Windows.
- Введите «Восстановление системы» в поле поиска.
- Запустите средство восстановления системы — его имя может отличаться в зависимости от версии системы.
- Приложение проведет вас через весь процесс — внимательно прочитайте сообщения
- После завершения процесса перезагрузите компьютер.
Если все вышеупомянутые методы завершились неудачно и проблема с файлом d3d11.dll не была решена, перейдите к следующему шагу. Помните, что следующие шаги предназначены только для опытных пользователей
Extended support for WARP devices
Direct3D 11.1 extends support for WARP devices, which you create by passing D3D_DRIVER_TYPE_WARP in the DriverType parameter of D3D11CreateDevice.
Starting with Direct3D 11.1 WARP devices support:
- All Direct3D feature levels from 9.1 through to 11.1
- Compute shaders and tessellation
- Shared surfaces. That is, you can fully share surfaces between WARP devices, as well as between WARP devices in different processes.
WARP devices don’t support these optional features:
- doubles
- video encode or decode
- minimum precision shader support
When you run a virtual machine (VM), Hyper-V, with your graphics processing unit (GPU) disabled, or without a display driver, you get a WARP device whose friendly name is «Microsoft Basic Display Adapter.» This WARP device can run the full Windows experience, which includes DWM, Internet Explorer, and Windows Store apps. This WARP device also supports running legacy apps that use DirectDraw or running apps that use Direct3D 3 through Direct3D 11.1.
Remarks
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.
Заключение
В качестве подведения всего вышесказанного всё же следует выделить несколько дополнительных причин, наличие которых может привести к проблемам с данным файлом.
- Используемая видеокарта просто не поддерживает «DirectX 11», в состав которого входит рассматриваемый «D3d11.dll».
- Устарели драйверы видеокарты. Обновлять драйверы следует именно с сайта производителя или с помощью специальных утилит, но сначала крайне желательно ознакомиться с рекомендациями разработчика относительно совместимости версии с используемым «железом».
- Отсутствуют важные (критические) обновления для операционной системы. Соответственно, выход тот же – это заняться актуализацией используемого вами программного обеспечения.
В целом, как показывает практика, риск возникновения проблем с «dll» можно минимизировать, уделяя время на поддержание «чистоты» Windows, при этом полностью не доверяя различным сторонним продуктам делать работу за вас. *
*P/S. Это исключительно мнение автора, которое никому не навязывается. Если вы не согласны с данным утверждением, милости просим в комментарии для плодотворной дискуссии и обсуждения плюсов и минусов различных оптимизаторов и «чистильщиков».