游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4178|回复: 13

终结软2D问题的测试器

[复制链接]

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2004-12-9 23:00:00 | 显示全部楼层 |阅读模式

性能测试器

效果测试器

[em21] [em21] [em21]
[em21] [em21] [em21]

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-9 23:01:00 | 显示全部楼层

Re:终结软2D问题的测试器

支持386/MMX/SSE2---------完全软计算

支持BPP15/BPP16/BPP24/BPP32

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-9 23:03:00 | 显示全部楼层

Re:终结软2D问题的测试器

里面的性能数据,,可供现在还在玩Soft2D的兄弟参考参考

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-9 23:06:00 | 显示全部楼层

Re:终结软2D问题的测试器

对了,,用386时,,请降低测试次数

回读VRAM时,,将测试次数设为5以下,,她们很慢的

这些操作都在DDraw7的表面里进行

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-10 00:05:00 | 显示全部楼层

Re:终结软2D问题的测试器

在DDraw7的表面里SSE2大部分都输MMX

不过用16BA内存时SSE2确实比MMX有优势

还有SSE的无时间传输指令可以提高一些Copy性能

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-12-10 14:37:00 | 显示全部楼层

Re:终结软2D问题的测试器

?]有Code?
而且MMX可以加速算灰?
它?]做?

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-10 17:42:00 | 显示全部楼层

Re:终结软2D问题的测试器

这是我自己做的

是我的游戏库的一部分,,呵呵

MMX则么做灰度,,好像要浮点计算的

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-12-10 18:41:00 | 显示全部楼层

Re:终结软2D问题的测试器

MMX做灰?不用浮??算啦
又不用做那??
看不出?聿町?啦

(R *76 + G*150 + B*29)>>8
原理大概??
?在你可以?槟愕?MX加上灰?秀?D了

--

你的EffectTest2D的AlphaChannel
???出好??l?M向的黑?
是故意的??

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
 楼主| 发表于 2004-12-10 18:52:00 | 显示全部楼层

Re:终结软2D问题的测试器

可惜现在我一头扎入3D里了,,可能是出不来了

2D的也懒得去做了,,反正Grey不常用:)

不过p1ayer兄的这种对技术的执著还是要多多学习啊

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-12-10 19:04:00 | 显示全部楼层

Re:终结软2D问题的测试器


?榱?MX一次算4??像?, ?加上水平?像?垂直?像的?理
所以我把MMX的部份??成

if (水平正像)
{
   if (??度??的倍??
   {
       //MMX程式?1 (???只要??1份)
   }
   else
   {
       //MMX程式?2(???要??2份, 包含零歧?理)
   }
}
else
{
     //MMX程式?3(???要??2份, 包含零歧?理)
}

所以同一??MMX的?算
至少要??5份
??硬还苄?D??度是否??的倍?? 也不管是否?樗?界R像
通通都用MMX算

因?槲沂前?碓吹?D?^分?橛?]有Alpha的
以及如果?]有Alpha的?是否有用ColorKey透空

再加上一?始就?Q定只?出成HiColor?面
所以
?成?碓吹?D一?始就用GDI+?????成HiColor16bits或ARGB 32bits??煞N
因此?我坏囊环N秀?D功能必?要用MMX??15份
(5???理不透空的HiColor, 5???理透空的hiColor, 5???理ARGB?HiColor)

目前我只??了
Blt
BltAlpha (指定Alpha值 0~255)
BltAdd (加算)
BltSub (?p算)
BltHarf (半透明, 相?於 Alpha值??28的BltAlpha....但比?快)
BltGlyph (灰?)

本?硐胗?SE2????一次?理8??像?的
不?以SSE2去算8??ARGB像?的方法
我??]想出?
所以SSE2的部份都先?R置(相?於再把 MMX的部份全部再??一份)

目前只差在D3D9?出?淼母≡?D上
??]解?Q
?不知道?不?把3D都先?R置
先用GDI去把?放?旋?的部份?上

我原本???o?放??o旋??理,??想是

if (IsSSE2)
{
   //SSE2程式
} else if (IsMMX)
{
  //MMX2程式
}
else
{
   //一般C++的Code
}

??映淌骄涂梢宰?右?使用者的CPU能支援到哪一?程度
自?邮褂幂^快的程式?了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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