Zero-copying on Android
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- android, rust
- Área
- mobile, performance
Línea de trabajo
Empieza por NativeWindowBufferLockGuard::bytes y drop; después, sigue el comportamiento de Surface::buffer_mut de Softbuffer como comparación. Determina si los búferes de Android pueden evitar un paso explícito de puesta a cero y cómo deberían separarse unlock y present; se considera terminado cuando las dos cuestiones restantes de zero-copy en Android que aún no están marcadas se hayan resuelto de forma coherente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- Rust
- Estrellas
- 507
- Forks
- 85
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-windowing/softbuffer
-
DS - X11
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
rust-windowing/softbuffer#368 ·
-
`Buffer<'_>` shouldn't be `Send`Posiblemente ocupada @Guflly la tomó hace 71 días. Abiertobug DS - Android NDK
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rust-windowing/softbuffer#347 · 1 comentario ·
-
Needs Design Work
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-windowing/softbuffer#342 · 1 comentario ·
-
enhancement question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-windowing/softbuffer#338 ·
-
DS - Wayland DS - X11 question
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rust-windowing/softbuffer#306 · 2 comentarios ·
Todos los issues de rust-windowing/softbuffer
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
RustCrypto/SSH#596 ·
-
proxy: SQL-over-HTTP turns empty arrays into [""] or [false], or HTTP 500 for int and float arraysAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
neondatabase/neon#12965 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
goauthentik/authentik#26867 ·
Los mantenedores suelen responder en 1 día
-
api bug macos maintainer-needed p2 triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
area::tern difficulty::easy good first issue kind::cleanup triage::ready
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100