[Mono-bugs] [Bug 662079] New: OpenGL Depth Buffer is always off

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Jan 3 11:54:53 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=662079

https://bugzilla.novell.com/show_bug.cgi?id=662079#c0


           Summary: OpenGL Depth Buffer is always off
    Classification: Mono
           Product: MonoDroid
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: Class Libraries
        AssignedTo: mkestner at novell.com
        ReportedBy: Benjamin at exDream.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13)
Gecko/20101203 AskTbMYC-ST/3.9.1.14019 Firefox/3.6.13

Tested in Preview 7, 8, 9, and 10. They all have the problem that the
CreateFramebuffer method does not use a GraphicsMode with DepthBuffer on, but
even if we write our own CreateFramebuffer and use a own GraphicsMode, it is
totally ignored in the AndroidGraphicsContext constructor.

There it only sets new int[] { 0x3038 }; (ES1.1) or new int[] { 0x3040, num,
0x3038 }; (ES 2.0), which both do not have the Depth Buffer flag set (0x3038 is
just the end flag and 0x3040 is the ES20 flag).

Without this no depth buffer works on devices that will return a context
without depth buffer (all of our devices we have tested). This is also easy to
test with any OpenGL Sample (GLCube, TexturedCube) from MonoDroid if you just
disable culling (for a cube with culling you don't need depth buffer, so you
will never notice it is missing, but with culling off you can clearly see the
missing depth buffer):

            //GL.Enable (All.CullFace);
            //GL.CullFace (All.Back);
            GL.Disable(All.CullFace);



Reproducible: Always

Steps to Reproduce:
1. Try to use Depth Buffer
2. Does not work, not even overwriting CreateFramebuffer helps
3. because the problem is in the AndroidGraphicsContext method
Actual Results:  
All depth buffer testing fails on devices that return a non-depth buffer
framebuffer.

Expected Results:  
Depth Buffer should work, without it 3D OpenGL rendering is kinda useless.

We are trying to fix this on our own for now by providing our own
CreateFrameBuffer, GraphicsMode and AndroidGraphicContext classes and correctly
implementing all the flags. If you are interested in our solution, I can post
it once we have it working.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list