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

为什么织梦做的网站容易被攻击马鞍山专业网站制作

为什么织梦做的网站容易被攻击,马鞍山专业网站制作,山西省诚信建设网站,网站霸屏怎么做在《Android图形显示系统》没有介绍到帧同步的相关概念#xff0c;这里简单介绍补充一下。 在图形显示系统中#xff0c;图形缓存GraphicBuffer可以被不同的硬件来访问#xff0c;如CPU、GPU、HWC都可以对缓存进行读写#xff0c;如果同时对图形缓存进行操作#xff0c;有…       在《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获得缓存的所有权但是生产者还拥有使用权消费者不能对缓存进行操作。 5GPU完成了所有工作生产者释放使用权消费者获得使用权。 通过上面的流程可以看到生产者和消费者对于缓存的操作在时间轴上是没有重叠的并且相隔很近。为了体现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://www.w-s-a.com/news/738527/

相关文章:

  • 旅游网站建设技术解决方案wordpress主题安装后找不到
  • 网站图片文字排版错误管理系统界面设计
  • 网站建设 台州广州惠科互联网技术有限公司
  • 网站页面尺寸大小四川鸿业建设集团网站
  • 做女朋友的网站局网站建设方案word
  • 做阿里国际网站会有成效吗科技网站有哪些
  • 高端公司网站建设北京两学一做网站
  • 黄埔网站建设设计wordpress 文件夹改名
  • 怎么什么软件可以吧做网站最火的二十个电商app
  • wordpress theme sage网站seo优化加推广
  • 建设一个大型电影网站公司网站建设工作总结
  • 传奇网站一般怎么做的宇泽佛山网站建设
  • google网站入口电商运营十大基础知识
  • 建设公司网站的细节中国建设网网站
  • 重庆美邦建网站宝安网页设计
  • 建网站的地址十堰做网站
  • 怎么评判一个网站做的好与坏专做情侣装网站
  • 网站管理助手v3历史上的今天 网站如何做
  • 网站建设与管理的就业方向网站开发前端模板
  • 对网站建设的维护深圳网络推广推荐
  • wordpress多站共享授权码wordpress数据库缓存插件
  • 建一个购物网站多少钱上海商标注册
  • 琪觅公司网站开发面点培训学校哪里有
  • 北京建设工程信息网站江苏企业网站建设
  • php电子商务网站建设wordpress新建的页面如何加xml
  • 去百度建网站外贸业务推广
  • 百度seo 站长工具网络营销课程个人总结3000字
  • 设计品牌网站wordpress商城 中文站
  • 公司网站要备案吗百度售后电话人工服务
  • 北京移动网站建设制作一个购物网站