Author Topic: Upload pixels pour rendu soft  (Read 6207 times)

0 Members and 1 Guest are viewing this topic.

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Upload pixels pour rendu soft
« on: 06 October 2011 à 22:30:41 »
Bon voilà, j'aimerais bien faire du rendu soft et je me demande par quel moyen envoyer les pixels le plus rapidement possible.

- OpenGL PBO
- glDrawPixels ou glTexImage2D
- un objet DirectX 9 qui servirait à ça
- GDI ou GDI+ ou SDL ou SFML
- WPF
- un rendu hard DirectShow avec le décodeur de la CG
- ?

Il faudrait dans l'idéal que ça marche vite en 1920x1080
Est-ce que quelqu'un sait quelque chose là dessus ? (sur IRC on m'a dit dx9 mais j'aimerais avoir d'autres avis)
A votre avis ca serait quoi le plus rapide et surtout qui stalle pas toute la carte ?
Est-ce que c'est même possible ?




« Last Edit: 06 October 2011 à 22:33:48 by ponce »

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #1 on: 06 October 2011 à 22:39:15 »
fquake utilise DirectDraw
http://users.skynet.be/fquake/

EDIT: apparemment cette librairie (par le mec de gafferongames) est faite exprès pour ça
http://code.google.com/p/pixeltoaster/
« Last Edit: 07 October 2011 à 01:21:53 by ponce »

Offline latortue

  • Base
    • View Profile
    • punkfloyd
  • Ancienneté: 1988
  • Groupe: punkfloyd
  • Rôle: graphiste
  • Ville: Paris
Re : Upload pixels pour rendu soft
« Reply #2 on: 07 October 2011 à 10:20:27 »
pixeltoaster est effectivement "la suite" de TinyPTC qui elle aussi était destinée à l'affichage de pixels.
"... Ne craignez pas d'être lent, craignez seulement d'être à l'arrêt ..."

Offline krabob

  • Base
    • Pouet.net
    • View Profile
    • www.m4nkind.com
  • Ancienneté: 1994
  • Groupe: Mankind
  • Rôle: code amiga / linux / OpenGL
  • Ville: Toulouse
Re : Upload pixels pour rendu soft
« Reply #3 on: 07 October 2011 à 11:25:44 »
 en rendu software avec le CPU, et des gros bitmap avec des grosse résolution en RGB, fait surtout gaffe aux caches: dés qu'un bitmap dépasse une taille de cache, les perfos s'effondrent. rendre "tuille par tuile" différentes parties du bitmap (ou barre horizontale par barre horizontale ), une fois pour toute par frame est une bonne idée.
 Faire plusieurs passes de "layer" sur tout le bitmap: pas glop en cpu.
Votez comme ça Mélenchon ... ou Clément Wittman, ... ou Eva ! Oo

romain

  • Guest
Re : Upload pixels pour rendu soft
« Reply #4 on: 07 October 2011 à 11:41:16 »
Yeep! PixelToaster c'est pas mal, c'est juste un framebuffer comme à l'ancienne :) Et puis c'est multi-plateforme.

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #5 on: 08 October 2011 à 19:28:24 »
En fouillant un peu, je vais rester sur SDL 1.2 qui a un rendu DirectDraw et un autre GDI, on peut overrider la sélection avec une variable d'environnement.

@krabob: effectivement je compte essayer quelque chose en une passe, après ça serait des updates de tout le buffer à chaque frame. Celà dit, rendre en tilé devrait aider les caches en effet.

Dans l'idéal j'aimerais générer voire uploader les pixels en espace couleur pas RGB avec chroma subsamplée pour prendre moins de place.
« Last Edit: 08 October 2011 à 19:30:25 by ponce »

Offline LittleWhite

Re : Upload pixels pour rendu soft
« Reply #6 on: 08 October 2011 à 19:30:32 »
On pourra voir le résultat ? Car je suis un peu étonné sur ce que vous voulez faire (et je n'ai pas vraiment compris le pourquoi).

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #7 on: 08 October 2011 à 21:22:15 »
Quand ça sera fini.
« Last Edit: 09 October 2011 à 14:23:44 by ponce »

krnl

  • Guest
Re : Upload pixels pour rendu soft
« Reply #8 on: 20 October 2011 à 11:03:47 »
- glDrawPixels: A oublier, y'a rien de pire, meme avec une resolution de 320x240 ca rame
- glTexImage2D: Personnellement, j'ai jamais eu de soucis particulier avec, apres j'ai pas tenté de pousser les perfs a l'extreme
- SDL: De meme
- GDI: C'est pas trop mal pour un simple affichage mais c'est tres vite limite, alors en 1920x1080, j'ose meme pas imaginer.
- TinyPTC: J'en avait beaucoup entendu parler a l'epoque, on me l'avait conseillé en tant qu'alternative de GDI mais jamais testé.

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #9 on: 29 November 2011 à 20:18:50 »
Note pour SDL: placer la variable SDL_VIDEODRIVER à "directx" permet d'avoir un back-end Direct Draw 5 (OOOOLD :) ), de base desactivé, qui donne un avantage marginal mais bon.

En fait j'ai l'impression que SDL accelère en hard que si on crée une surface SDL_HARDWARE, en fullscreen, avec ce driver là.

Ce que j'ai fait pour le moment c'est threader le rendu soft pour faire juste un memcpy dans le buffer de l'écran quand il faut, du coup c'est pas trop le bottleneck. Pas encore testé les overlay YUV hardware avc le driver "directx", en tout cas en soft ça n'avait pas vraiment d'avantage.

Offline LittleWhite

Re : Upload pixels pour rendu soft
« Reply #10 on: 29 November 2011 à 20:29:59 »
Vous parlez de quelle version de la SDL, la 1.2 ou 1.3 ?

Offline maracuja

  • Base
    • View Profile
Re : Upload pixels pour rendu soft
« Reply #11 on: 29 November 2011 à 22:47:24 »
a mon avis la 1.2 car la 1.3 utilise directgraphics non?
« Last Edit: 29 November 2011 à 22:56:35 by maracuja »

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #12 on: 30 November 2011 à 18:21:23 »
Oui 1.2.14.

nystep

  • Guest
Re : Upload pixels pour rendu soft
« Reply #13 on: 02 December 2011 à 13:01:15 »
Je me demandais bêtement si simplement un glTexSubImage2D ça passerai niveau perfs? J'avoue que je ne sais pas trop, je n'ai jamais codé de streaming de texture/video donc...   :-[

Offline ponce

  • Base
    • Pouet.net
    • Coup de coeur
    • View Profile
  • Ancienneté: 2009
Re : Upload pixels pour rendu soft
« Reply #14 on: 03 December 2011 à 22:11:43 »
Surement que si, après c'est comme pour les VBO, difficile de savoir quand c'est double-bufferisé.