Linux Graphics 周刊(第 5 期)-淘姐妹-

{site_name}

{site_name}

🌜 搜索

Linux Graphics 周刊(第 5 期)

▥ 𝄐 0
<br><blockquote> <p><strong>导读&#xff1a;</strong></p> <ul><li>Android11 正式发布</li><li>drm/dev: 对 【【微信】】() 说再见</li><li>drm/gem: 删除 drm_gem_vram_kmap() 接口</li><li>binder: 新增 BINDER_FREEZE ioctl</li><li>fastboot: 新增 modules 分区</li><li>Mesa-dev&#xff1a;GLX/WSI 合入新 feature&#xff0c;改善显示卡顿问题</li><li>RADV: 新增 【【微信】】bug 选项</li><li>Zink: 性能大幅提升</li><li>【【微信】】: 【【微信】】.2.153 发布&#xff0c;master 分支已切换到 main 分支</li><li>xf86-【【微信】】&#xff1a;正式合入对 Adaptive-Sync/VRR 的支持</li><li>Hikari Wayland Compositor 2.2.0 发布</li></ul> </blockquote> <p>每个 dma 设备都有自己的寻址能力限制&#xff0c;如果分配出来的内存超过了 dma 硬件的寻址能力&#xff0c;那就会出现异常。目前的 drm_prime_pages_to_sg() 中就存在这样的漏洞&#xff0c;分配 sg_table 时没检查当前 dma 硬件的寻址能力范围&#xff0c;因而可能导致分配出的内存空间超出 dma 的寻址能力。该问题已经在 【【微信】】 复现&#xff0c;因而 Gerd Hoffmann (RedHat) 提了如下 patch 来修复该 bug。</p> <p>详情&#xff1a;[PATCH v4 1/1] drm: 【【微信】】er list size</p> <p>【【微信】】 提了个 patch&#xff0c;将 drm_atomic_helper_calc_timestamping_constants() 函数彻底从 drm_atomic_helper_update_legacy_modeset_state() 中解救出来&#xff0c;实现了 timestamps 和 legacy modeset 之间的解耦。</p> <p>详情&#xff1a;[PATCH 1/3] drm/atomic-helper: Extract drm_atomic_helper_calc_timestamping_constants()</p> <p>Daniel 【【微信】】&#xff08;drm-misc maintianer, Intel&#xff09;提交的如下 patch merge 之后&#xff0c;我们在 DRM 设备驱动中将再也没有机会使用 【【微信】】() 来做初始化了&#xff0c;取而代之的是 de【【微信】】()。使用该函数将带来极大的方便&#xff0c;我们不再需要做更多的容错处理&#xff0c;也不需要在初始化失败时调用 drm_dev_put()&#xff0c;devm_* 接口本身就能帮我们处理好资源释放的问题。</p> <p>详情&#xff1a;[PATCH 09/24] drm/dev: Remove 【【微信】】</p> <p>对于 GEM VRAM 接口而言&#xff0c;drm_gem_【【微信】】() 和 drm_gem_vram_kmap() 的功能重复了&#xff0c;他们都用于将 gem object 映射到 kernel space 的地址空间&#xff0c;而 drm_gem_【【微信】】() 相比 drm_gem_vram_kmap() 调用参数更简洁&#xff0c;且使用率更高。因此 Thomas Zimmermann (SUSE) 索性直接删除了 vram 中的 drm_gem_vram_kmap() 和 drm_gem_【【微信】】() 函数。</p> <p>详情&#xff1a;[PATCH] drm/【【微信】】: Use drm_gem_【【微信】】() interfaces</p> <p>上周三 Google Android11 正式发布&#xff0c;发布当天 Google 便将 AndroidR 的代码同步推送到 AOSP 主分支上&#xff0c;开发者们可以立即下载体验该代码所带来的新功能。AndroidR 主要聚焦在三个方面&#xff1a;以人为本、灵活控制和隐私安全。下面我们就通过代码一起来了解一下&#xff0c;AndroidR 在 Graphic 模块上都新增了哪些 feature&#xff08;一般芯片厂商和手机厂商在半年前就已经拿到了这部分的代码&#xff09;&#xff1a;</p> <h4>Gralloc 4.0</h4> <p>IMapper 新增接口:</p> <ul><li>get()</li><li>set()</li><li>getFromBufferDescriptorInfo()</li><li>getReser【【微信】】()</li></ul> <p>借助于 IMapper 的 get() 和 set() 接口&#xff0c;我们可以获取/设置任何数据类型的参数&#xff0c;这大大增强了 Gralloc 底层实现的灵活性与可扩展性。通过对 get() 接口的封装&#xff0c;GraphicBufferMapper 可以实现诸如 getWidth()、getHeight()、getPixelFormatFourCC()、getBufferId() 等诸多常用 buffer 属性操作接口&#xff0c;统一了 gralloc 的操作接口。</p> <p>IAllocator 则没有新的变化。</p> <h4>Composer 2.4</h4> <p>Callbacks 新增:</p> <ul><li>HWC2_PFN_VSYNC_2_4</li><li>HWC2_PFN_VSYNC_PERIOD_TIMING_CHANGED</li><li>HWC2_PFN_SEAMLESS_POSSIBLE</li></ul> <p>De【【微信】】 新增接口:</p> <ul><li>HWC2_PFN_GET_DISPLAY_CONNECTION_TYPE</li><li>HWC2_PFN_GET_DISPLAY_VSYNC_PERIOD</li><li>HWC2_PFN_SET_ACTIVE_CONFIG_WITH_CONSTRAINTS</li><li>HWC2_PFN_SET_AUTO_LOW_LATENCY_MODE</li><li>HWC2_PFN_GET_SUPPORTED_CONTENT_TYPES</li><li>HWC2_PFN_SET_CONTENT_TYPE</li><li>HWC2_PFN_GET_CLIENT_TARGET_PROPERTY</li><li>HWC2_PFN_SET_LAYER_GENERIC_METADATA</li><li>HWC2_PFN_GET_LAYER_GENERIC_METADATA_KEY</li></ul> <p>通过以上新增接口的名字&#xff0c;我们大致可以看出这些接口都是为了支持 VRR (【【微信】】&#xff0c;可变刷新率)以及高帧率显示设备而开放的接口。</p> <p>HWC 2.4 接口定义&#xff1a; platform/hardware/libhardware</p> <p>gralloc4.0 & composer-2.4 相应的 HIDL 接口定义&#xff1a; platform/hardware/interfaces</p> <h4>Nati【【微信】】</h4> <ul><li>删除了 libagl libagl 是 Android 早期使用 CPU 实现的一套纯软件 OpenGL 函数库&#xff0c;由于没有硬件加速功能&#xff0c;因而运行效率极低&#xff0c;在 AndroidR 中该目录已被彻底移除。</li><li>新增 libnati【【微信】】.so 为 Choreographer 添加 【【微信】】 层&#xff0c;并将 libhwui 下的 surface texture 移到 nati【【微信】】 目录下&#xff0c;统一生成 libnati【【微信】】.so。</li><li>删除了 bufferhub</li><li>surfaceflinger 新增大量修改</li></ul> <p>具体请参考&#xff1a; platform/frameworks/【【微信】】</p> <p>上周 【【微信】】 合入了一笔 patch&#xff0c;在 IPCThreadState 类中新增 freeze() 方法&#xff0c;用于适配底层 kernel 新增的 BINDER_FREEZE ioctl。该 ioctl 主要用于冻结某个指定的 binder 进程&#xff0c;一旦进程被 freeze&#xff0c;所有向该进程发起的 binder transaction 都会直接返回一个错误码。冻结时会指定一个超时参数&#xff0c;当超时时间到后被冻结的进程就会自动解冻&#xff0c;然后就可以继续处理新的 binder 请求。当然调用者也可以立即解冻某个已被冻结的 binder 进程&#xff0c;通过 enable 参数来区分。至于该 ioctl 的使用场景及作用&#xff0c;目前本人还不太清楚。</p> <p>详情&#xff1a;aosp/【【微信】】[master]: binder: adopt BINDER_FREEZE api</p> <p>fastboot 分区列表中新增了个 modules 分区&#xff0c;对应的 image 文件为 modules.img&#xff0c;分区挂载路径为 /modules&#xff0c;目前还不太清楚该分区具体用来存放哪些模块&#xff08;kernel modules&#xff1f;是否和 GKI 有关&#xff1f;&#xff09;&#xff0c;但分区类型被标记为 ImageType::Normal&#xff0c;而不是 ImageType::BootCritical&#xff0c;说明并不是一个必须的分区&#xff0c;具体的作用还有待进一步确认。</p> <p>详情&#xff1a;aosp/core[master]: fastboot: add mainline partition</p> <p>上周四&#xff0c;RedHat 工程师 Adam Jackson 向 mesa-20.3 开发分支合入了6笔 patch&#xff0c;为 GLX/WSI 新增 GLX_EXT_swap_control、GLX_EXT_swap_control_tear 和 【【微信】】_RELAXED_KHR 接口&#xff0c;用于改善显示抖动的问题。</p> <ul><li>GLX_EXT_swap_control&#xff1a;用于实现 glXSwapInter【【微信】】() 函数&#xff0c;用来设置 swap buffer 的间隔时间&#xff0c;间隔时间以 vsync 周期为单位&#xff0c;主要用于渲染和显示同步。例如 glXSwapInter【【微信】】(2) 代表 glutSwapBuffers() 需要等待2个 vsync 后才返回。</li><li>GLX_EXT_swap_control_tear&#xff1a;和 GLX_EXT_swap_control 类似&#xff0c;但唯一不同是 glXSwapInter【【微信】】() 设置的时间间隔可以是负数&#xff0c;用来表示如果当前发起的 swap 操作已经滞后了一个 vsync&#xff0c;那么就不要等待原来设置的时间间隔了&#xff0c;直接将 buffer swap 出去。这样的操作可以大大改善游戏的卡顿问题&#xff0c;但副作用也很明显&#xff0c;就像它的名字一样&#xff0c;会带来撕裂的问题。</li><li>【【微信】】_RELAXED_KHR&#xff1a;是 GLX_EXT_swap_control_tear 的 vulkan 版本&#xff0c;功能和 GLX_EXT_swap_control_tear 类似。</li></ul> <p>更多详细内容&#xff0c;请查看如下提交&#xff1a;</p> <ol><li>wsi/x11: Hook up 【【微信】】_RELAXED_KHR</li><li>Implement GLX_EXT_swap_control and GLX_EXT_swap_control_tear</li><li>[Mesa-dev] 【【微信】】: new GLX/WSI presentation features in git</li></ol> <p>在 mesa-20.3 开发分支中&#xff0c;Bas Nieuwenhuizen 在 DriConfig 中新增了 【【微信】】bug 选项&#xff0c;用于削减应用程序可见的 VRAM 显存大小&#xff0c;主要用于调试目的&#xff0c;目前仅 RADV 驱动中支持该功能。</p> <p>详情&#xff1a;radv,【【微信】】: Add driconf VRAM override</p> <p>Zink 是 mesa 中基于 【【微信】】 实现的 OpenGL 驱动&#xff0c;本质上是一个 API 转换层&#xff0c;可以运行在任意真实的 Vulkan 硬件驱动之上。创建 Zink 的主要目的是为了方便那些还没有能力迁移到 【【微信】】 的应用程序或游戏厂商&#xff0c;帮助他们暂时从 OpenGL 过渡到 Vulkan&#xff0c;同时也有助于 Vulkan 生态的建立。</p> <p>Mike Blumenkrantz&#xff0c;一直致力于 Zink 的开发工作&#xff0c;近期在他的博客中宣布 Zink 的性能有了重大突破&#xff0c;甚至在某些场景下还优于本地真实 OpenGL 驱动的性能&#xff01;他做了一个小规模的 benchmark 测试&#xff0c;取相同的 Mesa 节点&#xff0c;让 Zink 运行在 Intel “ANV” Vulkan 驱动之上&#xff0c;与同节点的 Intel “Iris” Gallium3D OpenGL 硬件驱动进行对比测试&#xff0c;结果却惊人的发现在某些 case 中 Zink 的性能大大超过了 Iris&#xff0c;这是非常令人振奋的消息&#xff01;要知道&#xff0c;去年 Zink 的性能简直不堪入目。该测试总共 2500 项&#xff0c;而 Zink 通过率已达到了 91%&#xff0c;这已经是相当不容易的了。当然&#xff0c;在其它某些 case 中&#xff0c;Zink 的性能仍然落后于本地 OpenGL 驱动。</p> <p>详情&#xff1a;Zink OpenGL-O【【微信】】mance Is Turning Out Better Than Expected</p> <p>上周一 【【微信】】.2.153 发布&#xff0c;没有新增 Extension&#xff0c;主要完善了 【【微信】】、【【微信】】_address 等接口的开发文档。不过从该版本开始&#xff0c;【【微信】】 仓库的 master 分支正式切换到 main 分支&#xff0c;后续所有的修改都在 main 分支上进行&#xff0c;而 master 分支则被冻结&#xff0c;不再接受新的提交。</p> <p>详情&#xff1a;【【微信】】.2.153 Released</p> <p>名词解释&#xff1a;</p> <ul><li>VRR&#xff1a;【【微信】】&#xff0c;可变帧率&#xff0c;即 Display 硬件的 Vsync 周期是动态可变的&#xff0c;一般普遍认为可变帧率的范围是 9~240Hz。</li><li>Adaptive Sync: VESA DisplayPort 1.2a 引入的一个行业标准&#xff0c;用于定义 DisplayPort 与具有 VRR 能力的显示器之间的传输协议。通过 Adaptive Sync 技术&#xff0c;GPU 在渲染完一帧图像后&#xff0c;Display 就可以马上进行显示&#xff0c;而无需等到固定的 Vsync 边沿到来时才触发显示。</li><li>FreeSync&#xff1a;AMD 厂商基于 Adaptive Sync 技术实现的一套软件/硬件整体解决方案&#xff0c;它是一套开放式的标准&#xff0c;免授权费&#xff0c;因此面板厂商可以直接使用该技术而无需支付额外的授权费。FreeSync 不仅支持 DisplayPort 接口&#xff0c;还支持 HDMI 接口。另外&#xff0c;支持 FreeSync 的显示器必须搭配 AMD GPU 才能使用 VRR 功能。</li><li>【【微信】】: NVIDIA 厂商实现的一套类似 Adaptive Sync 的技术&#xff0c;它是一套完全封闭的软硬件整体解决方案&#xff0c;从面板制作到认证出货&#xff0c;全程由 NVIDIA 跟踪指导&#xff0c;且需要向面板厂商收取高昂的授权费。同样的&#xff0c;支持 【【微信】】 的显示器必须搭载 NVIDIA 的 GPU 才能正常使用 VRR 功能。</li></ul> <p>之前曾在我的星球中报道过关于 Intel 添加 VRR 支持的消息&#xff1a;《Intel i915 DRM 驱动将添加对 VRR 的支持》、《Xorg 将添加 Adaptive-Sync/VRR 的支持》&#xff0c;而就在上周二&#xff0c;xorg-server 终于合入了对 Adaptive-Sync/VRR 的支持。</p> <p>Adaptive-Sync/VRR 最早由 AMD 的 【【微信】】 驱动支持&#xff0c;而此次合入的 【【微信】】 其实就是从 amdgpu 那 porting 过来的。不同于 AMD&#xff0c;Intel 开源 X 驱动 xf86-【【微信】】 早已被废弃&#xff0c;多年来 Intel 的开源 X 驱动都是直接提交到公共的 xf86-【【微信】】 驱动中的。也就是说&#xff0c;此 【【微信】】 合入之后&#xff0c;不但可以支持 Intel 显卡的 VRR 功能&#xff0c;还可以支持 AMD 显卡的 Adaptive-Sync/FreeSync 功能。</p> <p>不过需要注意的是&#xff0c;并不是在你的电脑上安装了 xf86-【【微信】】 驱动就一定支持 VRR 功能&#xff0c;VRR 的支持需要整个系统都支持才可以正常使用&#xff0c;这涉及到 DRM kernel 驱动、Xorg Server、【【微信】】 驱动的完整支持&#xff0c;任何一个模块的不兼容都将导致无法正常使用 VRR 功能。更令人沮丧的是&#xff0c;当前合入 VRR 的 patch 是在 【【微信】】.21 版本中&#xff0c;此版本已经开发了两年半时间&#xff0c;至今仍然没有 release 正式版本出来&#xff0c;这可能和目前 xorg 社区都把主要精力放在 Wayland 开发上有关。换句话说&#xff0c;在 xorg 正式 release 1.21 版本之前&#xff0c;我们仍然无法享用该 patch 所带来的 VRR 功能。</p> <p>关于 Adaptive-Sync/VRR 的详细介绍&#xff0c;可以参考本人翻译的《VES【【微信】】 / AMD FreeSync / VRR 白皮书》</p> <p>信息来源&#xff1a;</p> <ol><li>Intel Lands Adaptive-Sync/VRR Into Modesetting X.Org Driver</li><li>modesetting: Lay the foundation for enabling VRR</li><li>modesetting: Allow users to opt-in VRR support</li></ol> <p>Hikari 是一款支持 X11 和 Wayland 协议的 Window Manager / Compositor&#xff0c;类似于 GNOME 桌面&#xff0c;不同于其它桌面系统&#xff0c;Hikari 主要运行在 FreeBSD 系统上。当然&#xff0c;它的 Wayland Compositor 也可以运行在 Linux 系统上。它的 Wayland 基于 wlroots 库实现&#xff0c;使用 darcs 进行版本控制。</p> <p>上周二 Hikari 社区发布了 2.2.0 版本&#xff0c;该版本的一个重大更新是添加了对 【【微信】】 的支持&#xff0c;可以作为 Wayland 【【微信】】 进行远程连接访问图形桌面。</p> <p>详情&#xff1a;hikari 2.2.0 is out</p> <br><br><h1 style="font-size: 38px;color: #4d4f53;">全景直播软件有哪些 vr全景直播软件</h1>全景直播软件有哪些,全景直播软件哪个好,360°全景直播,全景直播是什么意思<br> <p>这家软件站网络电视分类下的<strong>【【淘密令】】(3D立体全景直播软件) v1.1.1.3官方版</strong>,文件大小为474.3M,适用系统为WinAll,以下为介绍或使用方法。</p> <p>【【淘密令】】是一款专业的3D立体全景直播软件,可以通过SDI或者RTMP即可一键推送至各大主流媒体平台进行直播,支持实时预览拼接、颜色校正和H.264/ H.265编码等功能,和Obsidian 3D全景相机配合使用可以实时捕捉360°3D/2D画面。<p>使用方法<p>一、连接<p>1、 路由器连接相机和电脑<p>准备好POE电源,足够长的千兆网线,Obsidian相机,千兆路由器,以及满足直播配置要求的电脑(至少有i7-5960x的CPU, N【【微信】】的显卡及8 GB的内存),流畅的网络,即可开始连接。<p>相机和电脑需处于同一个局域网内,并用千兆网线连接。<p>连接方式如图示,连接不分先后顺序:<p>2、 DHCP直接连接<p>可通过网线直接连接电脑与相机,操作如下:<p>1) 在【首选项】中设置DHCP服务,选择与相机直连的网卡,点击保存;<p>2) 等待15s,再次刷新列表,即可与相机进行连接;<p>二、直播设置<p>1、连接相机<p>打开相机和【【淘密令】】,点击左上角相机选择框,连接相机和电脑。<p>2、预览模式设置<p>镜头总览<p>单镜头预览<p>拼接预览<p>拼接预览包括全景2D及3D。可以进行3D模式的Top&Bottom双目预览;也支持分别预览3D全景的左右眼,“L”表示左眼,“R”表示右眼。<p>3、 参数设置<p>右边面板可以调整直播的各项参数<p>(1)拼接<p>支持设置拼接参数。可选项如下:<p>1) 画面反转:画面视图水平翻转<p>2) 拼接质量:正常及应用了实时光流的高质量<p>3) 2D/3D:默认为360° 2D模式,也支持3D(左眼,右眼,top&bottom视角)<p>4) 周边距离:调整拼接效果最佳的相对于相机的距离<p>5) 自动曝光补偿:每隔一段时间,画面各镜头自动计算曝光量并进行曝光补偿<p>6)主视角调整:平移范围:-180°至90°;倾斜范围-90°至90°;滚动范围-180°至180°。<p>(2)调色<p>可对拼接结果进行总体调色,参数包括:“色温”、“色彩”;“曝光”、“对比度”、“高光”、“阴影”、“黑色色阶”、“白色色阶”;“自然饱和度”、“饱和度”。并支持导入“.cube”和“.look”的配色方案。<p>在单镜头预览模式下,可设置该镜头参数同步以及调整镜头白平衡与曝光参数,并显示单镜头RGB曲线。<p>(3)增强<p>为直播画面提供降噪功能,并可自行调节降噪强度。<p>(4)曲线<p>支持调整RGB 曲线调色功能,默认为RGB(亮暗的调整),也可以红、绿、蓝通道单独调整。<p>(5)贴图<p>支持顶部&底部贴图功能,并可以自由调整贴图的透明度。图片格式支持”.jpg”和”.png”。<p>4、推流设置<p>(1)分辨率、编码方式、码率<p>分辨率目前最高支持3840*3840;编码方式目前支持h264/h265。<p>在网速允许的条件下,可以调整至更高的直播分辨率和码率。码率建议设置在带宽上行速度的80%以内。<p>(2) 推流方式<p>1)LAN<p>将直播流推到本机的流媒体服务,局域网内的其他设备可通过本机生成的RTMP地址获取直播流;<p>选择网络设备可以查看在该设备所连网段中,其他设备获取该直播流的RTMP地址;<p>网络设备选项更改并不会对直播有影响;<p>2)RTMP<p>填写“服务器地址”以及“直播密钥”后,即可进行推流直播,“直播密钥”为选填项;<p>3)SDI<p>通过SDI采集卡输出非编码直播流;<p>在【SDI输出硬件列表】中选择用于推流的SDI采集卡,待开始直播后,直播流将通过选中的SDI采集卡进行输出;<p>(3)边直播边录制<p>在连接相机成功后,即可进行录制,录制的视频最高可进行3840*3840@30fps的拼接。<p>三、观看直播<p>观看直播期间,下行网速应至少大于20Mb/s(至少达到直播所选码率的两倍),否则客户端画面出现卡顿或丢失,直到网络速度满足要求。<p>1、局域网内观看<p>同一网段内的电脑在局域网内观看,需要得到直播电脑的IP地址(在直播电脑输入命令行获得)<p>在观看电脑用potplayer/VLC输入这一IP地址,即可进行观看。路径为【菜单】-【打开】-【打开链接】<p>2、局域网外观看<p>通过自己推流的地址进行观看,例如,在Face book上推流,即在浏览器登录自己face book账号观看最新的直播推送<p>更新日志<p>1.1.1.3<p>2018-07-26<p>注意:本次更新不支持软件升级,请前往官网进行下载<p>C 修复电脑外接音频卡顿问题<p>C 修复长时间局域网推流导致文件一直变大的问题<p>C 修复软件无法进行更新的问题<p>C 优化直播画面清晰度</p></p><span style="color:white"> www.zJkWeiQI.CN</span><p>这家软件站为您提供【【淘密令】】最新版的网络电视,欢迎大家记住本网站地址,这家软件站是您下载软件或app最好的网站!</p> <p>如果您觉得本站提供的这款软件好玩或好用,请分享给您的好友:http://www.zjkweiqi.cn/【【微信】】/39420.html</p>