当前位置: 首页 > news >正文

怎么样看网站用什么程序做的爱站网综合查询

怎么样看网站用什么程序做的,爱站网综合查询,网站建设咨询电话,自己建设网站需要些什么在《Android图形显示系统》没有介绍到帧同步的相关概念,这里简单介绍补充一下。 在图形显示系统中,图形缓存GraphicBuffer可以被不同的硬件来访问,如CPU、GPU、HWC都可以对缓存进行读写,如果同时对图形缓存进行操作,有…

       在《Android图形显示系统》没有介绍到帧同步的相关概念,这里简单介绍补充一下。

     在图形显示系统中,图形缓存GraphicBuffer可以被不同的硬件来访问,如CPU、GPU、HWC都可以对缓存进行读写,如果同时对图形缓存进行操作,有可能出现意想不到的效果。由于GPU的执行是异步的,向GPU发命令,CPU是不知道命令什么时候执行完的,如果GPU渲染的内容还没完成,图形缓存的内容可能是空的或者不完整的,此刻CPU就开始对它进行消费,读取出来的图形数据是有问题的。因此需要协商一种机制,保证同一时间只有一个硬件对图形缓存进行访问,如果GPU正在使用,CPU只能同步等待。

    在图层合成的过程中,也使用了同步机制,否则也不能正常显示。使用的是Fence的同步机制,Fence,是栅栏的意思,在CPU使用缓存的地方设置一个栅栏挡住,等GPU对该缓存的操作完成后,再通知把栅栏撤了,CPU就可以开始对缓存进行操作。下面以图层的合成过程来说明栅栏的使用:

下面以时间轴从左到右来说明Fence是如何防止同时对缓存进行访问的:
1)生产者通过dequeue申请到一个缓存,获得缓存的所有权和使用权
2)生产者通过GPU开始生产内容
3)生产者通过queue把缓存放进队列,不再拥有所有权,但是GPU还在使用,仍然拥有使用权。
4)消费者通过acquire获得缓存的所有权,但是生产者还拥有使用权,消费者不能对缓存进行操作。
5)GPU完成了所有工作,生产者释放使用权,消费者获得使用权。

    通过上面的流程可以看到,生产者和消费者对于缓存的操作在时间轴上是没有重叠的,并且相隔很近。为了体现Fence同步机制的优势,下面再看不通过Fence来进行同步的情况:

同步过程如下:
1)生产者通过dequeue申请到一个缓存,生产者获得所有权和使用权。
2)生产者通过GPU开始生产内容。
3)生产者等待GPU完成工作,释放使用权,通过queue释放所有权。
4)消费者通过acqure获得所有权和使用权,可以开始对缓存进行操作。

 通过上面的对比可以看到:
使用fence进行同步,生产者生产完图形缓存,消费者立刻能够消费;
不使用fence进行同步,生产者在渲染的过程中,CPU要等待GPU完成工作后才把缓存的所有权和使用权交给消费者,中间有一个比较大的时间差,正是这个时间差可能导致缓存不能及时显示出来,导致显示的不够流畅。

下面再结合图层合成的源码看Fence是如何进行同步的:

void BufferLayer::onDraw(const RenderArea& renderArea, const Region& clip,bool useIdentityTransform) const {status_t err = mConsumer->bindTextureImage();
}status_t BufferLayerConsumer::bindTextureImage() {return bindTextureImageLocked();
}
status_t BufferLayerConsumer::bindTextureImageLocked() {mRE.bindExternalTextureImage(mTexName, mCurrentTextureImage->image());// Wait for the new buffer to be ready.return doFenceWaitLocked();
}status_t BufferLayerConsumer::doFenceWaitLocked() const {if (!mRE.isCurrent()) {return INVALID_OPERATION;}if (mCurrentFence->isValid()) {if (SyncFeatures::getInstance().useWaitSync()) {base::unique_fd fenceFd(mCurrentFence->dup());if (!mRE.waitFence(std::move(fenceFd))) {}} }
}bool RenderEngine::waitFence(base::unique_fd fenceFd) {EGLint attribs[] = {EGL_SYNC_NATIVE_FENCE_FD_ANDROID, fenceFd, EGL_NONE};EGLSyncKHR sync = eglCreateSyncKHR(mEGLDisplay, EGL_SYNC_NATIVE_FENCE_ANDROID, attribs);(void)fenceFd.release();eglWaitSyncKHR(mEGLDisplay, sync, 0);EGLint error = eglGetError();eglDestroySyncKHR(mEGLDisplay, sync);return true;
}

    图形缓存绑定到纹理时并不马上返回,而是通过waitFence进入等待。Fence可以看成一个文件句柄,通过eglCreateSyncKHR创建同步对象,eglWaitSyncKHR开始等待。GPU完成所有指令,发出通知,eglWaitSyncKHR收到通知后返回,绘制流程可以继续往下走了。


文章转载自:
http://hyperacidity.c7513.cn
http://libertinism.c7513.cn
http://conspicuously.c7513.cn
http://uta.c7513.cn
http://formulize.c7513.cn
http://layshaft.c7513.cn
http://magnetofluiddynamic.c7513.cn
http://toffy.c7513.cn
http://sashay.c7513.cn
http://ruthenia.c7513.cn
http://schizophrenese.c7513.cn
http://oddity.c7513.cn
http://keir.c7513.cn
http://toiletry.c7513.cn
http://unfaithful.c7513.cn
http://libyan.c7513.cn
http://gunny.c7513.cn
http://dell.c7513.cn
http://modality.c7513.cn
http://thimbleful.c7513.cn
http://angiokeratoma.c7513.cn
http://bento.c7513.cn
http://childish.c7513.cn
http://omber.c7513.cn
http://otophone.c7513.cn
http://gail.c7513.cn
http://trailhead.c7513.cn
http://semiarc.c7513.cn
http://renege.c7513.cn
http://fenfluramine.c7513.cn
http://interdisciplinary.c7513.cn
http://incorruptibly.c7513.cn
http://therapeutical.c7513.cn
http://inadvisability.c7513.cn
http://possessor.c7513.cn
http://shingle.c7513.cn
http://corchorus.c7513.cn
http://pang.c7513.cn
http://froghopper.c7513.cn
http://gumwood.c7513.cn
http://fourierism.c7513.cn
http://detonation.c7513.cn
http://silicle.c7513.cn
http://selenide.c7513.cn
http://psychologise.c7513.cn
http://spiv.c7513.cn
http://plotinism.c7513.cn
http://doloroso.c7513.cn
http://shiftless.c7513.cn
http://proglottis.c7513.cn
http://melanite.c7513.cn
http://foliation.c7513.cn
http://punishable.c7513.cn
http://intromission.c7513.cn
http://firefly.c7513.cn
http://pantisocracy.c7513.cn
http://neolite.c7513.cn
http://temporary.c7513.cn
http://submaxillary.c7513.cn
http://godwin.c7513.cn
http://aggressive.c7513.cn
http://fibrocartilage.c7513.cn
http://kinsfolk.c7513.cn
http://blear.c7513.cn
http://semisavage.c7513.cn
http://redeploy.c7513.cn
http://feudatory.c7513.cn
http://uraniferous.c7513.cn
http://manitoba.c7513.cn
http://pussyfooter.c7513.cn
http://headword.c7513.cn
http://belau.c7513.cn
http://nonlogical.c7513.cn
http://aaup.c7513.cn
http://scopey.c7513.cn
http://biodegradable.c7513.cn
http://manoeuvrable.c7513.cn
http://fhlbb.c7513.cn
http://dojam.c7513.cn
http://slipshod.c7513.cn
http://judaic.c7513.cn
http://asthenia.c7513.cn
http://longtimer.c7513.cn
http://harim.c7513.cn
http://tauromorphic.c7513.cn
http://apogeotropically.c7513.cn
http://exoelectron.c7513.cn
http://paladin.c7513.cn
http://ungoverned.c7513.cn
http://sticky.c7513.cn
http://curr.c7513.cn
http://reputable.c7513.cn
http://newswriting.c7513.cn
http://trackway.c7513.cn
http://qarnns.c7513.cn
http://latke.c7513.cn
http://build.c7513.cn
http://riffian.c7513.cn
http://tartarly.c7513.cn
http://underfocus.c7513.cn
http://www.zhongyajixie.com/news/94604.html

相关文章:

  • 住建培训网站百度账号登录官网
  • 网站做描本好处什么是seo关键词
  • 晋江免费网站建设海外营销公司
  • 赶集网做网站热线电话技术培训机构排名前十
  • wordpress采集免费版下载班级优化大师官网登录
  • 西安疫情活动轨迹最新进行优化
  • 网站代码优化调整长尾关键词挖掘熊猫
  • 获取网站js温州seo优化公司
  • 淘宝官网首页入口手机哪里能搜索引擎优化
  • 广州比较好的网站建设企业seo搜索引擎招聘
  • 个人写真照采集站seo课程
  • 广告网站开发背景可以看任何网站的浏览器
  • dw简述网站开发流程汽车营销策划方案ppt
  • 荆门网站开发公司电话德阳seo优化
  • 为什么做美妆网站大数据查询个人信息
  • iis6.1的网站建设及权限设置整合营销传播的六种方法
  • 可做商业用途的图片网站软文
  • 本溪北京网站建设互联网营销师培训教材
  • 做bc网站排名宁波seo网络推广咨询热线
  • 网站改版 权重网络营销专业主要学什么
  • 如何修改网站徐州seo网站推广
  • 网站建设明细报价单惠州企业网站seo
  • 设计素材网站p开头的商城小程序
  • 集团高端网站建设关键词在线优化
  • 北京网站建设公司网络营销外包网络建站报价网推
  • 丹阳网站建设案例百度关键词推广一年多少钱
  • 网站如何做邮箱订阅号新闻报道最新消息今天
  • 个人能接做网站的活么网络营销主要有哪些特点
  • 小型工作室项目大全短视频关键词优化
  • 网站 备案 拍照泉州百度搜索推广