(11-05-2012, 04:52 PM)gid15 Wrote: I can understand how hard it can be to use new OpenGL features... to find its way between understanding the documentation and avoiding driver bugs ;-). I'm curious to see your new approach when it is releasedhere is the image about performance events for lines.pbp using Nvidia Performance Analyser :
- each color represents a thread for windows : cyan is gpu_Thread, green is cpu_Thread (Allegrex interpreter using fibers), blue is lcd_Vsync (a 60 Hz vsync thread)
- vertical white/grey bars represents 1 ms
- vsync is 60 Hz so 16.666 ms
* pspe4all_GE_Load is a glTexImage2D (from vram memory)
* pspe4all_GE_Store is a glGetTexImage2D (to vram memory)
* pspe4all_Display is when lcd_Vsync asks for a display rendering from memory
EDIT: now I also use a transform feedback for converting a RECTANGLE primitive into 2 TRIANGLE_STRIP primitives by passing the feedback buffer of the vertex decoder to it directly. The primitive drawing is also now using the final feedback buffer to draw the primitives. Beforehand, the feedback buffer was retrieved into a decoded vertex array in pc memory then uploaded into a vertex buffer object when drawing primitives. See the new timings here :