最强生命力物种:BUG; 而我,每天都要修复它。
看到自己RedMine上的BUG单下来的越来越多,不是不想修,是有太多都很难修; 有些需要对GPU了解,有些需要对某些业务逻辑了解;
总之什么样的BUG都有。
这次遇到一个:Image绘制时,会有:纹理边缘有黑边的问题,而且是偶现; 人物走动时这些黑边会偶现:时隐时现。
这种BUG,我第一反应时,看shader有没有问题。
vs 是:
op = va0 m44 mvp; // va0 是pos
v0 = va1 * vc0; // va1是输入的颜色, vc0就是颜色变化的vec // 赋值给了v0 结果,fs中使用的v0
v1 = va2; // va2 是uv,赋值给v1到fs中使用
fs :
color = tex(v0, fs0); // map uv
color *= v1 // tint color
这么简单的shader还能有什么错,是吧?一目了解:没问题。
那么可能就是shader的输入参数的数据异常了。 看了一下,也就va0(pos), va1(inColor), va2(inUV), fs0(sampleTex0)
但如果想要实时查看这些数据,没有个好的GPU Analyzer,真的比较麻烦; (各种条件断点,各种if条件,过滤不关注的数据的drawTriangles)
想起了同事xandy之前介绍的一款工具,但当时我压根有时间去学习,天天做新需求,或是调整需求,很多学习计划都耽搁了。 现在算时有丢丢时间,不马上学习一下怎么行呢?
这款工具叫:Intel INDE 这里的Intel INDE不是Intel印度的意思,刚开始第一次看到这个名称时,我直觉翻译就是:印度,差点没给自己吓尿。 INDE是:Integrated Native Developer Experience Intel INDE: Intel® Integrated Native Developer Experience
这个工具有个优点:可跨平台分析。
我英文渣渣,所以学习入门有点难,有点慢; 但又可以学习到这么好的神器如果使用,又可以提高英文,何乐不为。
GettingStartedGettingStarted INDE
针对:windows下的图形性能分析入门Getting Started with Intel® Graphics Performance Analyzers for Windows* Host
(就在上面的链接中,还有可针对其它平台的,看链接的#锚点名称就知道了,还有android的,ios下的,等等)
最后,使用该工具,发现时纹理有问题。原因:某同学在纹理数据上传前写了一些复用功能,在判断可复用时,没有把旧的纹理数据清理干净,就往下写了一些新数据,从而导致纹理显示异常;