Commit b52384b4 by Chris Forbes

Add missing vkGetPhysicalDevicePresentRectanglesKHR function

This wasn't ever called by previous versions of deqp. Test: dEQP-VK.wsi.xlib.surface.query_devgroup_present_modes Bug: b/140182247 Change-Id: Id77bdc726681922b99f3fa8d098cad7853293d29 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35648Tested-by: 's avatarChris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by: 's avatarBen Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent c72c8d76
......@@ -87,6 +87,7 @@ static const std::unordered_map<std::string, PFN_vkVoidFunction> instanceFunctio
MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR),
MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR),
MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR),
MAKE_VULKAN_INSTANCE_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR),
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
// VK_KHR_xlib_surface
......
......@@ -2852,6 +2852,15 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(VkDevice d
return VK_SUCCESS;
}
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects)
{
TRACE("(VkPhysicalDevice physicalDevice = %p, VkSurfaceKHR surface = %p, uint32_t* pRectCount = %p, VkRect2D* pRects = %p)",
physicalDevice, static_cast<void*>(surface), pRectCount, pRects);
return vk::Cast(surface)->getPresentRectangles(pRectCount, pRects);
}
#endif // ! __ANDROID__
#ifdef __ANDROID__
......
......@@ -186,4 +186,27 @@ bool SurfaceKHR::hasAssociatedSwapchain()
return (associatedSwapchain != nullptr);
}
VkResult SurfaceKHR::getPresentRectangles(uint32_t *pRectCount, VkRect2D *pRects) const
{
if (!pRects)
{
*pRectCount = 1;
return VK_SUCCESS;
}
if (*pRectCount < 1)
{
return VK_INCOMPLETE;
}
VkSurfaceCapabilitiesKHR capabilities;
getSurfaceCapabilities(&capabilities);
pRects[0].offset = {0,0};
pRects[0].extent = capabilities.currentExtent;
*pRectCount = 1;
return VK_SUCCESS;
}
}
\ No newline at end of file
......@@ -86,6 +86,8 @@ public:
uint32_t getPresentModeCount() const;
VkResult getPresentModes(uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const;
VkResult getPresentRectangles(uint32_t *pRectCount, VkRect2D *pRects) const;
virtual void attachImage(PresentImage* image) = 0;
virtual void detachImage(PresentImage* image) = 0;
virtual void present(PresentImage* image) = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment