PureBasic

Forums PureBasic
Nous sommes le Dim 08/Déc/2019 14:26

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 24 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: PureBasic 5.46 LTS Beta
MessagePosté: Sam 04/Nov/2017 12:35 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
Fred annonce la disponibilité de PureBasic 5.46 LTS Beta qui devrait résoudre quelques problèmes principalement sur Linux.

Annonce officielle : http://www.purebasic.fr/english/viewtop ... 14&t=69554

■ 3 Nov Beta 1
Résolution de quelques problèmes principalement sur Linux.



-


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 8:33 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Bonjour Falsam,

merci pour l'info.

J'ai aussi vu que tu n'avais pas retransmis sur le forum EN le bug pour Retina.

C'est pourtant, et ça se voit, vu la foule de bugs à gérer, ainsi que les consignes données, le seul moyen pour Fred de faire la vérification et d'être assuré que le bug vient bien du compilateur : ce seul moyen, et il l'a indiqué c'est sur le forum anglais.

Le code source que j'ai publié a plusieurs mois désormais et il n'a subi aucune modification. C'est un gage de fiabilité de ma part, et de transparence. Il ne faut pas craindre la complexité d'une programmation dès lors où, d'une part, il n'y a pas de redondance superflue dans le code source, et d'autre part, il n'y a pas de redondance superflue dans l'exécution du code source. Il n'y a qu'à observer les ressources CPU ou un benchmarks.

Enfin, j'appuie bien l'idée, que c'est pour Fred, pas pour moi. Car quand un compilateur a un bogue, il y a d'autres compilateurs open source qui n'ont pas ce bogue.

Fred n'est pas open source :
- il prend un sous-système open source compilable sur des compilateur open source,
- il l'inclut dans un concept (OpenGLGadget)
- il en vante l'existence dans la constitution de son produit.

Désolé de le dire mais, s'il bugue, il est en porte-à-faux. Donc, c'est ton rôle, si ça te coûte 5 minutes de temps pour copier sur le sujet EN adéquate (Fred en a encore fait le rappel dans le lien que tu donnes), que je te le demande, d'apporter une transmission. Pour Fred, ça ne sera sûrement pas une redondance superflue.

Merci pour ton écoute


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 12:15 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8785
Si je puis me permettre.. pourquoi ne le fais tu pas ? Falsam est modérateur, pas postier.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 15:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
Je rejoins les propos d'Ar-s. Dans ton topic Retina tu as demandé a des utilisateurs de tester ton code, j'ai répondu que je voyais que des rectangles de couleurs. Mon rôle s'arrêtait là.

Si tu pense que le bug est du à PureBasic, alors c'est à toi de le signaler sur le forum anglophone sans oublier un petit code (pas de pavasse) fonctionnel prouvant les circonstances de ce bug. Sans ce code, Fred ne traitera pas le bug.

Allez ... Tchuss

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 16:43 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Mais j'ai fait tout ce qu'il faut, et dans les régles de l'Art les amis.

C'est au lien suivant depuis le printemps dernier :
http://www.purebasic.fr/english/viewtopic.php?f=4&t=68436

Et ce lien est disponible dans le sujet "Retina".

Fred a écrit:
Can anyone confirm this ? It seems to be OK here

Ce qui signifie : << Quelqu'un peut-il confirmer ça ? Ça semble OK ici. >> (Fred)
Si personne ne va confirmer, alors qu'on est en période de beta-test, il n'y aura pas de diversité d'OS, ni de diversité de matériel pour diagnostiquer le bug. Cela réduira les chances de détruire ce bug.

Je vous remercie pour votre écoute.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 16:43 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
@Ollivier, si tu fait référence à ce code : http://www.purebasic.fr/french/viewtopic.php?f=8&t=16662

Citation:
Le code source que j'ai publié a plusieurs mois désormais et il n'a subi aucune modification. C'est un gage de fiabilité de ma part, et de transparence. Il ne faut pas craindre la complexité d'une programmation dès lors où, d'une part, il n'y a pas de redondance superflue dans le code source, et d'autre part, il n'y a pas de redondance superflue dans l'exécution du code source. Il n'y a qu'à observer les ressources CPU ou un benchmarks.


Pour la fiabilité du code on repassera, tu ne gère pas la création du contexte OpenGL, donc tu ne sais pas comment et quoi est disponible de l'API opengl, de plus , pour chaque caractère tu fait un glBindTexture(), donc totalement, superflu, tu satures n'importe quel carte graphique pour rien, une seule texture te suffit , celle de la fonte.comme cela, un seul bind pour tout les vertices, préfère aussi les tableau de pixels "brut" que les pointeurs de drawingbuffer() , il se peu sous opengl , que le drawingbuffer() soit encodé en BGRA ou RGBA, avec un tableau "brut" ( que tu peu copié d'une Image PB ) tu maitrise l'ordre des couleurs.
aussi, tu fait glClear_(#GL_DEPTH_BUFFER_BIT) dans CharBegin(), pourquoi effaces tu le buffer de profondeur ? tu fait de la 2D, pas besoin d'effacer ni d'avoir ce buffer... , mais plutot GL_COLOR_BUFFER_BIT.
A savoir aussi que GL_QUAD est obsolète et mal supporté sur les carte graphique récente. mieux faut 2 triangles.
Voilà, je ne vais pas énumérer toute les erreurs ou non sens que j'ai vu, je te suggère d'apprendre correctement OpenGL de manière plus moderne ici et de l'adapté à tes besoins : http://www.opengl-tutorial.org/fr/

Donc le problème viens de ton code, pas de purebasic.

@++


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 17:20 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Bonjour G-Rom,

Nous avons quasiment posté ensemble...

N'hésite pas à énumérer les différents détails techniques ci-dessus, à cette même adresse officielle : http://www.purebasic.fr/english/viewtopic.php?f=4&t=68436.

Merci pour ton intervention.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Dim 05/Nov/2017 17:38 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
Re Bonjour, je te laisse le soin de le faire, je n'ai fait qu'exécuté ton code et le survolé, j'ai fait 3 crises cardiaque en lisant le source ^^
un truc qui pourrait t'intéressé : RayLib, dispo ici : https://github.com/raysan5/raylib/tree/master/src , il y a 2 fichiers très interessant , rlgl.c & rlgl.h , ils peuvent tourné en standalone, facilement convertible en PB, prend en compte l'opengl à papa (1.1) & l'opengl un peu plus moderne (3.3 & gles).

https://github.com/raysan5/raylib/blob/ ... src/rlgl.c
https://github.com/raysan5/raylib/blob/ ... src/rlgl.h


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Lun 06/Nov/2017 10:44 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Bonjour G-Rom,

ton lien est carrément intéressant, surtout que c'est en direct. Super !

Mais là, le problème est simple, et c'est Fred qui doit faire sa petite modif, à moins qu'il informe de la preuve qu'il a tout à refaire.

Pour imager, il n'est pas normal que le lave-linge ne démarre que si les volets électriques du séjour sont ouverts, alors que si je ferme les volets avec une lessive en cours, il ne se passe strictement aucun problème.

Les volets électriques, c'est le thème Windows.
Le lave-linge c'est une animation Opengl, et le démarrage du lave-linge c'est F5, ou l'exécution d'une application Opengl.

Je t'assure que tous les calculs de positions des sommets, calculs de normales, rastering, calculs de perspectives, etc... etc... , se font sans buguer : c'est juste le rendu, un peu comme si les volets électriques fermés empêchaient la poudre de lessive de tomber du bac à poudre vers le linge : tout semble fonctionner, mouiller le linge, chauffer le linge, tourner le linge, essorer le linge, le tout dans des timings inchangés, mais pas le lavage/désinfection du linge : le principal !

Là, on a un rectangle noir à la place d'opengl, et si on déplace la fenêtre, et que c'est une horloge à aiguilles, ben, l'horloge à aiguilles opengl s'affiche à l'heure dès qu'on déplace la fenêtre !!!
Il suffit qu'on soit plusieurs à faire observer nos résultats bugués et nos configurations pour que Fred cerne ce menu problème... Je vais faire un truc plus simple...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Lun 06/Nov/2017 13:19 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Voilà, j'ai posté un code de 10 lignes ici : http://www.purebasic.fr/english/viewtopic.php?f=13&t=69575. On verra bien, en espérant que ça augmente les chances de balayer ce bug...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Lun 06/Nov/2017 14:27 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
Citation:
Je t'assure que tous les calculs de positions des sommets, calculs de normales, rastering, calculs de perspectives, etc... etc... , se font sans buguer


Oui, mais comme je te l'ai dit, GL_QUAD est mal supporté sur les nouvelles carte graphique, d'ou les bloc de couleur... utilise 2 triangle et tu règles ton problème.
sur Android aussi GL_QUAD n'est pas supporté , plus personne n'utilise des QUADS, les carte sont câblée pour des triangles. il n'y a donc aucun bug du coté de PB.
et pour les perf, un seul glBindTexture suffit, fait du batching , surtout avec des fontes ! le lien que je t'ai donner plus haut couvre ton besoin.
Regarde avec des triangles , ca fonctionne :

edit : ajout de l'apha
Code:
;******************************************************************************************************************************************
OpenWindow(0, 0, 0, 220, 220, "OpenGL Gadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenGLGadget(0, 10, 10, 200, 200)



Dim Image.i(4)

Image(0) = RGBA(64,128,255,128)
Image(1) = RGBA(0,0,0,0)
Image(2) = RGBA(0,0,0,0)
Image(3) = RGBA(64,128,255,255)

glUINT.i = 0

glGenTextures_(1, @glUINT)
glBindTexture_(#GL_TEXTURE_2D, glUINT)
glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MIN_FILTER, #GL_NEAREST)
glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MAG_FILTER, #GL_NEAREST)
glTexImage2D_(#GL_TEXTURE_2D, 0, 4, 2, 2, 0, #GL_RGBA, #GL_UNSIGNED_BYTE, @Image(0))


glEnable_(#GL_TEXTURE_2D)
glEnable_(#GL_DEPTH_TEST)
glEnable_(#GL_BLEND)
glDepthFunc_(#GL_LEQUAL)                     
glBlendFunc_(#GL_SRC_ALPHA, #GL_ONE_MINUS_SRC_ALPHA)

Repeat
        Event = WaitWindowEvent(16)
        SetGadgetAttribute(Gadget, #PB_OpenGL_SetContext, #True)
         glClear_ (#GL_COLOR_BUFFER_BIT)
        t.D = ElapsedMilliseconds() / 100.0
        glClearColor_(0.0, (1.0 + Cos(t) ) / 2.0, 0.0, 1.0)
        glClearDepth_(1.0)
        glBindTexture_(#GL_TEXTURE_2D, glUINT)       
   
        glLoadIdentity_()
        glScalef_(0.5,0.5,1)
        glRotatef_(45,0,0,1)
       
        glBegin_(#GL_TRIANGLES)
            glTexCoord2f_(0.0, 1.0)
            glVertex3f_( -1.0 , -1.0 , 0.0)     
           
            glTexCoord2f_(1.0, 1.0)
            glVertex3f_( 1.0  , -1.0 , 0.0)           
           
            glTexCoord2f_(1.0, 0.0)
            glVertex3f_( 1.0 ,  1.0, 0.0)           
           
            glTexCoord2f_(0.0, 1.0)
            glVertex3f_(-1.0 , -1.0 , 0.0)   
           
            glTexCoord2f_(0.0, 0.0)
            glVertex3f_(-1.0  , 1.0 , 0.0)   
           
            glTexCoord2f_(1.0, 0.0)
            glVertex3f_( 1.0 ,  1.0 , 0.0)
        glEnd_()
       
       
        SetGadgetAttribute(Gadget, #PB_OpenGL_FlipBuffers, #True)
Until Event = #PB_Event_CloseWindow


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Lun 06/Nov/2017 21:04 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Bonjour G-Rom,

- Ton code sous W8 en mode contraste élevé : même problème. Mais vu les quelques résultats positifs du "vert brillant" sur le forum anglais, je crois que ça va rester comme ça, et que ça semble n'être qu'un cas isolé.

- Ton code sous W8 en mode normal : impeccable (juste corrigé Dim Image.L(3) car sous x64)

- Les quads qu'il faut jeter : Comme tu argumentes et que c'est très facilement modifiable, je vais devoir me faire une raison et mettre ça à jour.

Pour les glBindTexture, j'ai un doute. Je me suis accroché à étudier tous les mélanges possibles entre les couleurs de textures.

Je "bind" deux fois par caractère. 1 pour la forme, l'autre pour la couleur. Tu me conseilles de "batcher". J'imagine qu'il s'agit de découper la texture, grâce aux vecteurs u et v.
Si c'est ça batcher, au moins avec l'option #gl_Texture_2d, je vais avoir un problème de "voisinage", vu que mon programme "Retina" (option tri-fibrillation... Désolé d'ailleurs !) zoome et lisse tout ce qu'il peut, pour que le zoom reste supportable.

Une chose aussi, en terme de performance, est-ce que tu as un benchmark (même rudimentaire) parce que je ne suis pas certain que glBindTexture fasse systématiquement un transfert mémoire (RAM vers Vidéo) ! Il le fait une fois, ça c'est sûr, mais quand on lui refile la même adresse, il n'y a pas une map sous-jacente pour qu'il ne fasse qu'un transfert interne en RAM Vidéo?

En tout cas, merci de t'être penché sur mes difficultés.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Lun 06/Nov/2017 21:41 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 3426
Ollivier a écrit:
Je "bind" deux fois par caractère. 1 pour la forme, l'autre pour la couleur. Tu me conseilles de "batcher". J'imagine qu'il s'agit de découper la texture, grâce aux vecteurs u et v.
Si c'est ça batcher, au moins avec l'option #gl_Texture_2d, je vais avoir un problème de "voisinage", vu que mon programme "Retina" (option tri-fibrillation... Désolé d'ailleurs !) zoome et lisse tout ce qu'il peut, pour que le zoom reste supportable.

Une chose aussi, en terme de performance, est-ce que tu as un benchmark (même rudimentaire) parce que je ne suis pas certain que glBindTexture fasse systématiquement un transfert mémoire (RAM vers Vidéo) ! Il le fait une fois, ça c'est sûr, mais quand on lui refile la même adresse, il n'y a pas une map sous-jacente pour qu'il ne fasse qu'un transfert interne en RAM Vidéo?

En tout cas, merci de t'être penché sur mes difficultés.


oui, de faire le moins d'appel possible , les cartes graphiques moderne sont faite pour traité des milliers voir des millions de triangles, changer les états d'opengl pour chaque appel à un caractère à afficher est contre productif pour la carte graphique, même si toute les unités de texture tiennent dans la carte ( je ne fait pas de transfert RAM/GPU temps réel dans le code, je le fait qu'une fois) , pour ton soucis "de bord" avec une texture atlas , de mémoire il faut "clampé" la texture pour évité les effets de bords.
et l'idéal et de ne pas utilisé les commandes immédiates , mais les VBO , avec glDrawElements() par exemple.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Mar 07/Nov/2017 17:27 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
G-Rom a écrit:
ne pas utilisé les commandes immédiates , mais les VBO , avec glDrawElements() par exemple.
glBindTexture fait effectivement des transferts RAM à chaque fois.

Je vais tenter glDrawArray (trouvé grâce à ta suggestion ci-dessus) pour voir si glBlend peut toujours accompagner (ça fait économiser pas mal de mémoire).

Merci beaucoup pour l'aiguillage.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: PureBasic 5.46 LTS Beta
MessagePosté: Jeu 09/Nov/2017 2:32 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3524
Fausse bonne idée DrawArray. Ça semble fait pour faire de la pluie, une armée en évolution, ou tout ensemble d'objets séparés mais se déplaçant à la même vitesse.

Moi, ça va être DrawRangeElements() qui va être parfait pour faire un traitement de texte.

Je ne trouve, pour l'instant, pas d'utilité pour le vbo en traitement de texte.

En attendant, je vais faire une version "batching" avec ton code (qui me rappelle un tuto de Nehe), mais en supprimant le glBindTexture au sein de la boucle. Tu as dû le mettre pour tester quelque chose...


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 24 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye