Исправление ошибки библиотеки d3d11.dll

Уровни функций Direct3D Direct3D feature levels

В Direct3D появился новый механизм определения аппаратной поддержки — уровни функций.Direct3D has a new mechanism for determining hardware support called feature levels. Благодаря уровням функций становится проще узнать о возможностях графического адаптера, поскольку можно запросить четко определенный набор функций GPU.Feature levels simplify the task of figuring out what the graphics adapter can do by allowing you to request a well-defined set of GPU functionality. Например, 9_1 функция уровня реализует функциональные возможности, предоставляемые видеоадаптеры Direct3D 9, включая шейдера модели 2.x.For example, the 9_1 feature level implements the functionality provided by Direct3D 9 graphics adapters, including shader model 2.x. С момента 9_1 самый низкий уровень компонента, предполагается, что все устройства, для поддержки вершинный построитель текстуры и текстуры, которые были же этапы, поддерживаемого моделью программируемый построитель текстуры Direct3D 9.Since 9_1 is the lowest feature level, you can expect all devices to support a vertex shader and a pixel shader, which were the same stages supported by the Direct3D 9 programmable shader model.

Ваша игра будет использовать D3D11CreateDevice для создания устройства и контекста устройства Direct3D.Your game will use D3D11CreateDevice to create the Direct3D device and device context. Вызывая эту функцию, вы предоставляете список уровней функций, которые поддерживает ваша игра.When you call this function you provide a list of feature levels that your game can support. На основе этого списка функция вернет самый высокий поддерживаемый уровень функций.It will return the highest supported feature level from that list. Например, если игры можно использовать BC4/BC5 текстур (функция оборудования DirectX 10), следует включить по крайней мере 9_1 и 10_0 в список поддерживаемых функциональных уровней.For example if your game can use BC4/BC5 textures (a feature of DirectX 10 hardware), you would include at least 9_1 and 10_0 in the list of supported feature levels. Если игра работает на оборудовании DirectX 9 и текстуры BC4/BC5 не может использоваться, затем D3D11CreateDevice вернет 9_1.If the game is running on DirectX 9 hardware and BC4/BC5 textures can’t be used, then D3D11CreateDevice will return 9_1. Затем ваша игра может переключиться на другой формат текстур (и более мелкие текстуры).Then your game can fall back to a different texture format (and smaller textures).

Если вы решили расширить игру Direct3D 9, добавив поддержку более высоких уровней функций Direct3D, лучше сначала закончить перенос существующего графического кода Direct3D 9.If you decide to extend your Direct3D 9 game to support higher Direct3D feature levels then it’s better to finish porting your existing Direct3D 9 graphics code first. После переноса игры в Direct3D 11 будет проще добавить дополнительные пути отрисовки с более сложной графикой.After you have your game working in Direct3D 11, it’s easier to add additional rendering paths with enhanced graphics.

Подробное объяснение поддержки уровней функций см. в разделе Уровни функций Direct3D.See Direct3D feature levels for a detailed explanation of feature level support. Полный перечень функций Direct3D 11 см. в разделах Функции Direct3D 11 и Функции Direct3D 11.1.See Direct3D 11 Features and Direct3D 11.1 Features for a full list of Direct3D 11 features.

Загрузите и замените файл d3d11.dll

Последнее решение — вручную загрузить и заменить файл d3d11.dll в соответствующей папке на диске. Выберите версию файла, совместимую с вашей операционной системой, и нажмите кнопку «Скачать». Затем перейдите в папку «Загруженные» вашего веб-браузера и скопируйте загруженный файл d3d11.dll.

Перейдите в папку, в которой должен находиться файл, и вставьте загруженный файл. Ниже приведен список путей к каталогу файлов d3d11.dll.

  • Windows 10: C:\Windows\System32\
  • Windows 8.1: C:\Windows\System32\
  • Windows 8: 1: C:\Windows\System32\
  • Windows 7: C:\Windows\SysWOW64\
  • Windows 7: C:\Windows\SysWOW64\

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

Tessellation

Tessellation can be used to render a single model with varying levels of detail. This approach generates a more geometrically accurate model that depends on the level of detail required for a scene. Use tessellation in a scene where the level of detail allows a lower geometry model, which reduces the demand on memory bandwidth consumed during rendering.

In Direct3D, tessellation is implemented on the GPU to calculate a smoother curved surface from a coarse (less detailed) input patch. Each (quad or triangle) patch face is subdivided into smaller triangular faces that better approximate the surface that you want.

For information about implementing tessellation in the graphics pipeline, see Tessellation Overview.

Remarks

CreateTexture2D creates a 2D texture resource, which can contain a number of 2D subresources. The number of textures is specified in the texture description. All textures in a resource must have the same format, size, and number of mipmap levels.

All resources are made up of one or more subresources. To load data into the texture, applications can supply the data initially as an array of D3D11_SUBRESOURCE_DATA structures pointed to by pInitialData, or it may use one of the D3DX texture functions such as D3DX11CreateTextureFromFile.

For a 32 x 32 texture with a full mipmap chain, the pInitialData array has the following 6 elements:

  • pInitialData = 32×32
  • pInitialData = 16×16
  • pInitialData = 8×8
  • pInitialData = 4×4
  • pInitialData = 2×2
  • pInitialData = 1×1

Создание цепочки буферовCreate a swap chain

В Direct3D 11 имеется API устройства под названием DXGI (DirectX Graphics Infrastructure).Direct3D 11 includes a device API called DirectX graphics infrastructure (DXGI). Интерфейс DXGI позволяет нам (среди прочего) управлять конфигурацией цепочки буферов и настраивать общий доступ к устройствам.The DXGI interface allows us to (for example) control how the swap chain is configured and set up shared devices. На этом шаге инициализации Direct3D мы создадим цепочку буферов с использованием DXGI.At this step in initializing Direct3D, we’re going to use DXGI to create a swap chain. Так как мы создали устройство, мы можем проследовать назад по цепочке интерфейсов до адаптера DXGI.Since we created the device, we can follow an interface chain back to the DXGI adapter.

Устройство Direct3D реализует COM-интерфейс для DXGI.The Direct3D device implements a COM interface for DXGI. Первым делом нам нужно получить этот интерфейс и с его помощью запросить адаптер DXGI, в котором содержится устройство.First we need to get that interface and use it to request the DXGI adapter hosting the device. Затем мы воспользуемся адаптером DXGI для создания фабрики DXGI.Then we use the DXGI adapter to create a DXGI factory.

Direct3D 11Direct3D 11

Теперь, когда у нас есть фабрика DXGI, мы можем с ее помощью создать цепочку буферов.Now that we have the DXGI factory, we can use it to create the swap chain. Определимся с параметрами цепочки буферов.Let’s define the swap chain parameters. Нам нужно указать формат поверхности; мы выберем DXGI_ФОРМАТ_B8G8R8A8_UNORM так, как она стала совместима с Direct2D.We need to specify the surface format; we’ll choose DXGI_FORMAT_B8G8R8A8_UNORM because it’s compatible with Direct2D. Масштабирование дисплея, множественную дискретизацию и стереоскопическую отрисовку мы отключим, так как они не используются в этом примере.We’ll turn off display scaling, multisampling, and stereo rendering because they aren’t used in this example. Поскольку работа идет непосредственно в CoreWindow, мы можем оставить ширину и высоту равными 0 и получить полноэкранные значения автоматически.Since we are running directly in a CoreWindow we can leave the width and height set to 0 and get full-screen values automatically.

Direct3D 11Direct3D 11

Чтобы убедиться, мы не чаще, чем экрана фактически может отображать визуализации, мы устанавливаем задержкой кадров 1 и используйте DXGI_ЗАМЕНЫ_эффект_ПЕРЕВЕРНУТЬ_SEQUENTIAL .To ensure we aren’t rendering more often than the screen can actually display, we set frame latency to 1 and use DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL. Тем самым экономится энергия, а кроме того это требуется для сертификации. Подробнее о представлении на экране вы узнаете из части 2 этой пошаговой инструкции.This saves power and is a store certification requirement; we’ll learn more about presenting to the screen in part 2 of this walkthrough.

Direct3D 11Direct3D 11

Теперь мы можем настроить задний буфер для отрисовки.Now we can set up the back buffer for rendering.

Constants

D3D11_BIND_VERTEX_BUFFER Bind a buffer as a vertex buffer to the input-assembler stage.
D3D11_BIND_INDEX_BUFFER Bind a buffer as an index buffer to the input-assembler stage.
D3D11_BIND_CONSTANT_BUFFER Bind a buffer as a constant buffer to a shader stage; this flag may NOT be combined with any other bind flag.
D3D11_BIND_SHADER_RESOURCE Bind a buffer or texture to a shader stage; this flag cannot be used with the D3D11_MAP_WRITE_NO_OVERWRITE flag.
Note  The Direct3D 11.1 runtime, which is available starting with Windows 8, enables mapping dynamic constant buffers and shader resource views (SRVs) of dynamic buffers with D3D11_MAP_WRITE_NO_OVERWRITE. The Direct3D 11 and earlier runtimes limited mapping to vertex or index buffers. To determine if a Direct3D device supports these features, call ID3D11Device::CheckFeatureSupport with D3D11_FEATURE_D3D11_OPTIONS. CheckFeatureSupport fills members of a D3D11_FEATURE_DATA_D3D11_OPTIONS structure with the device’s features. The relevant members here are MapNoOverwriteOnDynamicConstantBuffer and MapNoOverwriteOnDynamicBufferSRV.
 
D3D11_BIND_STREAM_OUTPUT Bind an output buffer for the stream-output stage.
D3D11_BIND_RENDER_TARGET Bind a texture as a render target for the output-merger stage.
D3D11_BIND_DEPTH_STENCIL Bind a texture as a depth-stencil target for the output-merger stage.
D3D11_BIND_UNORDERED_ACCESS Bind an unordered access resource.
D3D11_BIND_DECODER Set this flag to indicate that a 2D texture is used to receive output from the decoder API. The common way to create resources for a decoder output is by calling the ID3D11Device::CreateTexture2D method to create an array of 2D textures. However, you cannot use texture arrays that are created with this flag in calls to ID3D11Device::CreateShaderResourceView.Direct3D 11:  This value is not supported until Direct3D 11.1.
D3D11_BIND_VIDEO_ENCODER Set this flag to indicate that a 2D texture is used to receive input from the video encoder API. The common way to create resources for a video encoder is by calling the ID3D11Device::CreateTexture2D method to create an array of 2D textures. However, you cannot use texture arrays that are created with this flag in calls to ID3D11Device::CreateShaderResourceView.Direct3D 11:  This value is not supported until Direct3D 11.1.

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.

Устройства и контекст устройстваDevices and device context

Устройство Direct3D 11 представляет собой виртуализованный графический адаптер.A Direct3D 11 device represents a virtualized graphics adapter. Оно используется для создания ресурсов в видеопамяти, например для отправки текстур графическому процессору (GPU), создания представлений на основе ресурсов текстуры и цепочек буферов и для создания дискретизаторов текстур.It’s used to create resources in video memory, for example: uploading textures to the GPU, creating views on texture resources and swap chains, and creating texture samplers. Полный перечень способов использования интерфейса устройства Direct3D 11 приведен в разделах ID3D11Device и ID3D11Device1.For a complete list of what a Direct3D 11 device interface is used for see ID3D11Device and ID3D11Device1.

Контекст устройства Direct3D 11A Direct3D 11. используется для настройки состояния конвейера и создания команд отрисовки.device context is used to set pipeline state and generate rendering commands. Например, цепочка отрисовки Direct3D 11 использует контекст устройства для настройки цепочки отрисовки и рисования сцены (см. ниже).For example, a Direct3D 11 rendering chain uses a device context to set up the rendering chain and draw the scene (see below). Контекст устройства применяется для доступа к видеопамяти (сопоставления), которую используют ресурсы устройства Direct3D, а также для обновления данных подресурсов, например данных буфера констант.The device context is used to access (map) video memory used by Direct3D device resources; it’s also used to update subresource data, for example constant buffer data. Полный перечень способов использования контекста устройства Direct3D 11 приведен в разделах ID3D11DeviceContext и ID3D11DeviceContext1.For a complete list of what a Direct3D 11 device context is used for see ID3D11DeviceContext and ID3D11DeviceContext1

Обратите внимание, что большинство наших образцов используют мгновенный контекст для обработки напрямую на устройстве, но Direct3D 11 также поддерживает и отложенные контексты устройств, которые применяются преимущественно для многопоточности.Note that most of our samples use an immediate context to render directly to the device, but Direct3D 11 also supports deferred device contexts, which are primarily used for multithreading

Чтобы получить маркер устройства и маркер контекста устройства, в Direct3D 11 вызывается D3D11CreateDevice.In Direct3D 11, the device handle and device context handle are both obtained by calling D3D11CreateDevice. В этом методе также запрашивается определенный набор аппаратных функций и извлекаются сведения об уровнях компонентов Direct3D, которые поддерживает графический адаптер.This method is also where you request a specific set of hardware features and retrieve information on Direct3D feature levels supported by the graphics adapter. Дополнительные сведения об устройствах, контекстах устройств и потоковой модели см. в разделе Вводные сведения об устройстве в Direct3D 11.See Introduction to a Device in Direct3D 11 for more info on devices, device contexts, and threading considerations.

Compute Shader

A compute shader is a programmable shader designed for general-purpose data-parallel processing. In other words, compute shaders allow a GPU to be used as a general-purpose parallel processor. The compute shader is similar to the other programmable pipeline shaders (such as vertex, pixel, geometry) in the way that it accesses inputs and outputs. The compute shader technology is also known as the DirectCompute technology. A compute shader is integrated into Direct3D and is accessible through a Direct3D device. It can directly share memory resources with graphics shaders by using the Direct3D device. However, it is not directly connected to other shader stages.

A compute shader is designed for mass-market applications that perform computations at interactive rates, when the cost of transitioning between the API (and its associated software stack) and a CPU would consume too much overhead.

A compute shader has its own set of states. A compute shader does not necessarily have a forced 1-1 mapping to either input records (like a vertex shader does) or output records (like the pixel shader does). Some features of the graphics shader are supported, but others have been removed so that new compute shader-specific features could be added.

To support the compute shader-specific features, several new resource types are now available, such as read/write buffers, textures, and structured buffers.

See Compute Shader Overview for additional information.

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

Причины ошибок в файле FC3_d3d11.dll

Большинство ошибок FC3_d3d11.dll связано с отсутствием или повреждениями файлов FC3_d3d11.dll. Тот факт, что FC3_d3d11.dll – внешний файл, открывает возможность для всяческих нежелательных последствий.

Непредвиденные завершения работы вашего компьютера или заражение вирусом может повредить FC3_d3d11.dll, что приведет к ошибкам dll. Когда файл FC3_d3d11.dll повреждается, он не может быть нормально загружен и выведет сообщение об ошибке.

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

Более конкретно, данные ошибки FC3_d3d11.dll могут быть вызваны следующими причинами:

  • Ошибочные или поврежденные записи реестра для FC3_d3d11.dll
  • Вирус или вредоносное ПО, повредившее файл FC3_d3d11.dll.
  • Отказ оборудования UBI Soft Entertainment, например, некачественный жесткий диск, вызвавший повреждение файла FC3_d3d11.dll.
  • Другая программа изменила требуемую версию FC3_d3d11.dll.
  • Другая программа злонамеренно или по ошибке удалила файл FC3_d3d11.dll.
  • Другая программа удалила файл FC3_d3d11.dll.

Remarks

In general, binding flags can be combined using a logical OR (except the constant-buffer flag); however, you should use a single flag to allow the device to optimize the resource usage.

This enumeration is used by a:

  • Buffer description when creating a buffer.
  • Texture description when creating a texture (see D3D11_TEXTURE1D_DESC or D3D11_TEXTURE2D_DESC or D3D11_TEXTURE3D_DESC).

ID3D11DeviceContext::GSSetShaderResourcesID3D11DeviceContext::PSSetShaderResourcesID3D11DeviceContext::VSSetShaderResourcesD3D11_MAP_WRITE_NO_OVERWRITE
Note  The Direct3D 11.1 runtime, which is available starting with Windows 8, enables mapping dynamic constant buffers and shader resource views (SRVs) of dynamic buffers with D3D11_MAP_WRITE_NO_OVERWRITE. The Direct3D 11 and earlier runtimes limited mapping to vertex or index buffers. To determine if a Direct3D device supports these features, call ID3D11Device::CheckFeatureSupport with D3D11_FEATURE_D3D11_OPTIONS. CheckFeatureSupport fills members of a D3D11_FEATURE_DATA_D3D11_OPTIONS structure with the device’s features. The relevant members here are MapNoOverwriteOnDynamicConstantBuffer and MapNoOverwriteOnDynamicBufferSRV.
 

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).

Исправление ошибок 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, в отсутствии необходимого обновления платформы, о чем — далее. 

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

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

Способ 1: Самостоятельная загрузка d3d11.dll

Простым и быстрым решением проблемы с DLL станет самостоятельное скачивание и перемещение в системную директорию Windows. Вариант подходит при наличии единичной проблемы с конкретный файлом. Для обладателей систем 64-разрядности это сразу две папки: и . А вот в Windows 32 bit для этой цели используется только первая папка.

Иногда простое перемещение не помогает исправить неполадку, и тогда библиотеку следует зарегистрировать в системе.

  1. Для этого используется приложение «Командная строка», запущенное от имени администратора.

Там напишите команду и нажмите Enter. Если файл был перемещен в две директории, дополнительно введите команду .

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

Есть и иные способы выполнения этой процедуры. Про них мы рассказывали в другом материале.

Подробнее: Регистрируем файл DLL в ОС Windows

Распространенные сообщения об ошибках в D3dx11_43.dll

Наиболее распространенные ошибки d3dx11_43.dll, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • «D3dx11_43.dll не найден.»
  • «Файл d3dx11_43.dll отсутствует.»
  • «D3dx11_43.dll нарушение прав доступа.»
  • «Файл d3dx11_43.dll не удалось зарегистрировать.»
  • «Файл C:\Windows\System32\\d3dx11_43.dll не найден.»
  • «Не удалось запустить 古剑奇谭三(Gujian3). Отсутствует необходимый компонент: d3dx11_43.dll. Пожалуйста, установите 古剑奇谭三(Gujian3) заново.»
  • «Не удалось запустить данное приложение, так как не найден файл d3dx11_43.dll. Повторная установка приложения может решить эту проблему.»

Такие сообщения об ошибках DLL могут появляться в процессе установки программы, когда запущена программа, связанная с d3dx11_43.dll (например, 古剑奇谭三(Gujian3)), при запуске или завершении работы Windows, или даже при установке операционной системы Windows

Отслеживание момента появления ошибки d3dx11_43.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.

Use HLSL minimum precision

Starting with Windows 8, graphics drivers can implement minimum precision HLSL scalar data types by using any precision greater than or equal to their specified bit precision. When your HLSL minimum precision shader code is used on hardware that implements HLSL minimum precision, you use less memory bandwidth and as a result you also use less system power.

You can query for the minimum precision support that the graphics driver provides by calling ID3D11Device::CheckFeatureSupport with the D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT value. In this ID3D11Device::CheckFeatureSupport call, pass a pointer to a D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT structure that ID3D11Device::CheckFeatureSupport fills with the minimum precision levels that the driver supports for the pixel shader stage and for other shader stages. The returned info just indicates that the graphics hardware can perform HLSL operations at a lower precision than the standard 32-bit float precision, but doesn’t guarantee that the graphics hardware will actually run at a lower precision.

You don’t need to author multiple shaders that do and don’t use minimum precision. Instead, create shaders with minimum precision, and the minimum precision variables behave at full 32-bit precision if the graphics driver reports that it doesn’t support any minimum precision. For more info about HLSL minimum precision, see Using HLSL minimum precision.

HLSL minimum precision shaders don’t work on operating systems earlier than Windows 8.

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

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

Adblock
detector