【问题标题】:Using visual studio graphics debugger OR nvidia nsight with steam games在 Steam 游戏中使用 Visual Studio 图形调试器或 nvidia nsight
【发布时间】:2014-11-06 17:42:59
【问题描述】:

我一般使用 Intel GPA 来剖析和分析 Steam 上游戏的渲染过程。我想探索 Visual Studio 的图形调试器和 Nvidia nSight,但我无法让它们“锁定”游戏进程。

这似乎与 Steam 游戏的启动方式有关。单击 game.exe 会启动一个 Steam 进程,该进程又会启动游戏。我不知道为什么 Valve 会这样做,但它可以防止这些工具“挂钩”到进程并捕获帧。

我尝试使用“steam_appid.txt”文件来阻止此启动序列(steam API 提到了这一点),但无济于事。澄清一下——我无法访问这些游戏的来源;我只对渲染分析感兴趣。

【问题讨论】:

  • 可能很明显,但我只是想提醒一下。现在 Steam 上的许多游戏都使用 OpenGL 进行渲染。如果您无法捕获任何帧,则可能意味着根本没有 DirectX 帧。 Nsight 支持有限的 OpenGL 调试,但 Visuals Studio 的调试器不支持。
  • 嗯,不是真的。大多数游戏仍然是 Windows 上的 DX。从 GL 工具的角度来看,这是一个非常可悲的状态。就 GL 支持而言,Vogl、Renderdoc、GPA 都在进行中。

标签: visual-studio 3d directx nsight steam


【解决方案1】:

我认为 Nsight 可以支持您提到的“闩锁”。请配置 Nsight 的用户设置:

  • 启动外部程序:$PATH_TO_YOUR_STEAM_EXE
  • 选中名为“应用程序是启动器”的复选框[这是关键]
  • 工作目录:$PATH_TO_YOUR_STEAM_WORK_DIR

还记得取消选中同步部分中的“同步文件”。

所有配置完成后,像往常一样启动,当steam真正运行时,你会看到一个附加对话框。

从steam上运行游戏,在Nsight的附加对话框中双击游戏进程,然后你会在游戏中看到Nsight HUD,Nsight图形调试的所有功能都应该正常工作。

这里的关键是告诉 Nsight 你的 'steam.exe' 只是一个启动器,并且 Nsight 的 dll 应该从 steam.exe 中挂钩子进程,这意味着“根据需要挂钩/附加”。

谢谢 一个

【讨论】:

  • 啊,这就是我需要使用它的方式:) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2012-03-17
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 2013-12-13
  • 1970-01-01
相关资源
最近更新 更多