[Mesa-dev] [PATCH] intel/gen6: Some framebuffers having separate depthstencil should be unsupported

Ian Romanick idr at freedesktop.org
Thu Jan 19 18:33:02 PST 2012


On 01/19/2012 03:09 PM, Chad Versace wrote:
> 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<ian.d.romanick at intel.com>
> Note: This is a candiate for the 8.0 branch.
> Signed-off-by: Chad Versace<chad.versace at linux.intel.com>

Reviewed-and-tested-by: Ian Romanick <ian.d.romanick at intel.com>

> ---
>   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;
> +	 }
>         }
>      }
>



More information about the mesa-dev mailing list