» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[模拟相关] 开始做桌面型mame HTPC 求欣赏

引用:
原帖由 昵称无效 于 2012-2-13 08:10 发表
posted by wap, platform: iPhone

opengl的三重缓冲不会造成任何延迟
d3d的三重缓冲是先天缺陷,可以用d3doverdrive改善,这个程序涉及到d3d9.dll这样的底层文件,会和另一些如enb、fxaa之类的外挂冲突
lz要搞这些 ...
楼主说的是渲染贞和逻辑贞之间的延迟,所以TB>DB>NB,无论OGL还是DX都会。
你说的是垂直同步开和不开的情况下使用TB的情况,渲染迟滞造成未跑到逻辑贞,进而造成输入LAG或者略过。


TOP

引用:
原帖由 昵称无效 于 2012-2-13 15:04 发表
posted by wap, platform: iPhone

逻辑帧和视频渲染帧不是互相独立的关系吗,怎么会有“渲染迟滞造成未跑到逻辑贞”?
只要性能足够,跑3重缓冲不会带来任何输入和显示上的延迟;即使性能不够,显示上也只会出现跳 ...
1.想象一下这个情况:3个Buffer,Buffer0,Buffer1,Buffer2,你的逻辑贞在接受手柄输入,但是这一贞对应的画面更新是渲染在Buffer2上的,而显卡将你的Buffer0或者1置到了前台导致显示和逻辑并不在同一贞,也就是画面和你的输入响应并不在同一贞。
2.你说的即使性能不够,显示上也只会跳帧,那其实是因为没有基于贞渲染,而是基于时间渲染了,逻辑贞超时。
3.渲染贞导致逻辑贞迟滞,是指逻辑贞和渲染贞在同一个线程顺序执行,并且显示硬件(显卡)的驱动开了垂直同步,并且机器有些慢,导致一个逻辑贞超时,影响到了渲染贞的更新,然后又因为渲染贞完成时恰好需要等待VSync信号,而不能完成整个画面的更新,进而导致短暂地走不到下一个逻辑贞的情况,如果在这个时间内作了输入就被忽略了。逻辑贞如果和渲染贞如果不跑在一个线程,那么理想情况下是不会有问题,但是因为手柄之类的是属于I/O设备,如果驱动写得有问题或者硬件实现有问题,那么在非多逻辑CPU的情况下(多核/超线程之类的)有可能因为游戏程序占用CPU过高,导致I/O阻塞,进而造成输入延迟或丢失。

情况3在16位机时代之前不会发生。。。。。那时候都是采用硬件中断式的画面更新,可以理解为是一个单缓冲,强制画面更新并且不允许逻辑贞超时的硬件(逻辑贞超时了不会给你下一贞多占点时间运算的机会,因为下一贞又是重画,而且CPU时间永远是这点)。



TOP

引用:
原帖由 yangjuniori 于 2012-2-26 03:27 发表
为什么家用游戏机就能做的如此同步呢
15楼说了

"那时候都是采用硬件中断式的画面更新"
没有贞缓冲,由VDP(也就是显卡了)根据VRAM和VDP寄存器中的命令和状态,直接输出图像,可以精确到行输出。


说白了,那时候技术层次比较低,不过2D图形加速足够了


TOP

发新话题
     
官方公众号及微博