This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

graphic rendering hierarchy?

Hello,

     I debugged my graphic application via mali debugger and I get confused with the information I captured. Here's my questions.

     1. a frame contains several render passes(eg. render pass 0, render pass 1, ...) and framebuffers(eg. framebuffer 0, framebuffer 1, ...). What is a render pass and a framebuffer(framebuffer 0, framebuffer 1, ...) mean? Does it mean a single object in a frame?

     2. I've read a blog https://community.arm.com/groups/arm-mali-graphics/blog/2014/04/28/mali-graphics-performance-2-how-to-correctly-handle-framebuffers, it's impressive. There are two render targets in OpenGL ES, on-screen render target and off-screen render target. As is known, Mali GPU has two framebuffers on hardware, FB0 and FB1. What is the relationship between render targets and framebuffer(FB0 and FB1)?

Parents
  • What is a render pass?

    A render pass is a sequence of drawing operations which produce an single rendered image (may be off-screen or on-screen).

    What is a framebuffer object?

    A container for the memory which a render-pass is writing; e.g. may consist of one (or more) color buffers, a depth buffer, and a stencil buffer.

    There are two render targets in OpenGL ES, on-screen render target and off-screen render target.

    OpenGL ES has two *types* of render target, but there can be multiple instances of off-screen render targets (this is application controlled). This can be via the creation of multiple framebuffer objects, or by changing the attachments of an existing framebuffer object.

    As is known, Mali GPU has two framebuffers on hardware, FB0 and FB1.

    Don't confuse the system framebuffers in FBDEV (or other) window systems and OpenGL ES framebuffer objects - they are not related.

    All window surface framebuffers are mapped to the default framebuffer object (FBO 0) in OpenGL ES, EGL and the window system will determine how the phyysical framebuffers are actually used - this is transaparent to the application.

    All non-zero framebuffer objects in OpenGL ES are created by the application, and mapped to named framebuffer objects with ID > 0.

    HTH,

    Pete

Reply
  • What is a render pass?

    A render pass is a sequence of drawing operations which produce an single rendered image (may be off-screen or on-screen).

    What is a framebuffer object?

    A container for the memory which a render-pass is writing; e.g. may consist of one (or more) color buffers, a depth buffer, and a stencil buffer.

    There are two render targets in OpenGL ES, on-screen render target and off-screen render target.

    OpenGL ES has two *types* of render target, but there can be multiple instances of off-screen render targets (this is application controlled). This can be via the creation of multiple framebuffer objects, or by changing the attachments of an existing framebuffer object.

    As is known, Mali GPU has two framebuffers on hardware, FB0 and FB1.

    Don't confuse the system framebuffers in FBDEV (or other) window systems and OpenGL ES framebuffer objects - they are not related.

    All window surface framebuffers are mapped to the default framebuffer object (FBO 0) in OpenGL ES, EGL and the window system will determine how the phyysical framebuffers are actually used - this is transaparent to the application.

    All non-zero framebuffer objects in OpenGL ES are created by the application, and mapped to named framebuffer objects with ID > 0.

    HTH,

    Pete

Children