游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5586|回复: 11

如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方面

[复制链接]

2

主题

5

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2009-9-9 12:30:00 | 显示全部楼层 |阅读模式
请问如果发现DrawIndexedPrimitive执行效率很低,通常是什么问题引起的呢?应该从哪些方面着手检查呢?谢谢!

14

主题

127

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2009-9-9 15:03:00 | 显示全部楼层

Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方

同问啊

5

主题

46

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
发表于 2009-9-9 16:19:00 | 显示全部楼层

Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方

Vertex数据的命中率会影响效率
同样用index画一个三角形
index: 1,2,3  比  index 1, 100, 200 要快

13

主题

312

帖子

312

积分

中级会员

Rank: 3Rank: 3

积分
312
发表于 2009-9-9 16:59:00 | 显示全部楼层

Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方

好的Triangle List比比Strip要快……


-----------------------------------------------------------------------------------

欢迎访问 http://www.opengpu.org/bbs/

OpenGPU图形开源社区,聚焦各种GPU Architecture(图形处理器体系结构)以及各种Graphics Algorithm(图形算法),Open Source Rendering Engine(开源渲染器)、Open Source GPU Simulator/RTL Implement(开源GPU模拟器)的项目,欢迎访问

1

主题

11

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2009-9-9 17:48:00 | 显示全部楼层

Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方

这种情况很明显是GPU绘制的瓶颈,你用Nvidia的NvPerfMon看看,一般的情况都是顶点太多了。

2

主题

5

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2009-9-10 09:02:00 | 显示全部楼层

Re: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些

Feiyu: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方面进行检查呢?

Vertex数据的命中率会影响效率
同样用index画一个三角形
index: 1,2,3  比  index 1, 100, 200 要快

请问如果是这种情况的话有哪些方式可以提高vertex数据的命中率呢?谢谢

2

主题

5

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2009-9-10 09:04:00 | 显示全部楼层

Re: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些

xingzhe2001: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方面进行检查呢?

这种情况很明显是GPU绘制的瓶颈,你用Nvidia的NvPerfMon看看,一般的情况都是顶点太多了。

2.5万面,1.4万顶点算不算太多呢?感觉一般的显卡也都应该没有太大问题啊。谢谢!

7

主题

87

帖子

109

积分

注册会员

Rank: 2

积分
109
QQ
发表于 2009-9-10 09:34:00 | 显示全部楼层

Re: Re: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从

rolandocdf: Re: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方面进行检查呢?

Vertex数据的命中率会影响效率
同样用index画一个三角形
index: 1,2,3  比  index 1, 100, 200 要快

请问如果是这种情况的话有哪些方式可以提高vertex数据的命中率呢?谢谢

ID3DXMesh::Optimize(),使用D3DXMESHOPT_VERTEXCACHE参数.如果没有使用ID3DXMesh,就要自己实现,把一个面引用的顶点尽量放在一起,重建索引.

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-9-10 09:53:00 | 显示全部楼层

Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方

这么点顶点肯定不会有问题的,一共画了多少次?shader是否过于复杂?执行效率有多低?太夸张的话该不会是创建的软设备吧....汗

2

主题

5

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2009-9-10 11:13:00 | 显示全部楼层

Re: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些

jk20012001: Re:如果发现DrawIndexedPrimitive执行效率很低,应该从哪些方面进行检查呢?

这么点顶点肯定不会有问题的,一共画了多少次?shader是否过于复杂?执行效率有多低?太夸张的话该不会是创建的软设备吧....汗

在很多渲染帧数降低到10fps以下的情况中,DIP的耗时会高于该帧中所有d3d函数平均执行时间的5-10倍以上。
创建的是硬设备,非软设备。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-6 07:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表