Certains d'entre vous se souviennent peut-être que j'ai fait un programme kernel-based (si si !), à l'origine pour faire un bench ExtGraph / graphlib. Il est kernel-based, parce qu'utiliser un loader de lib dynamique kernel-based pour programme AMS native (il me semble que PpHd a fait ça pour je ne sais plus quel programme) n'est pas une solution très satisfaisante pour un petit bench de quelques kilo-octets.
A une époque, j'avais perdu le source et les binaires, et ce gros vilain de Flanker n'en avait pas gardé de copie - honte éternelle à lui pour ne pas avoir gardé une copie du morceau historique que constitue un programme kernel-based de TICT, non mais

Depuis que je l'ai retrouvé, le source a subi des modifications. Je ne sais plus quelle en est l'étendue exacte, mais je sais que j'ai ajouté l'infrastructure pour faire un bench, aussi juste que possible, de Genlib. Il faut que les mêmes fonctions soient testées, mais s'il y a lieu de prendre en compte des spécificités de Genlib (c'est probable), il faut les prendre en compte.
Les modifs n'ont jamais été finies, par manque de temps et de connaissance de Genlib.
Je souhaiterais "finir" ce programme, et notamment résoudre notamment une bonne fois pour toutes, un problème de headers pour la compilation de ce programme, écrit en pur assembleur, syntaxe A68k.
En tête de ce programme (les releases officielles sont tellement dépassées que seul le SVN est valide, http://opensvn.csie.org/ExtGraph/trunk ), j'ai marqué:
; INCLUDE "os.h"
; The header in PreOS, recommended for kernel-based programming by PpHd ("os.h is outdated").
; I don't care whether it is supported by Kevin or not.
INCLUDE "tios.h"
Le commentaire reste à peu près valable, mais y a-t-il eu des progrès entre tios.h et os.h pendant les 11-12 mois où je n'ai pas participé à la communauté (c'est beau de rêver, mais pourquoi pas...) ?
D'autre part, pourriez-vous me faire le code d'un bench aussi équitable que possible de Genlib (ce qui peut conduire à modifier le code du reste du bench, y compris l'ajout de grayscale et/ou doublebuffering - si besoin est, ExtGraph contient une routine de grayscale qui alloue toujours deux plans consécutifs dans la mémoire, même sur HW1) ? Attention, il ne faut quand même pas que ça prenne trop de temps à écrire et que ça soit au détriment de vos propres projets intéressants

Pour le moment, on reste sur le feature set déjà présent, mais je suis ouvert aux suggestions (on en discutera en public ici).
Je me fiche qu'au bout du compte, ExtGraph soit plus rapide ou moins rapide que Genlib. Genlib, disposant de fonctions optimisées pour le grayscale, peut très bien être plus rapide qu'ExtGraph, où il faut (peut-être - il y a plus de fonctions bi-plan que dans les releases précédentes) lancer deux fois la même fonction mono-plan pour obtenir le résultat voulu, ce qui aura un coût en termes de performance. Je ne ferai pas de news spéciale indiquant les performances relatives des libs

A noter qu'à un moment, demo26 ne tournait pas sur PedroM:
; We need AMS 2.xx due to push_ulong_to_integer, which defacto prevents
; PedroM from running this program, until PpHd implements that function.
cmpi.l #$4E4,-4(a5)
blt _end
tst.l $4E4*4(a5)
beq _end
Je ne sais pas si cette fonction manque toujours, mais elle est facile à implémenter.
Merci de m'avoir lu jusqu'au bout (bah oui, on ne se refait pas, les posts où j'ai quelque chose à dire sont toujours aussi longs
