Скачать d3d11.dll бесплатно

Решение

Для тех, кто использует Windows 10, в данном действии необходимости нет, так как данная версия операционной системы характеризуется тем, что ей было делегировано большинство задач по своевременному обновлению компонентов, в том числе и «DirectX». Требуется только запустить «Центр обновления Windows» и инициировать поиск недостающих компонентов. В качестве альтернативных вариантов можно использовать различные сторонние приложения, которые позволяют деинсталлировать «DirectX», а далее просто запустить «Центр обновления». Если вышеприведённые рекомендации не возымели желаемого эффекта, стоит попробовать несколько иной подход.

СОВЕТ. Но стоит предупредить, что необходимо опасаться каких-либо рекомендаций (коих на просторах сети огромное количество), которые советовали бы скачивание файла «D3d11.dll» со сторонних ресурсов (особенно с файлообменников) или использование «специальных» утилит, позволяющих в автоматическом режиме сканировать систему, скачивать и регистрировать файлы «dll». Как минимум, это будет впустую потраченное время, а в большинстве случаев проблемы с работой компьютера будут лишь усугублены. Решать рассматриваемую ошибку можно и нужно исключительно проверенными способами.

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

Для того чтобы это проверить, достаточно найти папку, куда ранее была установлена игра/программа и найти корневой каталог, где содержатся подобные файлы (наименование папки будет зависеть от ПО). После того, как вы убедитесь в наличии там необходимого компонента или в его отсутствии, переместите в корневой каталог корректный файл «D3d11.dll», который был вами получен после установки/обновления «DirectX», при этом от старого файла (при его наличии) избавляться не стоит. Просто переместите его в другую папку.

Использование Уавс на каждом этапе конвейера

Direct3D 11,1 позволяет использовать следующие инструкции в модели шейдера 5,0 на всех стадиях шейдера, которые ранее использовались только в шейдерах пикселей и шейдере вычислений.

  • дкл _ UAV _ типизированный
  • дкл _ UAV _ RAW
  • дкл _ UAV _ Structured
  • LD _ необработанных
  • _Структура LD
  • _UAV, _ тип LD
  • хранить _ необработанные
  • _структурированное хранилище
  • Сохранить _ UAV _
  • _углобал синхронизации
  • Все атомарные и непосредственные атомарные (например , _ атомарные и IMM _ Atomic _ и)

В Direct3D 11,1 для этой функции обновляются следующие методы.

  • Ссылку ID3D11DeviceContext:: Креатедомаиншадер
  • Ссылку ID3D11DeviceContext:: Креатежеометришадер
  • Ссылку ID3D11DeviceContext:: Креатежеометришадервисстреамаутпут
  • Ссылку ID3D11DeviceContext:: Креатехуллшадер
  • Ссылку ID3D11DeviceContext:: Креатевертексшадер

Эти инструкции существовали в Direct3D 11,0 в PS _ 5 _ 0 и CS _ 5 _ 0. Поскольку Direct3D 11,1 делает Уавс доступным на всех стадиях шейдера, эти инструкции доступны на всех стадиях шейдера.

При передаче скомпилированных шейдеров (VS/HS/DS/HS), которые используют любую из этих инструкций, в функцию создания шейдера, например креатевертексшадер, на устройствах, которые не поддерживают уавс на каждом этапе (включая существующие драйверы, не реализованные с помощью этой функции), функция Create-Shader завершается ошибкой. Функция Create-Shader также завершается ошибкой, если шейдер пытается использовать слот UAV за пределами набора слотов UAV, поддерживаемых оборудованием.

Уавс, на которые ссылаются эти инструкции, являются общими для всех стадий конвейера. Например, UAV, привязанный к слоту 0 на этапе Output-слияния , доступен в слоте 0 в VS/HS/DS/GS/PS.

UAV обращается к этапам шейдера, выполняемым внутри или за пределами построителя текстуры, которые выполняются в заданной отрисовке * () или что выдается из шейдера вычислений в диспетчеризации * (), не гарантируется завершение в порядке их возникновения. Но все доступ к UAV завершается в конце рисования * () или диспетчеризации * ().

Использовать минимальную точность HLSL

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

Вы можете запросить поддержку минимальной точности, предоставляемую графическим драйвером, вызвав ID3D11Device:: чеккфеатуресуппорт с параметром _ _ _ _ _ поддержки минимальной точности для шейдера функций D3D11 . В этом вызове ID3D11Device:: чеккфеатуресуппорт передайте указатель на структуру _ _ _ _ _ _ поддержки min Precision шейдера данных функции D3D11 , ID3D11Device:: чеккфеатуресуппорт заполняется минимальными уровнями точности, поддерживаемыми драйвером для этапа шейдера пикселей и для других стадий шейдера. Возвращенные сведения просто указывают, что графическое оборудование может выполнять операции HLSL с более низкой точностью, чем стандартная 32-разрядная точность чисел с плавающей запятой, но не гарантирует, что графическое оборудование будет работать с низкой точностью.

Вам не нужно создавать несколько шейдеров, которые выполняют и не используют минимальную точность. Вместо этого создайте шейдер с минимальной точностью, и переменные точности с точностью работают при полной 32-разрядной точности, если графический драйвер сообщает о том, что он не поддерживает какую-либо минимальную точность. Дополнительные сведения о минимальной точности HLSL см. в разделе Использование HLSL минимальной точности.

HLSLные шейдеры точности не работают в операционных системах, предшествующих Windows 8.

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

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

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

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

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

Вручную скачать оригинальные драйверы видеокарты с официальных сайтов AMD, NVIDIA или Intel (см., например, Как установить драйверы NVIDIA в Windows 10) и установить их.
Зайти в dxdiag (клавиши Win+R, ввести dxdiag и нажать Enter), открыть вкладку «Экран» и в разделе «Драйверы» обратить внимание на поле «DDI для Direct3D». При значениях 11.1 и выше ошибки D3D11 появляться не должны. При меньших — скорее всего дело в отсутствии поддержки со стороны видеокарты или ее драйверов

Либо, в случае Windows 7, в отсутствии необходимого обновления платформы, о чем — далее. 

При меньших — скорее всего дело в отсутствии поддержки со стороны видеокарты или ее драйверов. Либо, в случае Windows 7, в отсутствии необходимого обновления платформы, о чем — далее. 

Также вы можете посмотреть отдельно установленную и поддерживаемую аппаратно версию DirectX в сторонних программах, например, в AIDA64 (см. Как узнать версию DirectX на компьютере).

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

Methods

The ID3D11Device interface has these methods.

 
ID3D11Device::CheckCounter Get the type, name, units of measure, and a description of an existing counter.
ID3D11Device::CheckCounterInfo Get a counter’s information.
ID3D11Device::CheckFeatureSupport Gets information about the features that are supported by the current graphics driver.
ID3D11Device::CheckFormatSupport Get the support of a given format on the installed video device.
ID3D11Device::CheckMultisampleQualityLevels Get the number of quality levels available during multisampling.
ID3D11Device::CreateBlendState Create a blend-state object that encapsulates blend state for the output-merger stage.
ID3D11Device::CreateBuffer Creates a buffer (vertex buffer, index buffer, or shader-constant buffer).
ID3D11Device::CreateClassLinkage Creates class linkage libraries to enable dynamic shader linkage.
ID3D11Device::CreateComputeShader Create a compute shader.
ID3D11Device::CreateCounter Create a counter object for measuring GPU performance.
ID3D11Device::CreateDeferredContext Creates a deferred context, which can record command lists.
ID3D11Device::CreateDepthStencilState Create a depth-stencil state object that encapsulates depth-stencil test information for the output-merger stage.
ID3D11Device::CreateDepthStencilView Create a depth-stencil view for accessing resource data.
ID3D11Device::CreateDomainShader Create a domain shader.
ID3D11Device::CreateGeometryShader Create a geometry shader.
ID3D11Device::CreateGeometryShaderWithStreamOutput Creates a geometry shader that can write to streaming output buffers.
ID3D11Device::CreateHullShader Create a hull shader.
ID3D11Device::CreateInputLayout Create an input-layout object to describe the input-buffer data for the input-assembler stage.
ID3D11Device::CreatePixelShader Create a pixel shader.
ID3D11Device::CreatePredicate Creates a predicate.
ID3D11Device::CreateQuery This interface encapsulates methods for querying information from the GPU.
ID3D11Device::CreateRasterizerState Create a rasterizer state object that tells the rasterizer stage how to behave.
ID3D11Device::CreateRenderTargetView Creates a render-target view for accessing resource data.
ID3D11Device::CreateSamplerState Create a sampler-state object that encapsulates sampling information for a texture.
ID3D11Device::CreateShaderResourceView Create a shader-resource view for accessing data in a resource.
ID3D11Device::CreateTexture1D Creates an array of 1D textures.
ID3D11Device::CreateTexture2D Create an array of 2D textures.
ID3D11Device::CreateTexture3D Create a single 3D texture.
ID3D11Device::CreateUnorderedAccessView Creates a view for accessing an unordered access resource.
ID3D11Device::CreateVertexShader Create a vertex-shader object from a compiled shader.
ID3D11Device::GetCreationFlags Get the flags used during the call to create the device with D3D11CreateDevice.
ID3D11Device::GetDeviceRemovedReason Get the reason why the device was removed.
ID3D11Device::GetExceptionMode Get the exception-mode flags.
ID3D11Device::GetFeatureLevel Gets the feature level of the hardware device.
ID3D11Device::GetImmediateContext Gets an immediate context, which can play back command lists.
ID3D11Device::GetPrivateData Get application-defined data from a device.
ID3D11Device::OpenSharedResource Give a device access to a shared resource created on a different device.
ID3D11Device::SetExceptionMode Get the exception-mode flags.
ID3D11Device::SetPrivateData Set data to a device and associate that data with a guid.
ID3D11Device::SetPrivateDataInterface Associate an IUnknown-derived interface with this device child and associate that interface with an application-defined guid.

Remarks

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_DEFAULTD3D11_USAGE_STAGINGD3D11_USAGE_DEFAULTD3D11_USAGE_STAGINGID3D11DeviceContext::CopySubresourceRegionID3D11DeviceContext::CopyResourceID3D11DeviceContext::UpdateSubresourceD3D11_USAGE_DEFAULT

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.

Усовершенствования трассировки шейдеров и компилятора

Direct3D 11,1 позволяет использовать трассировку шейдера, чтобы убедиться в том, что код выполняется как задуманный, и если это не удается обнаружить и устранить проблему. пакет средств разработки Windows Software Development Kit (SDK) для Windows 8 содержит улучшения компилятора HLSL. Трассировка шейдеров и компилятор HLSL реализуются в D3dcompiler _nn.dll.

API трассировки шейдеров и усовершенствования компилятора HLSL состоят из следующих методов и функций.

  • ID3D11RefDefaultTrackingOptions:: Сеттраккингоптионс
  • ID3D11RefTrackingOptions:: Сеттраккингоптионс
  • ID3D11TracingDevice:: Сетшадертраккингоптионс
  • ID3D11TracingDevice:: Сетшадертраккингоптионсбитипе
  • ID3D11ShaderTraceFactory:: Креатешадертраце
  • ID3D11ShaderTrace:: Трацереади
  • ID3D11ShaderTrace:: Ресеттраце
  • ID3D11ShaderTrace:: Жеттрацестатс
  • ID3D11ShaderTrace::P Сселектстамп
  • ID3D11ShaderTrace:: Жетинитиалрегистерконтентс
  • ID3D11ShaderTrace:: onstep
  • ID3D11ShaderTrace:: Жетвриттенрегистер
  • ID3D11ShaderTrace:: Жетреадрегистер
  • D3DCompile2
  • D3DCompileFromFile
  • D3DDisassemble11Trace
  • D3DDisassembleRegion
  • D3DGetTraceInstructionOffsets
  • D3DReadFileToBlob
  • D3DSetBlobPart
  • D3DWriteBlobToFile

Для библиотеки D3dcompiler. lib требуется D3dcompiler _nn.dll. Эта библиотека DLL не является частью Windows 8; он находится в \ папке bin Windows SDK для Windows 8, а также Fxc.exe версии компилятора HLSL в командной строке.

Примечание

хотя вы можете использовать эту библиотеку и библиотеку DLL для разработки, вы не сможете развертывать приложения Windows Store, использующие это сочетание. поэтому перед догрузкой приложения Windows Store необходимо скомпилировать шейдеры HLSL. Можно записать двоичные файлы компиляции HLSL на диск или компилятор может создавать заголовки со статическими массивами байтов, содержащими данные BLOB-объектов шейдера. Для доступа к данным большого двоичного объекта используется интерфейс ID3DBlob . чтобы разработать приложение для магазина Windows, вызовите D3DCompile2 или D3DCompileFromFile , чтобы скомпилировать необработанный источник HLSL, а затем передать полученные данные большого двоичного объекта в Direct3D.

Определение

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

А разбираться, в принципе, и не в чем. Обозначение d3d11.dll относится к динамической библиотеке, входящей в пакет DirectX 11

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

То есть уже можно сделать вывод, что все программы или игры, которые не имеют в своем составе никаких объемных графических моделей, будут запускаться даже при отсутствующей библиотеке

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

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

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

Способ третий: ручная установка

Ошибку можно устранить также вручную — без использования всяческих программ. Для этого вам надо будет из Интернета загрузить сам файл d3d11.dll, а после переместить его в нужную директорию. К сожалению, для разных версий Windows директория разная. Сейчас будет продемонстрирован путь к каждой версии ОС:

  1. Windows XP, Vista, 7, 8, 8.1, 10 — «C:\Windows\System32».
  2. Windows 95/98/Me — «C:\Windows\System».
  3. Windows NT/2000 — «C:\WINNT\System32».

Также стоит брать во внимание, что если у вас 64-разрядная ОС, то конечная папка будет называться SysWOW64. Теперь вы знаете не только, что это за ошибка d3d11.dll, но и то, как ее устранить

Благо для этого есть целых три способа

Теперь вы знаете не только, что это за ошибка d3d11.dll, но и то, как ее устранить. Благо для этого есть целых три способа.

Corporate settings

The D3D11InstallHelper sample is designed for standard deployment through Windows Update, which is the most common scenario for installation of a game by consumers. However, Many game developers, working for publishers and in development studios, do so in enterprise settings that have a locally managed server providing software updates by using Windows Server Update Services (WSUS) technology. In this type of environment, the local IT administrator has approval control over which updates are made available to computers within the corporate network, and the standard consumer version of update KB 971644 is not available.

There are three basic solutions for deploying DirectX 11 in corporate/enterprise settings:

  • In some configurations, it is possible to directly check Windows Update rather than use the locally managed WSUS server. For this reason, D3D11InstallHelper supports the /wu command-line switch. However, not all corporate networks allow connections to the public Microsoft servers.
  • The local IT administrator can approve KB 971512, an enterprise-supported update deployed from WSUS, that includes the Direct3D 11 API. This is the only option for a Standard User to obtain the Direct3D 11 update in an environment that is fully locked down.
  • Alternatively, KB 971512 can be manually installed.

It is very rare that a gamer’s computer can only get updates from a locally managed WSUS server, and it is only developers in large organizations who are likely to be in such environments.

Background

D3D11On12 works systematically. Each D3D11 API call goes through the typical runtime validation and makes its way to the driver. At the driver layer, the special 11on12 driver records state and issues render operations to D3D12 command lists. These command lists are submitted as necessary (for example, a query or resource might require commands to be flushed) or as requested by Flush. Creating a D3D11 object typically results in the corresponding D3D12 object being created. Some fixed function render operations in D3D11 such as or are not supported in D3D12, and so D3D11On12 emulates them using shaders and additional resources.

For interop, it’s important to understand how D3D11On12 interacts with the D3D12 objects that the app has created and provided. In order to ensure that work happens in the correct order, the D3D11 immediate context must be flushed before additional D3D12 work can be submitted to that queue. It’s also important to ensure that the queue given to D3D11On12 must be drainable at all times. That means that any waits on the queue must eventually be satisfied, even if the D3D11 render thread blocks indefinitely. Be wary not to take a dependency on when D3D11On12 inserts flushes or waits, as this may change with future releases. Additionally, D3D11On12 tracks and manipulates resource states on its own. The only way to ensure coherency of state transitions is to make use of the acquire/release APIs to manipulate the state tracking to match the app’s needs.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector