summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/dri/dri_screen.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2010-01-18 13:33:08 +0100
committerThomas Hellstrom <thellstrom@vmware.com>2010-01-18 13:39:25 +0100
commit5f2d60a7154f896bb418231662663465269ce9b8 (patch)
tree046292d76033008cdd85279de03714acafebdaf0 /src/gallium/state_trackers/dri/dri_screen.c
parentd773f28ff29a0abbb9f856cb4a3c60fcaeea1d3b (diff)
downloadexternal_mesa3d-5f2d60a7154f896bb418231662663465269ce9b8.zip
external_mesa3d-5f2d60a7154f896bb418231662663465269ce9b8.tar.gz
external_mesa3d-5f2d60a7154f896bb418231662663465269ce9b8.tar.bz2
st/dri: Don't request a fake front if the server adds one automatically.
We use the presence of the getBuffersWithFormat extension function to detect whether the server automatically adds a front. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Diffstat (limited to 'src/gallium/state_trackers/dri/dri_screen.c')
-rw-r--r--src/gallium/state_trackers/dri/dri_screen.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
index cb864d4..11ea28b 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -289,6 +289,8 @@ dri_init_screen2(__DRIscreenPrivate * sPriv)
{
struct dri_screen *screen;
struct drm_create_screen_arg arg;
+ const __DRIdri2LoaderExtension *dri2_ext =
+ sPriv->dri2.loader;
screen = CALLOC_STRUCT(dri_screen);
if (!screen)
@@ -313,6 +315,9 @@ dri_init_screen2(__DRIscreenPrivate * sPriv)
driParseOptionInfo(&screen->optionCache,
__driConfigOptions, __driNConfigOptions);
+ screen->auto_fake_front = dri2_ext->base.version >= 3 &&
+ dri2_ext->getBuffersWithFormat != NULL;
+
return dri_fill_in_modes(screen, 32);
fail:
return NULL;