Warp3D crash sous WarpOs
13 sujets de 1 à 13 (sur un total de 13)
-
Bon, j’ai que 6 minutes chrono avant de partir au taff mais la question me turlupine trop.
J’ai installé VBCC 0.9a executables 68k/WOS + targets 68k/WOS, accompagnés d’un NDK 3.9 + warpup_dev + warp3d_dev, le tout exploité sous CubicIDE.
Pour le moment, j’avais fait qu’un peu de code systeme, qui compilait à merveille en target 68k. Pour la target WarpOs, j’ai buté 3 minutes sur cette histoire d’amiga-align mais google m’a rapidement amené sur GuruMed qui m’a donné la réponse, merci Stan.
Bon, ça se complique un peu avec Warp3D. Si en 68K tout fonctionne à merveille, création du contexte, allocation des textures, traçage etc, en WarpOs, c’est un peu différent. Ca me chie à la gueule, clairement. En clair, le moindre appel à Warp3DPPC donne une « WarpOs Exception », quelques soient les arguments donnés. Chose étranges, j’ai quelques fonctions très basiques, comme W3D_CheckDriver, qui fonctionne et en plus me retournent un résultat cohérent. Mais impossible de créer le context sans que ça explose.
Je soupçonnais un problème de proto, mais vbcc intègre le fichier inline et le proto de Warp3D que ce soit pour 68k ou WarpOs. J’ai regénéré ces fichiers avec les fichiers clib et fd et fd2pragma, mais le résultat fut sensiblement le même.
Toute suggestion est la bienvenue, j’avoue être totalement largué de A à Z dans cette histoire de cohabitation avec WarpOs d’un coté le 68K de l’autre. (Pour vous dire à quel point je suis largué, à la base je me tapais les RUN68K comme un grand…).
Voila, les 6 minutes sont explosées, merci bien
Tien ça fait longtemps que je t’ai pas vu/lu… Tu sais que OneGeometry qui tourne sous OS4.1 ce serait bien pour faire les démos quand on va sur des salons
Sinon vbcc permet aussi de compiler pour OS4
Yop toi
Ouai je sais bien que je pourrais compiler pour Os 4, mais en l’occurence, je suis sur un classique en 3.9 Et même si Os 4 fonctionne sur classic, pour des raisons évidentes de drivers, consommation ressources, perte de compatibilité AGA, etc, mon bon vieux 4000T restera sous 3.9
En plus, hier j’ai fais la découverte des BB3 et BB4, et ça m’a troué le cul de voir à quelle point la communauté classique était active! Ma machine est transformée, les mises à jour sont excellentes, optimisée, stables, l’os est devenu visiblement plus rapide. Déjà que mon 4000T il était pas à plaindre (pour un classic), là c’est une merveille.
Enfin, ça règle pas ce problème de crash que je n’arrive pas à m’expliquer… Faut être honnete, c’est sans doute tout con, mais je suis une burne finie en C, mon truc c’est l’ASM où pour lancer une fonction on connait son offset préci… Là en C bah… ça plante
EDIT: Tiens Elwood, tant que je t’ai. A l’époque où j’ai fais #One, je m’étais rendu compte qu’elle ne tournait pas sur les Radeon 9000 et co… Elle fonctionnait sur les Radeon type 7000/7500… Après enquete, ce n’était pas un bug de #One mais du driver Warp3D, bug que j’avais contourné afin que #Two marche sur ces cartes (9000).
A ce jour, est ce que #One fonctionne sur les dernières mises à jour de W3D avec une carte type Radeon 9000?
Non toujours pas. Hyperion est bien au courant des problèmes de W3D mais pour l’instant ils ont d’autres chats à fouetter
Il y a un groupe/sujet sur warp3 sur utilitybase tu devrais y poster ton problème
J’ai jamais recompilé sur WarpOS donc moi je sais pas….
Es tu sûr d’ouvrir la bonne library ? je veut dire la PPC pas la 68 k ?
es tu sûr que Query marche ? essaye avec
w=W3D_Query(context,W3D_Q_MAXTEXWIDTH ,destfmt);
Matthey&Cosmos bossent sur les bugs de warp3d : vois sur utilitybase
Alain
Merci Alain. Donc oui, il y a bien ouverte de Warp3DPPC.library dans Warp3DPPCBase, la réponse est positive.
Je ne peux pas executer de W3D_Query(), puisqu’elle a besoin d’un context, et que mon CreateContext() plante la machine.
En fait, jusqu’au plantage d’un appel W3D_Truc, tout se passe extremement bien, de la compilation (0 error 0 warning), à l’execution (tous les retours sont testés et positif évidement). Ca marche aussi bien que la version 68K, sauf qu’en 68K W3D fonctionne au lieu de planter.
Je vais aller faire un tour sur UtilityBase, j’attend juste le mail de validation de mon inscription (semble s’être perdu). Du peu que j’ai parcouru, ça a l’air d’une sacré bande d’accros à MiniGL
Oupps je me suis trompé tu parlais de W3D_CheckDriver() et non pas de W3D_query ou W3D_QueryDriver
Alors je pense qu’il ouvre bien la Warp3DPPC.library mais après n’arrive pas à ouvrir la library qui contient le driver
(mauvaise install, mauvais nom?)
Les autres executables PPC Warp3D tournent ils sur cet install ?
Ou alors t’es dans des conditions au moment du lancement ou le context peut pas être créé = genre bitmap dans un écran 8 bits ? : Essaye de lancer mon cow3D (sur Aminet) il affiche toutes les possibilités (Query) du driver
ce qui est sûr avec Warp3D c’est que quand on a un bout de code qui marche il faut le garder et plus y toucher ;-P
Alain
Ha oui j’oubliais de préciser qu’au niveau des executables déjà existants, mon install est parfaitement fonctionnelle, que ce soit au niveau des applications 68K, à Quake2PPC de la mort qui tue.
On est donc bien face à un problème de dev.
Au niveau du bitmap tu me met le doute. Je suis bien en 16 bits mais j’ai choppé le ModeID avec un BestModeID() de base (graphics.library), ni avec celui de CGX ni avec celui de W3D…
EDIT: Bon bah y’a pas à chercher plus loin, le W3D_BestModeID() me donne une WOS Exception comme toutes les autres instructions… Par contre je réfléchissais à un truc, faudrait que je vois si mon problème est lié à W3DPPC lui même, ou au PPC en général… Je vais appeller d’autres libs PPC et voir si ça donne le même résultat.
RE EDIT: J’ai lancé ton Cow3D. J’ai tous les retours de capacités totalement cohérents avec ce que doit me pondre un Permedia 2… et 12 fps Par contre en tout cas je vais aller reluquer ton source voir si y’a pas un truc que j’aurais pu zappé, celà dis j’ai pondu pas mal de W3D en AmigaOs déjà :'( En tout cas jolie vache
RE RE EDIT: Bon, je vais de me taper des tests d’appel vers powerpc.library. C’est la même chose qu’avec Warp3DPPC, en pire. Là, les fonctions marchent mais… Une fois sur 2. Genre un AllocVecPPC(), un coup il marche… un coup il freeze . Je viens de terminer mon post sur UtilityBase, là mes maigres connaissances en C et en installation de SDK sont dépassées.
Je regrette franchement la non mise à jour des docs. On tombe sur des docs contradictoires, l’une dit de linker avec -lw3d, l’autre dit que c’est useless, retiré du package… pour ne citer que cet exemple là, parcequ’il commence à être tard… 6h23, mon dieu! Mon lit…
Bon, j’ai « trouvé » le bugg. Enfin, j’ai au moins trouvé de quoi l’éviter.
C’est ultra con…
W3D_CreateContextTags() crash.
W3D_CreateContext() fonctionne.
W3D_BestModeIDTags() crash.
W3D_BestModeID() fonctionne.
Bref, je passe par des structures TagItem, c’est un poil plus chiant, mais par cette manière, ça tourne. Je suppose que c’est VBCC qui se chie dessus avec les fonctions ___Tags(), mais je m’en sors bien.
J’ai réussis à mettre la main sur un GCC WOS sinon, mais c’est totalement unsupported, outdated.
L’erreur est dans Warp3D_protos.h je crois
W3D_CreateContext est d’abord un define avec 1er paramétre
puis utilisé avec 1er paramétre #define W3D_CreateContext(v1,v2) PPCLP2 (Warp3DPPCBase,-30,W3D_Context *, ULONG *,3,v1,struct TagItem *,4,v2)
static inline W3D_Context *W3D_CreateContextTags(ULONG *error, Tag tag1, …)
{
static struct TagItem _tags[20];
int i = 0;
va_list marker;
if (tag1 == TAG_DONE)
{
_tags[0].ti_Tag = TAG_DONE;
return W3D_CreateContext(error, _tags);
}
_tags.ti_Tag = tag1;
va_start (marker, tag1);
do
{
_tags.ti_Data = va_arg(marker, ULONG);
i++;
_tags.ti_Tag = va_arg(marker, ULONG);
}
while (_tags.ti_Tag != TAG_DONE);
va_end(marker);
return W3D_CreateContext(error, _tags);
}
Huuummm…
Je viens de mater, et en fait, W3D_CreateContext() présente la même chose. Sauf qu’il marche.
D’ailleur coté target 68K, l’inline se présente là encore de la même manière, que ce soit pour la version Tags ou non. Et pourtant les deux fonctionnent aussi bien chez toi que chez moi.
Normal ou pas j’en sais rien, là on a quitté mon domaine depuis le début du fichier
En revanche un gars d’UtilityBase se rappelle avoir eu un problème similaire il y a quelques temps. Frank Wille est tombé sur mon post et il me propose quelques test afin de fixer VBCCwos qui a priori est à l’origine du problème. Je ne sais pas si je vais l’enquiquiner avec cela, je dois être le seul gars sur terre à vouloir faire du W3D_WOS, les autres utilisateurs étant soit sur 68K, soit sur NG.
A suivre
Par contre je me rappel à quel point la version OS4 de W3D était execrable. Je pensais que c’était lié au portage, mais en fait la version classic l’est tout autant. C’est lent, truffé de bugg… Va falloir bosser sévère pour pondre du framerate.
salut,
il y a alain et matthey et aussi kas1e et c’est surement a cause de la lenteur et des bugs que si peu ose s’y aventurer
voit avec frank wille, l’aider et lui montrer de l’interet va l’aider et aussi t’aider (ainsi que d’autres ensuite).
de mon coté, j’aimerais vraiment voir wazp3D d’alain lié a des drivers hardware pour permedia, voodoo, etc… (ceux existant mais avec moins de bugs et problemes) basé sur le travail d’alain et de matthey.
n’hesite pas a nous aider d’ailleur, deja si tu voit des problemes avec warp3D AOS3 et AOS4.
il y a toujours moyens d’ajouter des pbs warp3D AOS4 dans le bugzilla avec l’aide d’elwood…
bye.
13 sujets de 1 à 13 (sur un total de 13)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Warp3D crash sous WarpOs