3D for Pistorm: Nuevos e importantes  avances.

El proyecto 3D for PiStorm, impulsado por Steffen Haeuser y con desarrollo técnico a cargo de Dennis, continúa avanzando con el objetivo de dotar a los Amiga equipados con PiStorm (Pi 4 o CM4) de una biblioteca 3D capaz de ser aprovechada por juegos y software compatibles. Tras un periodo prolongado sin novedades, la actualización más reciente confirma progresos importantes pese a los desafíos técnicos encontrados.
A diferencia de la GPU del Raspberry Pi 4, el chip gráfico VideoCore VI carece de documentación oficial completa. Aunque existe abundante código de ejemplo, especialmente procedente del proyecto Gallium3D, su complejidad obliga a desentrañar el funcionamiento interno mediante experimentación. Este factor ha condicionado el ritmo del desarrollo.
El equipo espera disponer en unas semanas de un primer ejemplo funcional. No se tratará aún de una biblioteca completa, sino de una prueba técnica capaz de generar binning lists y rendering lists, compilar código GPU en shaders y mostrar un resultado básico en pantalla, previsiblemente un triángulo coloreado. Alcanzar este hito confirmaría que la cadena de renderizado funciona correctamente.
Entre los principales obstáculos superados figuran diferencias en la organización de memoria entre generaciones VideoCore, cambios en el funcionamiento de la MMU, ya que VC6 utiliza direcciones físicas en lugar de direcciones de bus, problemas derivados del endianness frente al sistema big endian del Amiga y complicaciones relacionadas con el ensamblador QPU utilizado para shaders.
En el estado actual, el driver 3D genera pseudocódigo que se traduce a instrucciones ejecutables por la GPU, y la inicialización del driver ya está implementada, un proceso especialmente complejo debido a la escasez de documentación. El desarrollador estudia simplificar el flujo de compilación para adaptarlo a un único hardware, lo que podría reducir complejidad y mejorar el rendimiento.
Actualmente el trabajo se centra en las binning lists, cuyo código para el ejemplo está completado en torno al 90 %. Una vez finalizadas, se abordará la implementación de las rendering lists. Si no surgen nuevas complicaciones, este primer ejemplo funcional podría llegar en pocas semanas, marcando un paso decisivo hacia la aceleración 3D moderna en sistemas Amiga equipados con PiStorm.

Visita la página del proyecto <<—-

#3DAcceleration #aceleración3D #amiga #bigEndian #binningLists #controladorGráfico #endianness #Gallium3D #GPU #graphicsDriver #littleEndian #Mesa3D #pistorm #QPU #RaspberryPi4 #renderingLists #renderingPipeline #renderizado #shaders #VideocoreVI

NVRAM из EEPROM

Дана функция чтения и записи EEPROM dword. Запись и стирание возможно только по выровненному адресу и пословно. Надо поверх EEPROM API сделать функцию чтения, записи и стирания для произвольных массивов байт, по произвольному адресу (NVRAM). Простыми словами надо состыковать Dword API с Byte API. В этом тексте я представил простой наивный алгоритм решения данной задачи.

https://habr.com/ru/articles/815639/

#eeprom #NVRAM #flash #память #файловые_системы #объединения #union #lazy_write #API #littleendian

NVRAM из EEPROM

В программировании микроконтроллеров часто приходится работать с энергонезависимой памятью: читать и писать массивы. Однако порой реализация энергонезависимой памяти накладывает некоторые свои...

Хабр
Learn Python Binary Unpacking using the struct module! Efficiently handle binary data, understand byte order (big/little-endian), and master packing/unpacking techniques. Avoid data corruption & improve your Python skills. #Python #BinaryData #StructModule #DataUnpacking #BigEndian #LittleEndian
https://tech-champion.com/programming/python-binary-unpacking-a-guide-to-unpacking-double-precision-floats-and-more

#SourceCodeSunday

So you are have a machine that is #littleEndian? Chances are your #hexdump​​s are all wrong. This is how you should be doing it.

Imagine that your #fingers represented #binary digits. Place your hands in front of yourself and make the number 132 (#bigendian or #littleendian).

You're welcome 🤣

On Endianness

Byte Endianness in computers has been a constant source of conflict for decades. But is there really a clear advantage to one over the other?