Unity Nsight Graphcis 使用

news/2025/2/18 11:03:06/

前言

在渲染Profile中,大家经常喜欢使用Renderdoc软件, 之前我的一篇博客也介绍Renderdoc Profile渲染的流程

RenderDoc Debug UE4 Shader_ue4 debug shader_带帯大师兄的博客-CSDN博客

 Renderdoc适合查看Draw哪一步出差了,导致效果不符合理想,又或者是非常粗糙估算某次Drawcall的消耗时间。但是Renderdoc有个非常严重的缺点,无法具体查看某次DrawCall具体瓶颈, 比如具体消耗瓶颈是在VertexShader, 还是PixelShader,消耗瓶颈在Shader的哪一步计算,这些Renderdoc是无法查看的。因此, 为了进一步查看这些更具体的性能数据, 得进一步使用其他工具来Profile, 我比较推荐Windows版本的NSight Graphcis 

NSight Graphcis 

下载地址: Download NVIDIA Nsight Graphics | NVIDIA Developer

使用文档: User Guide :: Nsight Graphics Documentation

显卡要求: RTX系列显卡(Shader Profile需要RTX显卡)

Unity引擎版本: 2022.2.1f1

NSight Graphcis版本: 2022.1.1

Demo:Unity实现GPU Cull渲染_带帯大师兄的博客-CSDN博客

RenderAPI环境: Directx12

FrameDebugger

 

 

 运行Demo后截帧

Event 和 CurretTareget

Draw事件查看器,和Renderdoc的Event使用差不多

 

Range Profier

 

 

Debug一个渲染阶段(各种Draw事件)的各项性能指标,特别是Pipeline Overview清晰的给出VS/PS/GS/CS等阶段占比消耗。

ShaderProfiler

 记得使用RTX显卡,并且在Directx12环境,unity shader加入一下宏, Unity比较推荐2022之后的国际版本。

#pragma enable_d3d11_debug_symbols
#pragma use_dxc

 shader profile入口很多,可以从RangeProfiler或者Eevent进入

在转dxc下才能看到Shader具体执行指令的性能HotSpots

 

 目前碰上一个坑:SurfaceShader在 use_dxc宏下存在异常,无法查看HotSpots和HLSL层面的代码

 

 

 

 

 


http://www.ppmy.cn/news/59925.html

相关文章

CentOS 7.x 安装 ZooKeeper 并实现集群搭建

0. 集群结构 服务器IPhostname节点说明192.168.31.101master主节点192.168.31.102slave1从节点192.168.31.103 slave2 从节点 下面的安装与配置操作需要在三台服务器上都执行一遍。 1. 安装JDK ZooKeeper要求运行在 JDK 环境上,JDK安装教程可参考 CentOS 7.x 安装…

国产高端GPU,国产替代加速(附国产厂家汇总)

前言 2022年8月9日,壁仞科技在上海发布首款通用GPU芯片BR100,标志着中国企业第一次打破了此前一直由国际巨头保持的通用GPU全球算力纪录; 8月31日,美国政府命令芯片厂商英伟达(NVIDIA)以及超威半导体&…

设计模式——观察者模式

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线设计模式牛客面试题 目录 观察者模式 1、天气预报需求 2、天气预报需求方案之普通方案 3、观察者模式介绍 4、观察者模式优化天气预报案例 5、JDK 的O…

JavaScript 心跳函数封装-轮询接口查询数据状态

文章目录 函数设计需求1. 简介2. 函数实现3. 注意事项4. 实际应用5. 总结 函数设计需求 本函数解决需求如下 函数为封装好的异步函数轮询未到终止状态时promise始终为padding状态轮询未到终止态时需求每五秒请求一次接口轮询接口为waitingCheckImportV2状态值success为成功状…

LeetCode //2667. Create Hello World Function (Day 1 of LC JavaScript Challenge)

2667. Create Hello World Function Write a function createHelloWorld. It should return a new function that always returns “Hello World”. Example 1: Input: args [] Output: “Hello World” Explanation: const f createHelloWorld(); f(); // “Hello World” …

搭建Harbor镜像仓库及简单使用

一、Harbor简介 Harbor是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。 作为一个企…

第二十五章 刚体Rigidbody

在物理学中,静止和匀速直线运动是物体的平衡状态,如果给该物体施加某一个力的话,物体的平衡状态就会改变,当然这个真理的前提是理想状态。我们知道在现实世界中,由于重力和摩擦力的存在,任何一个物体都不可…

一文弄懂Pytorch的DataLoader,Dataset,Sampler之间的关系

以下内容都是针对Pytorch 1.0-1.1介绍。 很多文章都是从Dataset等对象自下往上进行介绍,但是对于初学者而言,其实这并不好理解,因为有的时候会不自觉地陷入到一些细枝末节中去,而不能把握重点,所以本文将会自上而下地对…