<div dir="ltr"><div>This is an update to allow applying the patch on latest HEAD.<br><br></div>All other related patches should apply clearly and do not need an update.<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/5/16 Tomasz Lis <span dir="ltr"><<a href="mailto:listom@gmail.com" target="_blank">listom@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">From: Tomasz Lis <<a href="mailto:tomasz.lis@intel.com">tomasz.lis@intel.com</a>><br>
<br>
Enables the fbconfig_float extension in list of supported extensions,<br>
and adds it to known extensions table.<br>
<br>
</div>Signed-off-by: Tomasz Lis <<a href="mailto:listom@gmail.com">listom@gmail.com</a>><br>
<div class="im">---<br>
 composite/compalloc.c  |    3 +++<br>
 glx/extension_string.c |    5 +++++<br>
 glx/extension_string.h |    1 +<br>
 glx/glxdri2.c          |   10 ++++++++++<br>
 4 files changed, 19 insertions(+)<br>
<br>
diff --git a/composite/compalloc.c b/composite/compalloc.c<br>
index cc69c68..46e14bf 100644<br>
--- a/composite/compalloc.c<br>
+++ b/composite/compalloc.c<br>
@@ -565,6 +565,9 @@ compNewPixmap(WindowPtr pWin, int x, int y, int w, int h)<br>
         XID inferiors = IncludeInferiors;<br>
         int error;<br>
<br>
+        if (!pSrcFormat || !pDstFormat) /* Might happen if the format is not supported by server */<br>
+            return 0;<br>
+<br>
         PicturePtr pSrcPicture = CreatePicture(None,<br>
                                                &pParent->drawable,<br>
                                                pSrcFormat,<br>
diff --git a/glx/extension_string.c b/glx/extension_string.c<br>
</div>index 58f930f..fad5c84 100644<br>
<div class="im">--- a/glx/extension_string.c<br>
+++ b/glx/extension_string.c<br>
@@ -65,6 +65,10 @@ struct extension_info {<br>
     unsigned char driver_support;<br>
 };<br>
<br>
+/**<br>
+ * List of known GLX Extensions.<br>
+ * The last Y/N switch informs whether the support of this extension is always enabled.<br>
+ */<br>
 static const struct extension_info known_glx_extensions[] = {<br>
 /*   GLX_ARB_get_proc_address is implemented on the client. */<br>
     /* *INDENT-OFF* */<br>
@@ -74,6 +78,7 @@ static const struct extension_info known_glx_extensions[] = {<br>
</div>     { GLX(ARB_framebuffer_sRGB),        VER(0,0), N, },<br>
<div class="im">     { GLX(ARB_multisample),             VER(1,4), Y, },<br>
<br>
+    { GLX(ARB_fbconfig_float),          VER(1,3), N, },<br>
     { GLX(EXT_create_context_es2_profile), VER(0,0), N, },<br>
</div>     { GLX(EXT_framebuffer_sRGB),        VER(0,0), N, },<br>
<div class="im">     { GLX(EXT_import_context),          VER(0,0), Y, },<br>
diff --git a/glx/extension_string.h b/glx/extension_string.h<br>
</div>index 81b7de3..3bec1b1 100644<br>
<div class="im">--- a/glx/extension_string.h<br>
+++ b/glx/extension_string.h<br>
@@ -41,6 +41,7 @@ enum {<br>
     ARB_create_context_robustness_bit,<br>
     ARB_framebuffer_sRGB_bit,<br>
     ARB_multisample_bit,<br>
+    ARB_fbconfig_float_bit,<br>
     EXT_create_context_es2_profile_bit,<br>
</div>     EXT_import_context_bit,<br>
     EXT_texture_from_pixmap_bit,<br>
diff --git a/glx/glxdri2.c b/glx/glxdri2.c<br>
index 8a1fa41..2315761 100644<br>
<div class="HOEnZb"><div class="h5">--- a/glx/glxdri2.c<br>
+++ b/glx/glxdri2.c<br>
@@ -634,6 +634,10 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,<br>
     return &context->base;<br>
 }<br>
<br>
+/**<br>
+ * Initializes extensions flags in glx_enable_bits when a new screen is created.<br>
+ * @param screen The screen where glx_enable_bits are to be set.<br>
+ */<br>
 static void<br>
 __glXDRIinvalidateBuffers(DrawablePtr pDraw, void *priv, XID id)<br>
 {<br>
@@ -889,6 +893,12 @@ initializeExtensions(__GLXDRIscreen * screen)<br>
         LogMessage(X_INFO, "AIGLX: enabled GLX_EXT_framebuffer_sRGB\n");<br>
     }<br>
<br>
+    /* enable ARB_fbconfig_float extension (even if there are no float fbconfigs) */<br>
+    {<br>
+        __glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_fbconfig_float");<br>
+        LogMessage(X_INFO, "AIGLX: enabled GLX_ARB_fbconfig_float\n");<br>
+    }<br>
+<br>
     for (i = 0; extensions[i]; i++) {<br>
 #ifdef __DRI_READ_DRAWABLE<br>
         if (strcmp(extensions[i]->name, __DRI_READ_DRAWABLE) == 0) {<br>
--<br>
1.7.9.5<br>
<br>
</div></div></blockquote></div><br></div>