木子李1234 2023-11-05 15:44 采纳率: 0%
浏览 42
已结题

使用iddcx创建虚拟显示屏失败,EvtIddCxMonitorAssignSwapChain没有被调用

请教大家一下,我使用微软的iddcx以及iddsampledriver (https://learn.microsoft.com/en-us/windows-hardware/drivers/display/iddcx-objects) ,创建了一个虚拟显示屏,但是该显示屏无法切换成扩展显示屏: (此显卡驱动侧 DDI 接口没有打印,使用其他显卡和驱动能正常切换)

iddcx的日志如下:红色框为切换为扩展显示屏的日志,EvtIddCxMonitorAssignSwapChain没有被调用,请问可以看出相关问题出再哪里吗?或者有方法可以找到一些indirectkmd的trace吗?

大概率是该硬件驱动不适配,DDI的接口也并没有调用进去,比如vidpn相关的接口也没有被调用。
显卡驱动是基于wddm2.0实现的,请问wddm2.1相比wddm2.0有多增加或者修改哪些与indirect display相关的DDI接口吗?

img

  • 写回答

15条回答 默认 最新

  • DRobot 2023-11-10 23:57
    关注

    当使用IDXGIFactory2的CreateSwapChain方法创建虚拟显示屏时,如果Evtld dCxMonitorAssignSwapChain没有被调用,可能是由于以下原因之一:
    IDXGIAdapter的AddRef方法没有被正确调用。在调用CreateSwapChain方法之前,必须通过调用IDXGIAdapter的AddRef方法来增加其引用计数。否则,该方法可能会返回空引用(NULL)。
    IDXGIFactory2的CreateSwapChain方法没有正确设置参数。在调用该方法时,必须正确设置所有必需的参数,包括IDXGISwapChain、DXGI_SWAP_CHAIN_DESC、IDXGIAdapter和DXGI_SWAP_CHAIN_DESC2。如果这些参数中的任何一个不正确,该方法可能会返回空引用(NULL)。
    IDXGIFactory2的CreateSwapChain方法调用失败。如果该方法返回的不是空引用(NULL),但Evtld dCxMonitorAssignSwapChain仍然没有被调用,则可能是因为该方法调用失败了。在这种情况下,可以检查返回的IDXGISwapChain对象是否为空,以确定是否出现了错误。
    如果您仍然无法解决问题,请尝试使用DXGI调试工具来调试您的应用程序。这可以帮助您确定问题的根本原因,并提供更好的调试信息。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月12日
  • 修改了问题 11月6日
  • 修改了问题 11月5日
  • 创建了问题 11月5日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证