Shader代码自动优化产生的问题
来源:互联网 发布:美国国民警卫队知乎 编辑:程序博客网 时间:2024/05/16 11:42
今天修改引擎代码和shader后,FPS一下降到1-2,以为是引擎代码中设置纹理的一个地方的问题,导致纹理频繁被切换,但之后排除了这个问题。发现是debug输出窗口一直在输出信息。一看是VS中输出的几个纹理坐标值在PS中没有使用,我们的引擎在渲染时进行了检查,发现VS输出和PS输入声明不匹配,而每帧输出debug信息,从而导致帧率突然降低。
但PS的声明和VS输出是绝对一致的,问题出在shader代码编译时的自动优化。为了调试看修改的效果,我在PS中将颜色值设成1了,后面光照计算结果也注释掉了(为了看Lightmap效果)。正是注释掉的问题,shader在编译时编译器发现颜色值在去了纹理颜色后又被赋值为一个常量,后面光照结果也没有用,便进行了自动优化,没有执行这些无用的操作(虽然代码存在),当然几个纹理坐标也就没有用到,PS输入结构估计也被优化了,去掉了这几个纹理坐标声明。
现在发现,有的问题,如果不是有经验,碰到了真的会让人调试挂掉的。就像这类问题,还有上次的vs2008调试信息不对的问题,如果不是总监有经验,我想我很难这么快解决。
另外,需要多了解shader model的结构,比如各种寄存器数量,支持新指令等。PS_3_0支持的输入寄存器是10个,即输入的纹理坐标数据不能超过10。
- Shader代码自动优化产生的问题
- Keil的代码优化产生的问题
- Keil的代码优化产生的问题
- Keil的代码优化产生的问题
- 摘录一些有关Shader优化的问题
- .net 自动产生的JavaScript代码
- 自动Shader优化器glsl_optimizer的编译与使用
- glsl_optimizer(Shader自动优化器) 的使用
- c#自动产生随机数的问题
- 测试 orange 中代码产生的问题
- ios 自动产生代码文档
- PHP性能优化 产生高度优化代码
- spring quartz 与自动装配 产生的问题
- 转 自动Shader优化器glsl_optimizer的编译与在cocos2dx中使用
- [UnityShader]Shader上的优化
- 代码优化出的问题
- MyEclipse自动代码优化
- MFC获取远程网页HTML代码产生的乱码问题
- 简单的处理文本框字符,也可以禁止粘贴包括快捷键
- struts2.1.8+Spring3.0+Hibernate3.3整合+Hibernate二级缓存配置
- 类的构造、析构、拷贝、赋值函数
- windows下php.ini中APC的配置
- NAT类型说明与类型检测
- Shader代码自动优化产生的问题
- 新浪的网页背景特效,可以关闭不显示
- Android学习笔记--下拉菜单(Spinner)
- win7系统下使用telnet登陆到虚拟机中的linux系统
- Eclipse设置编码
- 如何把Session存入数据库
- 页面右上角 extend 框
- Linux下Hadoop集群安装详细步骤
- 中兴V880手机的随机软件列表