RenderDoc 增加 DXBC to HLSL 的 shader viewer


目的

便于后续抓帧出来的 DXBC 转为 HLSL,提高可读性


原因

编写的原因,因为按照网上的大佬的BLOG,发现某个 etnlGD/HLSLDecompiler 上的工具使用上是有问题的 (有可能是以前的 render doc 版本没有问题,而我现在是在 render doc 1.3 测试的,发现不行)

后来我们公司的另一个项目组的方木君TA大佬,各种测试、折腾后,说是这个 cmd_Decompiler.exe 工具没有处理文件和目录是否存在的问题


问题

如下,是 Renderdoc DirectX ByteCode 转 HLSL 插件 修复说明,DXBC/HLSL 逆向反汇编 在 etnlGD/HLSLDecompiler 基础上修改的内容
在这里插入图片描述

但是我自己在 RenderDoc 1.3 测试过,还是有错误


解决

然后就是和 方木君TA大佬,一起修复这个问题,如下,再次修改为
在这里插入图片描述

就是增加了一句代码: mk "%~dp0temp.hlsl"

然后我将这个 fork 了一个仓库,二次修改了一下,上传到 github 上了:javelinlin/HLSLDecompiler


RenderDoc 中的配置方法

Tools/Settings
在这里插入图片描述
Settings/Shader Viewer/Add

  • Name : DXBC->HLSL
  • Tool Type : Custom Tool
  • Excutable: hlsl_decompiler_wrapper.bat 的绝对目录
  • Command Line : {input_file} {output_file} 注意两个参数之间有空格,因为是 bat 的参数
  • Input/Output : DXBCHLSL
    在这里插入图片描述
    在这里插入图片描述

RenderDoc 中应用

配置好 RenderDoc 的 DXBC->HLSL 之后
就是使用了,非常简单

Pipeline State/VS/View
在这里插入图片描述

Disassembly type : DXBC
在这里插入图片描述

Disassembly type : 修改为: HLSL (DXBC->HLSL)
在这里插入图片描述

Edit 就更加单,不用额外的选择
在这里插入图片描述
在这里插入图片描述


References

  • etnlGD/HLSLDecompiler - 里面有 dxbc to hlsl 的工具
    • Renderdoc DirectX ByteCode 转 HLSL 插件 修复说明,DXBC/HLSL 逆向反汇编 - 里面也是使用了:etnlGD/HLSLDecompiler 工具,但是我在 render doc 1.3 中测试,发现这种方法还是不行
  • javelinlin/HLSLDecompiler - 在 etnlGD/HLSLDecompiler fork 后修改了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KubeSphere平台使用

KubeSphere官网地址:https://kubesphere.io/zh/ KubeKey一键部署K8S集群:https://kubesphere.io/zh/docs/v3.4/installing-on-linux/introduction/multioverview/ 一台master node(初始化主节点)、两台 work node( joi…

SCI好看的配图-汇总

文章目录 图源:Sustainable Cities and Society【期刊】条形图2热力图-地图 图源:Sustainable Cities and Society【期刊】 引自:A machine learning-driven spatio-temporal vulnerability appraisal based on socio-economic data for COV…

如何编写一个好的测试用例?才能防止背黑锅

如何编写一个好的测试用例?才能防止背黑锅 什么是测试用例?一个好的测试用例包含什么?测试用例的编写思路总结 什么是测试用例? 在这之前,思考一个问题,下面这个简单的QQ登录页面,一共又多少条…

关于运维·关于Zabbix监控平台的面试点

目录 引言:明人不说暗话,今天分享几个在面试的时候常被问到关于Zabbix监控平台的面试点 1、zabbix的优点 2、zabbix的缺点 3、zabbix的监控模式 4、zabbix自定义监控怎么做 5、zabbix的自动发现功能 6、zabbix分布式监控有什么特点 引言&#xff1…

专业130+总分380+哈尔滨工程大学810信号与系统考研经验水声电子信息与通信

今年专业课810信号与系统130,总分380顺利考上哈尔滨工程大学,一年的努力终于换来最后的录取,期中复习有得有失,以下总结一下自己的复习经历,希望对大家有帮助,天道酬勤,加油!专业课&…

入门设计者不容错过!5款网页原型设计工具推荐!

即时设计 即时设计是一种支持团队合作的原型设计工具,不限于设备和人群的使用,浏览器可以打开和使用。在即时设计中,您可以从0到1创建一个Web页面原型,具有钢笔、矩形、矢量编辑、轮廓、文本、色彩填充等设计功能,足以…

达梦数据库入门语法:从基础到进阶的指南

目录 博客前言: 达梦数据库语法介绍 一.创建表空间 1.图形化创建 2.语法创建 ​编辑​编辑 3.修改表空间参数 图形化修改 ​编辑​编辑 语法修改 4.设置加密算法、密码 二.创建用户 1.图形化 2.sql执行 ​编辑 3.授予权限 授予用户 DBA 权限 授予用户…

三、RHCE--时间服务器

三、RHCE--时间服务器 一、简介二、软件安装三、配置时间服务器客户端四、配置时间服务器服务端五、示例: 一、简介 NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。 Chrony是一个开源自由…

k8s---ingress对外服务(traefik)

目录 ingress的证书访问 traefik traefik的部署方式: deamonset deployment nginx-ingress与traefix-ingress相比较 nginx-ingress-controller ui访问 deployment部署 ingress的证书访问 ingress实现https代理访问: 需要证书和密钥 创建证书 密钥 secre…

将 SQL Server 2022 数据库备份到 MinIO

Microsoft 在将 S3 连接器和 Polybase 添加到 SQL Server 2022 时取得了重大飞跃。因此,企业可以利用他们保存到对象存储中的大量数据,并使用它来丰富 SQL Server 表。他们还可以利用对象存储来备份 SQL Server,这是开放性和云原生灵活性的又…

UE4 添加按键输入事件 并在蓝图中使用按键输入节点

绑定按键 选择Edit/ProjectSettings/Engine/Input 在bindings中可以选择添加ActionMappings或则AxisMappings ActionMappings:按键事件,有按下和抬起两个事件,需要分别用两个键触发AxisMappings:输入事件,返回值为float,对于键盘…

每日OJ题_算法_滑动窗口⑤_力扣904水果成篮

目录 力扣904. 水果成篮 解析及代码1(使用容器) 解析及代码2(开数组) 力扣904. 水果成篮 904. 水果成篮 - 力扣(LeetCode) 难度 中等 你正在探访一家农场,农场从左到右种植了一排果树。这…

Elastic Stack(1):Elastic Stack简介

1 简介 ELK是一个免费开源的日志分析架构技术栈总称,官网https://www.elastic.co/cn。包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景&#xf…

GLM-4多模态重磅更新!摸着OpenAI过河!

智谱CEO张鹏说:OpenAI摸着石头过河,我们摸着OpenAI过河。 摸来摸去摸了一年,以每3-4个月升级一次基座模型的速度,智谱摸着OpenAI过河的最新成绩到底怎么样?真如所说吗? 听到GLM-4发布的当天,我就…

C++深入之虚函数、虚继承与带虚函数的多基派生问题

基础 在讲解带虚函数的多基派生问题时,我们要先弄清楚不带虚函数的多基派生存在什么样的问题,这样才好弄明白带虚函数的多基派生问题。 多基派生的二义性问题 一般来说,在派生类中对基类成员的访问应当具有唯一性,但在多基继承…

Docker(二)安装指南:主要介绍在 Linux 、Windows 10 和 macOS 上的安装

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南,这里主要介绍 Docker 在…

DAZ to maxon 实时面捕52个blendshapes 表情模板基本形中英文对照表

一、转自: DAZ to maxon 实时面捕52个blendshapes 表情模板基本形中英文对照表 - 哔哩哔哩 很多学员反映实时表情怎么就不同步呢?这个问题其实很常见。 第一:表情模板的顺序弄错,导致表情错乱。 第二:表情模板不标准…

AbstractHttpMessageConverter + easyexcell优雅下载附件

介绍 AbstractHttpMessageConverter 是 Spring 框架中用于处理 HTTP 消息转换的抽象基类。它用于处理来自 HTTP 请求的消息,并将其转换为特定的 Java 对象,或者将 Java 对象转换为 HTTP 响应消息。 这个抽象类允许开发人员创建自定义的 HTTP 消息转换器,以便在 Spring MVC…

职务岗位的概念澄清及应用

背景 现在的企业数字化平台中,有一些术语组织管理中的术语,理解上很有歧义,并且命名和应用上简直五花八门,洋相百出,比如,我们的大厂,就把角色这次,可以作为分类、分组的标签就能大…

2024-01-15(SpringMVCMybatis)

1.拦截器:如果我们想在多个handler方法(controller中的方法)执行之前或者之后都进行一些处理,甚至某些情况下需要拦截掉,不让handler方法执行,那么就可以使用SpringMVC为我们提供的拦截器。 拦截器和过滤器的区别:过滤…