Zero-copying on Android
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- android, rust
- 领域
- mobile, performance
调研方向
从 NativeWindowBufferLockGuard::bytes 和 drop 开始,然后跟踪 Softbuffer 的 Surface::buffer_mut 行为以作比较。确定 Android 缓冲区是否可以避免显式清零步骤,以及 unlock 和 present 应如何分离;当剩余的两个尚未勾选的 Android zero-copy 问题都得到一致解决时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
There's a few things that make zero-copying difficult on Android:
- Buffers are in
RGBXformat instead ofBGRX. Should be fixed by github.com/rust-windowing/softbuffer/pull/289. - Buffers have stride. Should be fixed by https://github.com/rust-windowing/softbuffer/pull/315.
- Buffers are exposed as
&mut [MaybeUninit<u8>], seeNativeWindowBufferLockGuard::bytes. Is this really necessary, or could we rely on the buffer being zero-initialized? If not, we'll have to do a zeroing step ourselves inbuffer_mut. - The surface is both unlocked and presented in
NativeWindowBufferLockGuard::drop, whereas Softbuffer allows these two steps to be separate (e.g. you canDropan in-progressBuffer<'_>and request a new one inSurface::buffer_mut, with no side-effects).
Maybe the SurfaceControl stuff @MarijnS95 is working on will allow fixing the last point?
- 主要语言
- Rust
- 星标
- 507
- 派生
- 84
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rust-windowing/softbuffer 的其他 Issue
-
DS - X11
难度 3/5 1-2 天 新手友好度 48/100
rust-windowing/softbuffer#368 ·
-
bug DS - Android NDK
难度 4/5 3-5 天 新手友好度 35/100
rust-windowing/softbuffer#347 · 1 条评论 ·
-
Needs Design Work
难度 5/5 一周以上 新手友好度 25/100
rust-windowing/softbuffer#342 · 1 条评论 ·
-
enhancement question
难度 5/5 一周以上 新手友好度 25/100
rust-windowing/softbuffer#338 ·
-
DS - Wayland DS - X11 question
难度 5/5 一周以上 新手友好度 25/100
rust-windowing/softbuffer#306 · 2 条评论 ·
查看 rust-windowing/softbuffer 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 90/100
维护者通常 1 天内回复
-
agent:triaged bug bughunt pm:npm priority:p1
难度 2/5 1-3 小时 新手友好度 82/100
SocketDev/socket-patch#464 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复