问题标签 [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.
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 作为第二张卡的笔记本电脑上工作,但我不确定。
c++ - 使用 D3D12Device 调用 DuplicateOutput 失败并出现 E_NOINTERFACE
我一直在尝试制作一个使用桌面复制 api 的应用程序,但是没有使用 directx 的经验,结果证明这是一个相当大的挑战。一切似乎都有效,直到我调用output1->DuplicateOutput()
它返回 E_NOINTERFACE。此错误未在 msdn 文档中定义,因此我无法诊断问题。我认为这段代码应该可以工作,但我必须遗漏一些东西。
在我的调试窗口中,我注意到当我调用output1->DuplicateOutput
.
更新:
我将问题缩小到我使用的是 ID3D12Device 而不是 ID3D11Device 的事实。正如此代码有效的事实所示:
我不明白为什么这是一个问题。桌面复制api不兼容directx 12吗?
include - 什么取代了#include在 DirectX 12 中?
我正在用一本书通过 DirectX 9,示例#include d3dx9tex.h
intellisense 表明该文件不存在,因此hResult = D3DXGetImageInfoFromFile(filename.c_str(), &imageInfo);
也显示错误。我安装了 DirectX 12。任何人都可以帮忙吗?
direct3d - 无法从 dx12 中的 ID3D12Device 获取 IDXGIDevice 或 IDXGIDevice1
我想从我的 dx12app 调用 IDXGIDevice1::SetMaximumFrameLatency 方法,因为我需要从当前的 Direct3D 12 设备获取有效的 IDXGIDevice1。查询接口返回一个 E_NOINTERFACE:
不确定我是否遗漏了某些东西,或者我需要实现一系列 dxgi 逻辑以获得有效的 IDXGIDevice1 接口。
提前感谢任何提示和感谢!剪辑
c++ - DirectX 12 自定义实现是否与 DirectX 11 相同?
我正在阅读《Practical rendering with DirectX 11》,想在深入了解 DirectX 概念后编写一个简单的引擎。
但是今天我们有 DirectX 12,它解决了驱动程序开销问题(因为我们更接近硬件),我正在考虑使用 12 作为我的主要渲染器。但是在开发结束时,我的引擎会成为某种驱动程序开销吗?我认为驱动程序开发人员比我聪明得多,所以我可以让 12 渲染比 11 慢。对吧?
windows - DXGI 翻转模型锁定为垂直同步
我发现使用翻转模型(DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 或 DXGI_SWAP_EFFECT_FLIP_DISCARD)创建的交换链被锁定为 VSync(1/60 秒),调用 IDXGISwapChain1::Present1 方法并将 SyncInterval 设置为 0,如下所示不起作用。
有谁知道如何禁用 DXGI 翻转模型的垂直同步?
windows-10 - 如何检测 Windows 10 上的开发者模式是否处于活动状态?
ID3D12Device::SetStablePowerState
函数调用仅在系统中打开开发者模式时可用。如果没有,它会触发设备移除。
是否有 API 来检测开发者模式是否开启,到目前为止,我在 msdn 上没有发现任何允许应用程序查询它的内容。
directx-12 - 我应该如何在 GPU 上为不同类型的场景对象分配/填充/更新内存?
我正在尝试编写我的第一个 DX12 应用程序。我以前没有DX11的经验。我想展示一些刚性和一些柔软的物体。暂时没有纹理。所以我需要在 GPU 中放置一些我以后永远不会改变的顶点/索引缓冲区,还有一些我会改变的。并且场景本身不是静态的,所以一些新对象可能会出现,一些可能会消失。
我应该如何在 GPU 上为其分配/填充/更新内存?我希望看到易于阅读和理解的高级概述,而不是真正的代码。希望问题不要太宽泛。
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-8055-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 上运行良好,在任何平台上
有什么想法吗?