summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glx/extension_string.c5
-rw-r--r--glx/extension_string.h1
-rw-r--r--glx/glxdri2.c11
3 files changed, 17 insertions, 0 deletions
diff --git a/glx/extension_string.c b/glx/extension_string.c
index 58f930f75..4bef96f0b 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 81b7de372..e7d393297 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 f662b2188..843f603ea 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) {