From c671e935e7c44d4711ba9588ee96cb9796b879e6 Mon Sep 17 00:00:00 2001 From: Daniel Czarnowski Date: Mon, 21 Oct 2013 19:48:38 +0200 Subject: [PATCH] glx: Enable GLX_ARB_fbconfig_float for DRI2 drivers v2 (idr): Maintain sort order of extension list. Fixed rebase error (comment header for initializeExtensions was in front of __glXDRIinvalidateBuffers). Re-write commit message. Signed-off-by: Daniel Czarnowski Signed-off-by: Ian Romanick Reviewed-by: Ian Romanick --- glx/extension_string.c | 5 +++++ glx/extension_string.h | 1 + glx/glxdri2.c | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/glx/extension_string.c b/glx/extension_string.c index 58f930f..4bef96f 100644 --- a/glx/extension_string.c +++ b/glx/extension_string.c @@ -65,12 +65,17 @@ struct extension_info { unsigned char driver_support; }; +/** + * List of known GLX Extensions. + * The last Y/N switch informs whether the support of this extension is always enabled. + */ static const struct extension_info known_glx_extensions[] = { /* GLX_ARB_get_proc_address is implemented on the client. */ /* *INDENT-OFF* */ { GLX(ARB_create_context), VER(0,0), N, }, { GLX(ARB_create_context_profile), VER(0,0), N, }, { GLX(ARB_create_context_robustness), VER(0,0), N, }, + { GLX(ARB_fbconfig_float), VER(0,0), N, }, { GLX(ARB_framebuffer_sRGB), VER(0,0), N, }, { GLX(ARB_multisample), VER(1,4), Y, }, diff --git a/glx/extension_string.h b/glx/extension_string.h index 81b7de3..e7d3932 100644 --- a/glx/extension_string.h +++ b/glx/extension_string.h @@ -39,6 +39,7 @@ enum { ARB_create_context_bit = 0, ARB_create_context_profile_bit, ARB_create_context_robustness_bit, + ARB_fbconfig_float_bit, ARB_framebuffer_sRGB_bit, ARB_multisample_bit, EXT_create_context_es2_profile_bit, diff --git a/glx/glxdri2.c b/glx/glxdri2.c index f662b21..843f603 100644 --- a/glx/glxdri2.c +++ b/glx/glxdri2.c @@ -845,6 +845,11 @@ glxDRILeaveVT(ScrnInfoPtr scrn) scrn->LeaveVT = glxDRILeaveVT; } +/** + * Initialize extension flags in glx_enable_bits when a new screen is created + * + * @param screen The screen where glx_enable_bits are to be set. + */ static void initializeExtensions(__GLXDRIscreen * screen) { @@ -889,6 +894,12 @@ initializeExtensions(__GLXDRIscreen * screen) LogMessage(X_INFO, "AIGLX: enabled GLX_EXT_framebuffer_sRGB\n"); } + /* enable ARB_fbconfig_float extension (even if there are no float fbconfigs) */ + { + __glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_fbconfig_float"); + LogMessage(X_INFO, "AIGLX: enabled GLX_ARB_fbconfig_float\n"); + } + for (i = 0; extensions[i]; i++) { #ifdef __DRI_READ_DRAWABLE if (strcmp(extensions[i]->name, __DRI_READ_DRAWABLE) == 0) { -- 2.7.4