问题标签 [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.
directx - DirectX 12 设备在创建后立即挂起
创建 DirectX 12 命令队列时出现一个奇怪的错误。其他 DX12 应用程序能够在同一台机器上成功启动。
我的电脑使用该D3D_FEATURE_LEVEL_11_0
if
块。测试用的显卡是NVIDIA GT 740,驱动361.75
这是正在使用的代码(最小化):
我分别在第 97 行和第 102 行收到以下错误:
第二个错误:
directx-12 - D3D11 CreateTexture2D 的 D3D12 等价物是什么?
我是direct3d 编程的新手,我一直在构建一个简单的Windows 应用程序,用d3d12 依次显示4 个图像。我对 D3D12 架构有基本的了解,到目前为止,我已经创建了四个命令分配器 (backb buffer size = 4)、一个命令列表、一个命令队列、描述符堆和一个栅栏。我还使用 WIC 从文件中加载了我的图像。我知道我必须以某种方式将图像纹理数据作为资源。虽然那部分还不清楚,但我想澄清一下如何从 d3d12 中加载的图像中制作纹理。
directx - Windows 通用应用程序 - FPS 仅限于监视器刷新/强制垂直同步?
我一直在尝试 DX12 并注意到来自 Microsoft 样本的“全屏”样本的行为非常不同。
主项目: https ://github.com/Microsoft/DirectX-Graphics-Samples/
桌面全屏示例: https ://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Fullscreen
UWP 全屏示例: https ://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/UWP/D3D12Fullscreen
随着
将 FPS 添加到标题栏
现在是桌面版,我可以在窗口或全屏模式下获得数千 FPS。
在 UWP 中,我仅限于我的显示器刷新 (60)。有没有办法绕过这个来提供“无限”的 FPS,或者这是 UWP 应用程序的限制?
dxgi - 无法修复 DXGI_ERROR_INVALID_CALL - DX12
我在调用 CreateSwapChain 时收到 DXGI_ERROR_INVALID_CALL。这是我创建命令队列的代码。
这就是我调用 CreateSwapChain 的地方。
我的hr返回上述错误。任何帮助,将不胜感激。
更新(问题仍然存在)
- 删除了亚当在评论中指出的对 SecureZeroMemory 的不必要使用
- 发现 hr 返回 S_OK 窗口模式。似乎问题与全屏模式有关
directx-12 - Directx 12 - 不支持适配器
我目前使用的是 nvidia 675M,并且在 directx 11 中运行良好,功能级别为 11_0
我正在关注directx 12的指南,他们说我仍然可以创建功能级别为11_0的设备,但是当我运行它时说它不受支持
我知道 100% 我正在使用正确的适配器,因为它说 675m
所以只是想知道是否有任何方法可以解决这个或其他方法,或者我是否只是需要一个新的显卡:(
directx - 如何从交换链中获取 DirectX 12 命令队列
假设 DX12 被挂钩以进行覆盖渲染的场景,看起来最好的挂钩函数是 IDXGISwapChain::Present,其方式与 DX11 相同。让这个函数挂钩交换链是可用的,并且可以从中检索设备以创建资源。鉴于这些资源,也可以记录渲染命令。当我们尝试执行渲染命令时会出现问题,因为没有选项可以从交换链中检索关联的命令队列,所以没有这样的:
另一种选择是创建一个新的命令队列来执行,如下所示:
这会导致错误和随后的设备移除。请参阅下面的错误消息。
D3D12 错误:ID3D12CommandQueue::ExecuteCommandLists:写入交换链后台缓冲区的命令列表只能在与该缓冲区关联的命令队列上执行。[状态设置错误#907:EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE]
即使 ID3D12CommandQueue::ExecuteCommandLists 也被钩住,问题也没有解决,因为也无法从命令队列中检索关联的交换链。
所以我的问题是,在可能发生挂钩之前创建交换链的情况下,推荐的解决此问题的方法是什么?
c++ - Win32 窗口不显示
我正在开发一个directX 应用程序,并且正在尝试设置一个窗口。但问题是我的窗口没有显示,而是显示我在创建窗口失败时创建的弹出窗口。我已经多次制作窗户,现在它无法正常工作。我在例程中唯一改变的是我将应用程序切换到 64 位应用程序而不是 32 位应用程序。我有一台 64 位计算机,它应该可以工作。
主文件
窗口.h
窗口.cpp
directdraw - 如何在 DirectX 12 中绘制文本?
这是您如何在 DirectX 11 中绘制文本的后续问题?
在 Direct3D-12 中,事情变得更加复杂,而且由于它是新的,我无法在网上找到任何合适的库。
我正在构建一个基本的 Direct3D12 FPS 测试应用程序,我喜欢在屏幕上显示 FPS 数据和我的渲染图像。
c++ - D3D12 项目:取消引用 nullptr
我正在使用他们 GitHub 页面上的 Microsoft 示例,即使我的代码基于他们的代码,我也没有达到相同的结果。这两个项目都有这些 ComPtrs,但在我的项目中它们都是空的(0x0000000000000000),而在示例中它们工作得很好。
具体来说,这一行会导致调试器中断。
编辑:我的代码错误地创建了导致错误的 m_device。
c++ - DirectX 12 - 描述符堆
我刚刚开始学习新的 DirectX 12 API。我想在 dx12 之上编写某种渲染引擎,并且在初始化期间我应该创建描述符堆。问题在于,此时我不知道我将来会创建多少资源视图。例如,如果我想包含一些需要渲染到纹理方法的后处理效果,我必须为要渲染到的纹理创建渲染目标视图。不过,这些 RTV 的数量可能会有所不同。那么如何创建足够大的描述符堆来应对各种情况呢?
有什么建议吗?