<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Nov 9, 2016 at 10:10 AM, Emil Velikov <span dir="ltr"><<a href="mailto:emil.l.velikov@gmail.com" target="_blank">emil.l.velikov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Emil Velikov <<a href="mailto:emil.velikov@collabora.com">emil.velikov@collabora.com</a>><br>
<br>
Vulkan has introduced the consept of .specVersion which can be used to<br>
attribute changes of the said extension.<br>
<br>
The current loader does not check the value, thus it have gone unnoticed<br>
that the driver exposes an old version of the following extensions:<br>
<br>
VK_KHR_xcb_surface        (Rev 6)<br>
VK_KHR_xlib_surface       (Rev 6)<br>
VK_KHR_wayland_surface    (Rev 5)<br>
- Updated the surface create function to take a pCreateInfo structure<br>
<br>
VK_KHR_swapchain          (Rev 68)<br>
- Moved the "validity" include for vkAcquireNextImage to be in its proper<br>
  place, after the prototype and list of parameters.<br>
...<br>
<br>
According to the documentation:<br>
<br>
  * pname:specVersion is the version of this extension.<br>
    It is an integer, incremented with backward compatible changes.<br>
<br>
Based on the history of vk.xml the above (latest) revision has been<br>
available since Vulkan 1.0 so even if they were any backwards<br>
incompatible change(s) [as hinted by the revision log] those should be<br>
safe.<br></blockquote><div><br></div><div>Thanks for bumping the versions.<br><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Cc: "13.0" <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.<wbr>freedesktop.org</a>><br>
Cc: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
Signed-off-by: Emil Velikov <<a href="mailto:emil.velikov@collabora.com">emil.velikov@collabora.com</a>><br>
---<br>
Not 100% sure on the "can one break ABI with .specVersion updates" part,<br>
yet considering the loader does not check the number it seems to be the<br>
case.<br></blockquote><div><br>You can't.  However, as you said, the latest revision has been available
 since 1.0 and there was lots of API/ABI breakage pre-1.0.<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Otherwise ... we'll be getting stack corruption all over the place ;-)<br>
---<br>
 src/intel/vulkan/anv_device.c | 8 ++++----<br>
 1 file changed, 4 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/intel/vulkan/anv_device.<wbr>c b/src/intel/vulkan/anv_device.<wbr>c<br>
index fcbe587..d2ab992 100644<br>
--- a/src/intel/vulkan/anv_device.<wbr>c<br>
+++ b/src/intel/vulkan/anv_device.<wbr>c<br>
@@ -203,19 +203,19 @@ static const VkExtensionProperties global_extensions[] = {<br>
 #ifdef VK_USE_PLATFORM_XCB_KHR<br>
    {<br>
       .extensionName = VK_KHR_XCB_SURFACE_EXTENSION_<wbr>NAME,<br>
-      .specVersion = 5,<br>
+      .specVersion = 6,<br>
    },<br>
 #endif<br>
 #ifdef VK_USE_PLATFORM_XLIB_KHR<br>
    {<br>
       .extensionName = VK_KHR_XLIB_SURFACE_EXTENSION_<wbr>NAME,<br>
-      .specVersion = 5,<br>
+      .specVersion = 6,<br>
    },<br>
 #endif<br>
 #ifdef VK_USE_PLATFORM_WAYLAND_KHR<br>
    {<br>
       .extensionName = VK_KHR_WAYLAND_SURFACE_<wbr>EXTENSION_NAME,<br>
-      .specVersion = 4,<br>
+      .specVersion = 5,<br>
    },<br>
 #endif<br>
 };<br>
@@ -223,7 +223,7 @@ static const VkExtensionProperties global_extensions[] = {<br>
 static const VkExtensionProperties device_extensions[] = {<br>
    {<br>
       .extensionName = VK_KHR_SWAPCHAIN_EXTENSION_<wbr>NAME,<br>
-      .specVersion = 67,<br>
+      .specVersion = 68,<br>
    },<br>
 };<br>
<span class="gmail-HOEnZb"><font color="#888888"><br>
--<br>
2.10.2<br>
<br>
</font></span></blockquote></div><br></div></div>