begin process at 2012 05 25 05:39:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

buffer directx


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

buffer directx

jeudi 3 décembre 2009 à 18:36:27 | buffer directx

mana

bonjour,
je travail avec des image dont l'adresse est un pointeur directx(dans la ram du pc , pas cette de la carte vidéo), mais l'accès a la mémoire est très lente.
il y a t-il une possibilité d'accélérer la lecture et l'écriture de cette zone mémoire .


sur mon pc la copie du zone mémoire (800*600*32) vers une autre zone mémoire met 2 ms contre 200ms d'une zone 'directx' vers une mémoire que j'ai réservé
merci.
mercredi 9 décembre 2009 à 14:58:46 | Re : buffer directx

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

c'est louche ton truc.

A moins que la zone mémoire ne soit pas dans le cache il est étonnant de retrouver des valeurs de chrono aussi différentes.

quelles sont les valeurs des pointeurs ? Cela te permettra déjà de determier dans quelle partie de la mémoire ils se trouvent.

la mémoire se retrouve peut-être en swap.

La mémoire où tu ecris, elle est réservée ou allouée ?

@++
mercredi 9 décembre 2009 à 19:21:02 | Re : buffer directx

mana

bonjour,

je ne sais pas si la mémoire est réservée ou allouée, je récupère juste
l'adresse du buffer.
(ps : c'est quoi la différence entre réservée ou allouée)

la valeur des pointeurs sont :
00B0xxxx
056xxxxx

c'est surtout la lecture de ses zones mémoires qui sont très lente
(l'asm ni change rien)

voici ce que j'utilise comme programme (ne pas se fié à la syntaxe)

cette fonction est tres lente(plus de 200ms pour une image de 800x600)
void copy_image_ram(){
int img=new[long,haut]
memcpy(img,bufdx,(long*haut))
}


(2 ms pour cette fonction)
void gris(img){
mov esi,long*hhaut
mov ebx,img
boucle
mov eax,[ebx]
//rgb=(r+g+b)/3
mov [ebx],eax
add ebx,4
sub esi,1
jne boucle
}


(10 ms pour celle-ci)
void copy_image_buf(){
mov eax,bufdx
mov ebx,img
mov esi,long*hhaut
boucle
mov [ebx],[eax]
add eax,4
add ebx,4
sub esi,1
jne boucle
}

mardi 15 décembre 2009 à 09:17:59 | Re : buffer directx

patatalo

Membre Club Administrateur CodeS-SourceS
re,

Quand la mémoire est réservée, elle est allouée en emplacement virtuel uniquement. Quand elle est allouée, elle l'est physiquement.

Verifie lorsque tu alloue ton buffer si il n'y aurait pas un flag qui permettrait de mettre la mémoire en non discardable ou autres...

tu peux également tenter un gestionnaire d'exception car il ne m'étonnerait pas que des exceptions type PAGE_NOT_PRESENT s'executent.

@++


Cette discussion est classée dans : buffer, pc, directx, zone, mémoire


Répondre à ce message

Sujets en rapport avec ce message

exercice [ par susur2002 ] afficher le contenu du registre du didact 68000 sous forme de 1 et de 0 sur l'ecran du pc en utilisant le port 3 du didact.on utilisera ce registre di logiciel boot [ par TRAX44 ] Salut, je voudrai faire booter mon pc sur un logiciel fait en asm et qui n'aurai pas besoin de windows ni de ms-dos afin d'utiliser toute la capacité RS-232 [ par Benjalien ] Bonjour à tous, je cherche activement qqn qui pourrait m'aider à créer un lien entre 2 pc par ce fameux RS-232. Je sais qu'il y a une source qui a l'a Rs-232 [ par Benjalien ] Bonjour à tous, je cherche activement qqn qui pourrait m'aider à créer un lien entre 2 pc par ce fameux RS-232. Je sais qu'il y a une source qui a l'a débutant qui a un prob avec l'int21h [ par sibi12 ] salut voivi mon code : mov ah, 09h mov dx, offset buffer int 21hbuffer a été déclaré comme ca: buffer db 50 dup(0)le compilateur me met faire un dump mémoire en asm [ par olly60 ] comment peut on faire un dump mémoire en assembleur?? je bloque dessus étant débutant dans ce language!! j'ai seulement besoin de l'algo svpmerci prob mode protégé pour graphisme [ par prunkdump ] Bonjours afin de testé un de mes programmes qui passe en mode protégé j'ai éssayé de renplir en 32bits le buffer d'écran en mode graphique 13h. Au déb Access violation et ecriture de variable [ par anthraxx ] J'ai une question qui me traKsse avec MASM:quand je declare un tampon comme cela:buffer db 100 dup(0)et dans le code, j'essaye d'ecrire dedans, avec u Relancer un PC éteint électriquement ? [ par alimz ] BonjourJ'aurais besoin d'une technique logiciel me permettant de rebooter un PC éteint électriquement.C'est un PC destiné à la production, il est inst Creation commande port série [ par hypotamtam ] Bonjours, je suis novice dans l'electronique et je voudrais savoir si quelqu'un pourrais m'aide ou me donner des liens internet.Je souhaiterai juste s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales