atreyu_ac escribió:Cuando veais un SOC de Allwinner, HUID. Huid tan rápido como podais. Y os lo dice alguien que ha programado el driver gráfico de RetroArch para el buffer Sunxi y el contexto EGL para GLES sobre Mali400, que es lo que usan estos cagarros de Allwinner, así que sé de qué hablo (aquí:
https://github.com/libretro/RetroArch/b ... unxi_gfx.c y aquí:
https://github.com/libretro/RetroArch/b ... bdev_ctx.c).
El problema con los putos SOC de Allwinner es siempre el mismo: los muy anormales no liberan ciertas cosas que son fundamentales para tener un Linux moderno en el cacharro.
-La implementación del OpenGL_ES es cerrada y privativa, depende de una versión concreta del kernel: por lo tanto, con esta basura tienes que tener un kernel 3.4.x parcheado por ellos si quieres OpenGL_ES. Y si no, pues te jodes y pintas los polígonos con el rabo. Había una implementación libre, LIMA, que está abandonada definitivamente.
-La aceleración de descompresión de video se hace mediante un binario cerrado y privativo que depende de mil mierdas, como versiones concretas del kernel o del servidor X.
Y muchas otras miserias. Ni con un palo toqueis esta mierda hasta que no liberen todo, o daos por jodidos: una Pi2 le pega fuego a este pedazo de excremento. No se trata de potencia bruta, eso da igual si no tienes una implementación de KMS o similar (dispmanx en la Pi) que sea abierta y una implementación de GLES que funcione sobre la API 2D abierta también.
Emular sobre las X no es una opción a no ser que no sepas lo que es el input lag.
Sólo gracias al esfuerzo absurdo que hice el año pasado implementando el driver sunxi-G2D para RetroArch, y que no pienso repetir, se puede medio emular en esta cosa, usando como digo un kernel que lleve las G2D de esta gentuza, que son distintas de las de otros fabricantes y así todo. Es penuria tras penuria cuando las cosas no son abiertas y estandarizadas...
También implementé como he dicho soporte para GLES en RetroArch, pero los shaders van mal (porque la implementación es una soberana cagada), con lo que al final lo único que aprovecha medio bien es tirar de Sunxi-G2D, y adiós shaders.
En resúmen, pasad de esto, de verdad. Para emular bien hace falta una implementación buena de GLES sobre el framebuffer que sea (dispmanx, KMS, incluso el viejo FBDEV vale) y esta cosa no la tiene. Si con G2D sin shaders os conformais, RetroArch con mi driver es la única solución, pero estareis atados a un kernel viejo y cutre de unos chinos hijosputa que pasan de vuestro culo.
EDITO: Si quereis saber qué soporte tiene el kernel Linux "normal" (el mainline) de la mierda de los sunxi (allwinner), la comunidad linux-sunxi lo va poniendo aquí:
http://linux-sunxi.org/Linux_mainlining_effortPara todo lo que no esté "mainlined", estais atascados en un kernel viejo: 3.4.107 o alguna cosa de esas.
Y como veis, las cosas de 2D y 3D aceleradas, fundamentales para emuladores, van para MUY largo, y yo personalmente creo que jamás las veremos.