vulkan

Manually transition swap chain image layouts

梦想与她 提交于 2020-12-15 01:50:22
问题 Say I have a render pass with a single color attachment corresponding to the images of a swap chain. Usually, I would set the initialLayout and finalLayout fields of the VkAttachmentDescription to VK_IMAGE_LAYOUT_UNDEFINED and VK_IMAGE_LAYOUT_PRESENT_SRC_KHR , respectively. Now I would like to set the initialLayout to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR instead and perform the transition of a swap chain image to this state manually before the render pass begins. I want to do this using memory

MNN默认优化

前提是你 提交于 2020-10-27 11:14:08
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。 整体特点 轻量性 • 针对端侧设备特点深度定制和裁剪,无任何依赖,可以方便地部署到移动设备和各种嵌入式设备中。 • iOS平台:armv7+arm64静态库大小5MB左右,链接生成可执行文件增加大小620KB左右,metallib文件600KB左右。 • Android平台:so大小500KB左右,OpenCL库300KB左右,Vulkan库300KB左右。 通用性 • 支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络。 • 支持 149 个TensorflowOp、47 个CaffeOp、74 个 ONNX Op;各计算设备支持的MNN Op数:CPU 110个,Metal 55个,OpenCL 29个,Vulkan 31个。 • 支持iOS 8.0+、Android 4.3+和具有POSIX接口的嵌入式设备。 • 支持异构设备混合计算,目前支持CPU和GPU,可以动态导入GPU Op插件,替代CPU Op的实现。 高性能 • 不依赖任何第三方计算库

[译]Vulkan教程(15)图形管道基础之RenderPass

烂漫一生 提交于 2020-10-25 11:29:00
[译]Vulkan教程(15)图形管道基础之RenderPass Render passes Setup 设置 Before we can finish creating the pipeline, we need to tell Vulkan about the framebuffer attachments that will be used while rendering. We need to specify how many color and depth buffers there will be, how many samples to use for each of them and how their contents should be handled throughout the rendering operations. All of this information is wrapped in a render pass object, for which we'll create a new createRenderPass function. Call this function from initVulkan before createGraphicsPipeline . 在创建管道收工前,我们需要告诉Vulkan,渲染时要使用哪些帧缓存附件

Flutter初始化流程

拈花ヽ惹草 提交于 2020-10-22 10:32:31
1. 引言 最近在做性能优化的时候发现,在混合栈开发中,第一次启动Flutter页面的耗时总会是第二次启动Flutter页面耗时的两倍左右,这样给人感觉很不好。分析发现第一次启动Flutter页面会做一些初始化工作,借此,我梳理了下Flutter的初始化流程。 2. Flutter初始化时序 Flutter初始化主要分四部分,FlutterMain初始化、FlutterNativeView初始化、FlutterView初始化和Flutter Bundle初始化。 我们先看下Flutter初始化的时序图,来整体把握下Flutter初始化的一般流程: Flutter初始化时序 3. 具体分析 3.1 FlutterMain初始化 这部分初始化工作是由Application.onCreate方法中调用开始的,在Application创建的时候就会初始化完成,不会影响Flutter页面的第一次启动,所以这里只是做一个简单分析。 从FlutterMain.startInitialization方法代码中可以轻易看出来,初始化主要分四部分。 前面三部分比较类似,分别是初始化配置信息、初始化AOT编译和初始化资源,最后一部分则是加载Flutter的Native环境。 这部分感兴趣的同学可以看下FlutterMain.java源码,逻辑还是比较清晰的。 public static void