From 23fe960be0d0d27fcd676534c692ab164f854acb Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 26 Aug 2009 13:45:31 +0200 Subject: st/xorg: Find out correct type for depth stencil buffers --- src/gallium/state_trackers/xorg/xorg_dri2.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/gallium/state_trackers/xorg/xorg_dri2.c') diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c index f089965b03..e72710befb 100644 --- a/src/gallium/state_trackers/xorg/xorg_dri2.c +++ b/src/gallium/state_trackers/xorg/xorg_dri2.c @@ -88,7 +88,8 @@ driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count) struct pipe_texture template; memset(&template, 0, sizeof(template)); template.target = PIPE_TEXTURE_2D; - template.format = PIPE_FORMAT_S8Z24_UNORM; + template.format = ms->ds_depth_bits_last ? + PIPE_FORMAT_S8Z24_UNORM : PIPE_FORMAT_Z24S8_UNORM; pf_get_block(template.format, &template.block); template.width[0] = pDraw->width; template.height[0] = pDraw->height; @@ -270,6 +271,15 @@ driScreenInit(ScreenPtr pScreen) dri2info.DestroyBuffers = driDestroyBuffers; dri2info.CopyRegion = driCopyRegion; + ms->d_depth_bits_last = + ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_X8Z24_UNORM, + PIPE_TEXTURE_2D, + PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0); + ms->ds_depth_bits_last = + ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_S8Z24_UNORM, + PIPE_TEXTURE_2D, + PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0); + return DRI2ScreenInit(pScreen, &dri2info); } -- cgit v1.2.3