Summary: | Fail to render to different faces of depth-stencil cube map | ||
---|---|---|---|
Product: | Mesa | Reporter: | maister |
Component: | Mesa core | Assignee: | Nanley Chery <nanleychery> |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | ||
Version: | 13.0 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
APItrace with GL_R8 cube.
APItrace with DEPTH24_STENCIL8 cube. Expected result (PNG) |
Created attachment 97586 [details]
APItrace with DEPTH24_STENCIL8 cube.
Created attachment 97587 [details]
Expected result (PNG)
I've been able to reproduce this with a software rasterizer (via LIBGL_ALWAYS_SOFTWARE=1) on Mesa 13. Thank you for this bug report. This bug has recently been fixed by the following commit in the master branch of the Mesa git repo: commit 63318d34acd4a5edb271d57adf3b01e2e52552f8 Author: Nanley Chery <nanley.g.chery@intel.com> Date: Tue Nov 15 16:42:23 2016 -0800 mesa/fbobject: Update CubeMapFace when reusing textures Framebuffer attachments can be specified through FramebufferTexture* calls. Upon specifying a depth (or stencil) framebuffer attachment that internally reuses a texture, the cube map face of the new attachment would not be updated (defaulting to TEXTURE_CUBE_MAP_POSITIVE_X). Fix this issue by actually updating the CubeMapFace field. This bug manifested itself in BindFramebuffer calls performed on framebuffers whose stencil attachments internally reused a depth texture. When binding a framebuffer, we walk through the framebuffer's attachments and update each one's corresponding gl_renderbuffer. Since the framebuffer's depth and stencil attachments may share a gl_renderbuffer and the walk visits the stencil attachment after the depth attachment, the uninitialized CubeMapFace forced rendering to TEXTURE_CUBE_MAP_POSITIVE_X. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77662 Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 97585 [details] APItrace with GL_R8 cube. Rendering to an offscreen GL_R8 cubemap (with d24s8 renderbuffer) works, but when trying to render to all faces of a an GL_DEPTH24_STENCIL8 cubemap (no color), only +X face appears to be renderable. I've attached two traces (apitrace 4.0) when using GL_R8 cubemap and GL_DEPTH24_STENCIL8. I use 3.1 core (latest available on my card).