GTK 4.14 presenta nuevos motores de renderizado, mejoras y mas

GTK4

GTK ​​ o The GIMP Toolkit​​ es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario

En esta nueva versión que se presenta de GTK 4.14 se destacan los nuevos motores de renderizado unificados llamados «NGL» y «Vulkan» que hacen uso tanto de OpenGL (GL 3.3+ y GLES 3.0+) como de las API de gráficos Vulkan. Ambos motores están basados en la API de Vulkan, pero el motor «NGL» presenta una capa de abstracción separada para OpenGL que se ejecuta sobre Vulkan, teniendo en cuenta las diferencias entre ambas API. Este enfoque ha permitido el uso de una infraestructura común en ambos motores para el procesamiento de gráficos de escenas, transformaciones, almacenamiento en caché de texturas y glifos. La unificación también ha simplificado notablemente el mantenimiento de la base de código de ambos motores, así como su actualización y sincronización.

Se menciona que a diferencia del antiguo motor «GL», que empleaba un sombreador simple separado para cada tipo de nodo de renderizado y reorganizaba periódicamente los datos durante el renderizado fuera de pantalla, los nuevos motores utilizan un sombreador complejo (ubershader) para el renderizado fuera de pantalla, interpretando los datos del búfer. Entre las características distintivas de los nuevos motores se destacan el suavizado de contornos, que permite conservar detalles finos y lograr contornos más suaves, la formación de gradientes arbitrarios, que admite cualquier número de colores y suavizado, y el escalado fraccional. El nuevo motor de renderizado «NGL» está activado de forma predeterminada, al igual que la compatibilidad con la API de gráficos Vulkan. Al integrar la configuración predeterminada, ahora se requiere la compatibilidad con Vulkan 1.3.

Otro de los cambios que se destacan de GTK 4.14, es la biblioteca GSK (GTK Scene Kit), que proporciona la capacidad de representar escenas gráficas a través de OpenGL y Vulkan, ha experimentado mejoras significativas relacionadas con la representación de fuentes, sugerencias y el uso de valores de escala no enteros al mostrar texto. Se ha implementado el suavizado del contorno de los glifos durante la rasterización para mejorar la claridad en pantallas de baja resolución, así como el posicionamiento de subpíxeles de los glifos al hacer sugerencias. La calidad de representación de fuentes también se ha mejorado en valores de escala no enteros, como 125%. Asimismo, se ha añadido soporte para el desalojo de elementos de caché para glifos y texturas, lo que ha mejorado la eficiencia del almacenamiento en caché de glifos.

Además de ello, se ha incorporado soporte para «Path» en GTK, lo cual permite dibujar formas y áreas utilizando una secuencia de líneas o curvas Bézier cúbicas y cuadráticas. Para realizar dibujos con trazados, se han introducido varios objetos en GTK, como GskPath para definir parámetros de líneas o curvas, GskPathBuilder para crear curvas, GskPathPoint para establecer un punto en una forma y GskPathMeasure para tomar medidas como la longitud de un trazado.

Por otro lado, la biblioteca GDK, que actúa como una capa entre GTK y el subsistema de gráficos, ha expandido su soporte para el mecanismo DMA-BUF, se menciona que este mecanismo permite el uso de buffers a nivel de kernel direccionados mediante un descriptor, lo que posibilita la transferencia directa de datos entre subsistemas del kernel sin necesidad de copiarlos. En el contexto de GTK, el soporte para DMA-BUF se utiliza para minimizar las operaciones de copia de datos de píxeles durante la composición y al trabajar con vídeo. Por ejemplo, el vídeo puede ser grabado mediante un decodificador de hardware en dmabuf, luego adjuntado a una superficie Wayland y finalmente pasar a un administrador de composición para su visualización en pantalla sin copias adicionales de datos.

También se han incorporado mejoras significativas para personas con discapacidades relacionadas con la visualización de texto con formato complejo, el funcionamiento de WebKitGTK y la visualización de notificaciones.

De los demás cambios que se destacan de esta nueva versión:

  • Se ha mejorado el soporte para las especificaciones ARIA, y se ha añadido la interfaz GtkAccessibleText para utilizar funciones de accesibilidad en widgets de texto de terceros.
  • La interfaz GtkText ha ampliado su soporte para el protocolo AT-SPI, permitiendo la interacción con lectores de pantalla.
  • Se ha añadido la clase GtkPrintDialog para generar cuadros de diálogo de impresión y proporcionar una API asincrónica que se puede utilizar en lugar de GtkPrintOperation.
  • Este widget ha actualizado los datos de Emoji y ahora ofrece la capacidad de buscar en diferentes idiomas, considerando las diferentes configuraciones regionales.
  • Se ha mejorado el seguimiento de los cambios realizados por el usuario en el widget GtkEntry, lo que facilita la implementación de la operación de deshacer.
  • Se ha acelerado la apertura del cuadro de diálogo de selección de archivos en el widget GtkFileChooser para mejorar la experiencia del usuario.
  • El inspector GTK ahora proporciona visualización de información sobre OpenGL, subsuperficies y FPS para facilitar la depuración y el análisis de rendimiento.
  • La utilidad gtk4-node-editor ahora cuenta con soporte de grabación automática para mayor comodidad al trabajar con nodos y ediciones complejas.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/6FlTs8J
via IFTTT

Arti, la implementación de Tor en Rust llega a su version 1.2.0 y presenta estos cambios

Arti

Arti es un proyecto para producir una implementación integrable de los protocolos de anonimato Tor en Rust

La nueva versión de Arti 1.2.0 ya fue liberada y los desarrolladores de Tor continúan en los trabajando de integración en soporte para ejecutar servicios onion, asi como también que se han solucionado una serie de errores y problemas de seguridad y algunos cambios menores.

Para quienes desconocen de Arti, deben saber que este es un proyecto para implementar los protocolos de anonimato Tor en el lenguaje de programación Rust. A diferencia de la implementación C, que primero se diseñó como un proxy SOCKS y luego se adaptó a otras necesidades, Arti se desarrolló inicialmente en forma de una biblioteca modular integrable que puede ser utilizada por varias aplicaciones.

Una de las características distintivas de Arti es que aprovecha toda la experiencia acumulada en el desarrollo previo de Tor. Esto significa que se evitan problemas arquitectónicos conocidos, lo que hace que el proyecto sea más modular y eficiente desde su concepción. A medida que el código Rust alcanza un nivel de madurez que puede reemplazar por completo la implementación en C, los desarrolladores tienen la intención de otorgar a Arti el estatus de implementación principal de Tor y dejar de mantener la versión en C.

Principales novedades de Arti 1.20

El lanzamiento de Arti 1.2 se centra en la implementación estable del soporte para servicios onion, ya que ahora, Arti no solo permite conectarse a servicios existentes, sino también permite crear nuevos servicios onion. Además de ello, se ha iniciado el trabajo en capacidades relacionadas con la privacidad y seguridad de los servicios onion, como control de congestión RTT, protección DDoS, limitación de ancho de banda, autorización de clientes y Vanguard para evitar la detección de nodos Guard. Sin embargo, estas características aún no se han completado, por lo que no se recomienda utilizar Arti para implementaciones de producción hasta que se implementen por completo.

Además, la versión 1.2 soluciona una vulnerabilidad en el código de procesamiento de mensajes de retransmisión que permitía el envío de mensajes de datos vacíos, los cuales podían usarse para sustituir indicadores de tráfico indetectables. Aunque esta vulnerabilidad tiene una calificación baja debido a que los paquetes de datos solo se aceptan para subprocesos abiertos, se considera importante corregirla.

De los demás cambios que se destacan:

  • Mejorar las API del administrador de claves
  • Se diseñó la configuración del cliente y del servicio, y un subcomando CLI, para la autorización del cliente de servicio oculto.
  • Se mejoró la ergonomía de nuestras API de listado y eliminación de claves.
  • Se mejoró el registro de errores del circuito, incluyendo el identificador exclusivo del proceso del circuito en los mensajes de error.
  • Se diseñó una API para limitar la velocidad del ancho de banda.
  • Se corrigió un error que impedía que el editor del descriptor procesara completamente los resultados de las tareas de publicación, lo que provocaba que volviera a publicar el descriptor innecesariamente en algunas circunstancias.
  • Se arregló la compilación con musl.
  • Se actualizó la dependencia de curve25519-dalek de 4.1.1 a 4.1.2
  • Actualización a las últimas versiones de event-listener, rusqlite ,
    async-broadcast, Signature0, config.
  • Actualizaciones menores al proceso de lanzamiento
  • Corrección en la compilación y las advertencias en Windows.

Por otra parte, se menciona que en futuras versiones, se tiene previsto alcanzar la paridad con el cliente C para la rama 2.0 de Arti, que también ofrecerá enlaces para usar Arti en varios lenguajes de programación. Una vez que el código Rust alcance un nivel que pueda reemplazar completamente la versión C, los desarrolladores planean darle a Arti el estado de implementación principal de Tor y dejar de mantener la implementación C. Esta transición se realizará gradualmente para permitir una migración sin problemas.

Por último, es importante tener en cuenta que los desarrolladores advierten que la implementación aún está catalogada como experimental y la experiencia del usuario aún no cumple con todas las expectativas. Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/3U7OyV2
via IFTTT

Ente, la alternativa a Google Fotos libero el código fuente de su servidor

ente

Ente se volvió completamente de codigo abierto

La startup Ente ha anunciado una importante noticia y es que mediante una publicación de blog, ha dado a conocer la finalización de su labor de llevar todo su código fuente, incluidos los servidores, a ser completamente de código abierto. Y es que con este anuncio el servidor de su plataforma, junto con las aplicaciones móviles y de cliente que ya estaban abiertas previamente, han pasado a ser open source, con lo cual ahora se permite a los usuarios implementar un servicio de almacenamiento y uso compartido de fotografías similar a Google Photos y Apple Photos en sus propias instalaciones.

Con esta transición, los clientes de Ente y la comunidad en general tienen acceso total al código que garantizan el almacenamiento seguro y el cifrado de extremo a extremo, lo que garantiza una total transparencia en la seguridad, la integridad y la privacidad de los datos de los usuarios, al tiempo que ofrece una plataforma abierta para la experimentación y el desarrollo colaborativo.

ente photos

App ente photos

Una de las características destacadas de Ente es su capacidad para utilizar cifrado de extremo a extremo, lo que garantiza la protección de la información incluso en caso de compromiso del almacenamiento, lo que permite a los usuarios utilizar proveedores no confiables sin preocupaciones por la filtración de información confidencial.

El equipo de Ente enfatiza que esta decisión no solo se trata de tecnología, sino también de valores fundamentales. La transparencia, la confianza y la gratitud hacia la comunidad de código abierto y la tecnología que hacen posible el servicio de Ente son pilares clave en esta transición. Además, la apertura del código fuente de los servidores agrega una capa adicional de seguridad y garantía para los usuarios, independientemente de los cambios futuros en el panorama tecnológico.

Por la parte de las funciones criptográficas que garantizan la seguridad de los datos de los usuarios, estos se basan en la biblioteca Sodium, utilizando algoritmos como Argon2 1.3 para hash, X25519 para intercambio de claves, XSalsa20 y XChaCha20 para cifrado, y Poly1305 MAC para autenticación. Además, el proyecto ha sido sometido a auditorías independientes realizadas por Cure53 y Falible para garantizar la seguridad de los algoritmos criptográficos y del código fuente.

El servicio de almacenamiento de fotografías de Ente permite el intercambio selectivo de imágenes individuales y la creación de álbumes compartidos accesibles por varios usuarios. También admite la carga en segundo plano, importación y exportación para diferentes sistemas, y utiliza PostgreSQL como DBMS para garantizar un almacenamiento confiable mediante la replicación de la información en varios almacenamientos independientes.

Además del servicio de almacenamiento de fotografías, Ente ofrece la posibilidad de organizar el almacenamiento de otros tipos de datos como uno de los complementos de la aplicación. Por ejemplo, el componente Ente Auth se puede utilizar para crear programas de autenticación similares a Authy, que almacenan códigos de autenticación de dos factores, permiten la copia de seguridad del código en la nube y la sincronización entre diferentes dispositivos. Ente Auth y Ente Photos comparten el código del servidor para una mayor integración y funcionalidad.

Para los interesados en poder conocer más al respecto, deben saber que todo el trabajo de Ente está recopilado en un solo repositorio, el código del servidor está escrito en Go y se distribuye bajo la licencia AGPLv3. Las aplicaciones cliente están desarrolladas en TypeScript y Dart utilizando Flutter, y están disponibles para Linux, Windows, macOS, iOS y Android, además de contar con una interfaz web.

Puedes consultar los detalles del anuncio en el siguiente enlace.

from Linux Adictos https://ift.tt/qExiw37
via IFTTT

Panthor, el controlador de Collabora para GPU Arm Mali de 10° Generación

Panthor

Panthor un controlador del kernel de GPU de código abierto para la GPU Arm Valhall

Collabora dio a conocer mediante una publicación de blog uno de los hitos más recientes dentro de sus trabajos presentados, y es que ha anunciado la tan esperada fusión del controlador del kernel que agrega soporte para las GPU Arm Mali de décima generación en drm-misc. Este controlador mejor conocido como «Panthor», es un controlador de código abierto diseñado específicamente para la GPU Mali de décima generación (G310, G510, G710).

Se menciona que la fusión del controlador representa un el trabajo y esfuerzo colaborativo de dos años entre varios desarrolladores y empresas, Collabora destaca la importancia de la colaboración en el desarrollo de tecnologías avanzadas.

La participación de Arm en este proceso ha sido crucial, no solo proporcionando acceso a documentación clave, sino también participando activamente en la revisión y co-mantenimiento del controlador del kernel.

Al principio, el desarrollo del nuevo controlador se llevó a cabo mediante ingeniería inversa, pero luego ARM se unió al proyecto, proporcionó acceso a la documentación y participó en la revisión del código. Dos empleados de ARM han sido ascendidos al estado de co-mantenedores de controladores para el kernel de Linux. En el futuro, una vez que el controlador OpenGL esté listo, el trabajo se centrará en implementar un controlador Vulkan para las nuevas GPU de Mali y actualizar el controlador Vulkan existente para las GPU de Mali más antiguas.

Este controlador utiliza la tecnología CSF (Command Stream Frontend) para transferir algunas funciones del controlador al lado del firmware, lo que ayuda a reducir la carga en la CPU y proporciona un nuevo modelo de organización del trabajo en la GPU. El controlador DRM (Direct Rendering Manager) Panthor ha sido aceptado en la rama drm-misc y se espera que se incluya en el kernel de Linux 6.10. Mesa también ha adoptado cambios para admitir el nuevo controlador, que se incluirán en el controlador Panfrost Gallium para GPU de Mali.

En la nueva generación de GPU Mali, el planificador de Job Manager se sustituye por una interfaz CSF, que utiliza un modelo basado en flujo de comandos con programación de la cola de flujo de comandos en el lado del firmware en lugar de un modelo basado en el envío de una cadena de trabajos. Esto implica la integración de un microcontrolador Cortex-M7 separado en la GPU y una unidad de ejecución de comandos especial para ejecutar instrucciones CSF. Estas funciones requieren una organización fundamentalmente diferente para transferir el trabajo a la GPU desde el espacio del usuario.

Inicialmente, se intentó implementar soporte para GPU Mali basadas en CSF en el controlador Panfrost DRM, pero los desarrolladores concluyeron que esto complicaría demasiado el controlador existente. Por lo tanto, para CSF, fue más óptimo crear un nuevo controlador con una arquitectura diferente. El controlador Panthor implementa una uAPI completamente nueva, una nueva lógica de programación de trabajos y una nueva lógica de control MMU/GPU-VA. Se basa en el código del controlador DRM existente de Panfrost, del cual toma patrones típicos de inicialización del controlador, control de frecuencia y administración de energía.

Además de ello, se menciona que el controlador del kernel, se ha fusionado la solicitud de fusión de mesa que extiende el controlador Gallium existente para admitir las nuevas GPU Arm Mali de décima generación. Collabora también ha trabajado para asegurar que las placas basadas en Rockchip RK3588 se puedan cargar utilizando una pila de software completamente abierta. Para Rockchip RK3588, se ha preparado una imagen del sistema basada en Debian y un gestor de arranque abierto para reemplazar los componentes propietarios BL31 (etapa 3.1 del cargador de arranque). Esto es especialmente significativo para las plataformas RK3588 de Rockchip, donde se espera un rendimiento y una eficiencia mejorados gracias a estas actualizaciones.

El trabajo en el controlador Gallium no solo implica habilitar el soporte para nuevas GPU, sino también optimizar el rendimiento y la compatibilidad con las API gráficas modernas. Esta extensión del controlador es parte de un esfuerzo continuo para ofrecer una experiencia gráfica excepcional en una variedad de dispositivos y escenarios de uso.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/iswCAxF
via IFTTT