When the framebuffer has separate depth and stencil buffers, and HiZ is not enabled on the depth buffer, mark the framebuffer as unsupported. This happens when trying to create a framebuffer with Z16/S8 because we haven't enabled HiZ on Z16 yet.
Fixes gles2conform test stencil8. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44948 Reported-by: Ian Romanick <[email protected]> Note: This is a candiate for the 8.0 branch. Signed-off-by: Chad Versace <[email protected]> --- src/mesa/drivers/dri/intel/intel_fbo.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index c37075c..45a6827 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -804,6 +804,15 @@ intel_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT; if (stencil_mt->format != MESA_FORMAT_S8) fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT; + if (intel->gen < 7 && depth_mt->hiz_mt == NULL) { + /* Before Gen7, separate depth and stencil buffers can be used + * only if HiZ is enabled. From the Sandybridge PRM, Volume 2, + * Part 1, Bit 3DSTATE_DEPTH_BUFFER.SeparateStencilBufferEnable: + * [DevSNB]: This field must be set to the same value (enabled + * or disabled) as Hierarchical Depth Buffer Enable. + */ + fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED; + } } } -- 1.7.7.4 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
