Forums Développement Multimédia

Aller au contenu

Program3D.upload() qui rame

CODE Actionscript

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1 sealjay

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 30 November 2013 - 12:41 PM

Bonjour à tous,

J'ai écrit mon propre frameWork pour faire du rendu 2D de sprite animés.
Il fonctionne très bien sur la plupart des devices mais récement je suis tombé sur un cas qui me perturbe.

En testant sur un tablette ultra bas de gamme me suis rendu compte que l'appli se bloquaient des l'upload du couple vertex/fragment shader.

En faisant des test me suis rendu compte que seulement sur ce type de tablette, l'upload prend dans les 600 ms contre 1 ms sur d'autres pas franchement puissantes.

Au final je me suis rendu compte que le soucis venait des mask défini dans les fonctions mov, mul, div etc... qui font ramer.

Par exemple ces shaders tous identiques, sauf les mask (il ne font rien, c'est juste pour tester)

Citation

"mov vt0, vc2",
"add vt0.x, vc2, va1",
"add vt0.x, vt0, va1",
"add vt0.y, vt0, va2",
"add vt0.y, vt0, vc0",
"mov vt0.z, vt0",
"add vt0.y, vt0, va2",
"mov vt0.y, vt0",
"mov vt0.z, vt0",
"add vt0.x, vt0, vt0",
"add vt0.x, vt0, va2",
"add vt0.y, vt0, vc3",
"add vt0.y, vt0, vc0",
"mov vt0.w, vt0",
"add vt0.z, vt0, vt0",

"mov v0, vt0",
"mov op0, vt0",


ou


"mov vt0, vc2",
"add vt0.xy, vc2.z, va1.z",
"add vt0.xy, vt0.x, va1.w",
"add vt0.xy, vt0.x, va2.x",
"add vt0.xy, vt0.y, vc0.y",
"mov vt0.xy, vt0.y",
"add vt0.xy, vt0.z, va2.x",
"mov vt0.xy, vt0.y",
"mov vt0.xy, vt0.y",
"add vt0.xy, vt0.y, vt0.z",
"add vt0.xy, vt0.x, va2.y",
"add vt0.xy, vt0.x, vc3.z",
"add vt0.xy, vt0.y, vc0.y",
"mov vt0.xy, vt0.y",
"add vt0.xy, vt0.y, vt0.w",

"mov v0, vt0",
"mov op0, vt0",


ou


"add vt0.xxxx, vc2.z, va1.z",
"add vt0.xxxx, vt0.x, va1.w",
"add vt0.xxxx, vt0.x, va2.x",
"add vt0.xxxx, vt0.y, vc0.y",
"mov vt0.xxxx, vt0.y",
"add vt0.xxxx, vt0.z, va2.x",
"mov vt0.xxxx, vt0.y",
"mov vt0.xxxx, vt0.y",
"add vt0.xxxx, vt0.y, vt0.z",
"add vt0.xxxx, vt0.x, va2.y",
"add vt0.xxxx, vt0.x, vc3.z",
"add vt0.xxxx, vt0.y, vc0.y",
"mov vt0.xxxx, vt0.y",
"add vt0.xxxx, vt0.y, vt0.w",

"mov v0, vt0",
"mov op0, vt0",



Mettent dans les 600 ms quand je fais un :


_program = context.createProgram();
_program.upload(vsAssembler.agalcode,vfAssembler.agalcode)
 


Alors que ce même shader, identique mais sans les bit mask ne pose aucun soucis :

Citation

"mov vt0, vc2",
"add vt0, vc2.z, va1.z",
"add vt0, vt0.x, va1.w",
"add vt0, vt0.x, va2.x",
"add vt0, vt0.y, vc0.y",
"mov vt0, vt0.y",
"add vt0, vt0.z, va2.x",
"mov vt0, vt0.y",
"mov vt0, vt0.y",
"add vt0, vt0.y, vt0.z",
"add vt0, vt0.x, va2.y",
"add vt0, vt0.x, vc3.z",
"add vt0, vt0.y, vc0.y",
"mov vt0, vt0.y",
"add vt0, vt0.y, vt0.w",

"mov v0, vt0",
"mov op0, vt0",


Est-ce que l'un d'entre vous aurez eu un soucis similaire ou lu un truc du genre sur le net ?

Merci à tous.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)