问题标签 [directx-12]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1682 浏览

c++ - DirectX12 commandList 执行错误

我已经开始学习 DirectX12,并尝试制作某种简单的引擎。我遵循 Frank D. Luna 的“DirectX12 3D 编程简介”,但遇到了一些问题。首先在创建swapChain时,填写如下描述:

我收到“错误参数”错误。我已经在 MSDN 上找到了解决方案,但我想知道我做错了什么。

第二个问题是为什么我有:

D3D12 ERROR: ID3D12GraphicsCommandList::*: A single command list cannot write to multiple buffers within a particular swapchain. [ STATE_SETTING ERROR #904: COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES]

在执行此清除屏幕代码片段期间:

为了不把这篇文章弄得一团糟,我不会把所有的代码都放在这里,但是如果你想看看它是什么样子的,或者在这种情况下它很重要,我的整个存储库都在这里: repository

它很小很简单,几乎所有的代码都放在 Core 类中。

先感谢您!

编辑: 我找到了第二个问题的解决方案。问题出在这个循环中:

}

我只做了一个动作使这段代码看起来像这样:

}

在那之后。当 commandList 关闭正确时,我在 D3D12.dll 中有 AccessViolationException:

经过几个小时的互联网研究,我通过使用“dxcpl.exe”在此应用程序上强制 WARP 来修复。我认为那是因为我在使用 HD4000 和 Nvidia 作为第二张卡的笔记本电脑上工作,但我不确定。

0 投票
1 回答
1148 浏览

c++ - 使用 D3D12Device 调用 DuplicateOutput 失败并出现 E_NOINTERFACE

我一直在尝试制作一个使用桌面复制 api 的应用程序,但是没有使用 directx 的经验,结果证明这是一个相当大的挑战。一切似乎都有效,直到我调用output1->DuplicateOutput()它返回 E_NOINTERFACE。此错误未在 msdn 文档中定义,因此我无法诊断问题。我认为这段代码应该可以工作,但我必须遗漏一些东西。

在我的调试窗口中,我注意到当我调用output1->DuplicateOutput.

更新:

我将问题缩小到我使用的是 ID3D12Device 而不是 ID3D11Device 的事实。正如此代码有效的事实所示:

我不明白为什么这是一个问题。桌面复制api不兼容directx 12吗?

0 投票
2 回答
1679 浏览

include - 什么取代了#include在 DirectX 12 中?

我正在用一本书通过 DirectX 9,示例#include d3dx9tex.hintellisense 表明该文件不存在,因此hResult = D3DXGetImageInfoFromFile(filename.c_str(), &imageInfo);也显示错误。我安装了 DirectX 12。任何人都可以帮忙吗?

0 投票
1 回答
1807 浏览

direct3d - 无法从 dx12 中的 ID3D12Device 获取 IDXGIDevice 或 IDXGIDevice1

我想从我的 dx12app 调用 IDXGIDevice1::SetMaximumFrameLatency 方法,因为我需要从当前的 Direct3D 12 设备获取有效的 IDXGIDevice1。查询接口返回一个 E_NOINTERFACE:

不确定我是否遗漏了某些东西,或者我需要实现一系列 dxgi 逻辑以获得有效的 IDXGIDevice1 接口。

提前感谢任何提示和感谢!剪辑

0 投票
1 回答
347 浏览

c++ - DirectX 12 自定义实现是否与 DirectX 11 相同?

我正在阅读《Practical rendering with DirectX 11》,想在深入了解 DirectX 概念后编写一个简单的引擎。

但是今天我们有 DirectX 12,它解决了驱动程序开销问题(因为我们更接近硬件),我正在考虑使用 12 作为我的主要渲染器。但是在开发结束时,我的引擎会成为某种驱动程序开销吗?我认为驱动程序开发人员比我聪明得多,所以我可以让 12 渲染比 11 慢。对吧?

0 投票
1 回答
85 浏览

constexpr - 构建 DirectX 12 示例代码中的 constexpr 错误

我想构建 DX 12 示例代码,但出现以下错误。 DX 12 构建中的错误

有什么解决办法吗?

0 投票
1 回答
696 浏览

windows - DXGI 翻转模型锁定为垂直同步

我发现使用翻转模型(DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 或 DXGI_SWAP_EFFECT_FLIP_DISCARD)创建的交换链被锁定为 VSync(1/60 秒),调用 IDXGISwapChain1::Present1 方法并将 SyncInterval 设置为 0,如下所示不起作用。

有谁知道如何禁用 DXGI 翻转模型的垂直同步?

0 投票
1 回答
1581 浏览

windows-10 - 如何检测 Windows 10 上的开发者模式是否处于活动状态?

ID3D12Device::SetStablePowerState函数调用仅在系统中打开开发者模式时可用。如果没有,它会触发设备移除。

是否有 API 来检测开发者模式是否开启,到目前为止,我在 msdn 上没有发现任何允许应用程序查询它的内容。

0 投票
1 回答
133 浏览

directx-12 - 我应该如何在 GPU 上为不同类型的场景对象分配/填充/更新内存?

我正在尝试编写我的第一个 DX12 应用程序。我以前没有DX11的经验。我想展示一些刚性和一些柔软的物体。暂时没有纹理。所以我需要在 GPU 中放置一些我以后永远不会改变的顶点/索引缓冲区,还有一些我会改变的。并且场景本身不是静态的,所以一些新对象可能会出现,一些可能会消失。

我应该如何在 GPU 上为其分配/填充/更新内存?我希望看到易于阅读和理解的高级概述,而不是真正的代码。希望问题不要太宽泛。

0 投票
1 回答
517 浏览

c# - NAudio 和 DirectX 12

使用 NAudio 时出现 DirectX 源错误。我对 DirectX 不是很了解,所以希望得到一些指导。

在安装了 DirectX 12 的 Windows 10 PC 上初始化 NAudio 时收到的错误是:

NAudio.Dmo.DmoResampler..ctor System.Runtime.InteropServices.COMException:检索具有 CLSID {F447B69E-1884-4A7E-80​​55-346F74D6EDB3} 的组件的 COM 类工厂因以下错误而失败:80040154 未注册类(来自异常>HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。

NAudio.Dmo.DmoResampler..ctor

NAudio.Wave.ResamplerDmoStream..ctor IWaveProvider inputProvider, WaveFormat outputFormat

NAudio.Wave.WasapiOut.Init IWaveProvider waveProvider

Sound.Support.AudioPlaybackEngine..ctor MMDevice 设备,Int32 sampleRate,Int32 channelCount

Sound.Manager.PerformInitialization

分析.ViewModels.ApplicationViewModel.InitSoundManager

好的,很明显一些 COM 对象没有注册,那该怎么办呢?

这是调用 NAudio 的代码:

故障发生在第一次调用。

这在 DirectX 11 上运行良好,在任何平台上

有什么想法吗?