Commit 6cad7736 by Jamie Madill Committed by Commit Bot

Vulkan: Remove vk::ErrorOrResult.

The ErrorOrResult pattern doesn't help much. Removing it enables the Error passing refactor in the Vulkan back-end. Bug: angleproject:2713 Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005 Reviewed-on: https://chromium-review.googlesource.com/1128919 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
parent 84c11c53
...@@ -559,7 +559,7 @@ vk::Error RendererVk::initializeDevice(uint32_t queueFamilyIndex) ...@@ -559,7 +559,7 @@ vk::Error RendererVk::initializeDevice(uint32_t queueFamilyIndex)
return vk::NoError(); return vk::NoError();
} }
vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKHR surface) vk::Error RendererVk::selectPresentQueueForSurface(VkSurfaceKHR surface, uint32_t *presentQueueOut)
{ {
// We've already initialized a device, and can't re-create it unless it's never been used. // We've already initialized a device, and can't re-create it unless it's never been used.
// TODO(jmadill): Handle the re-creation case if necessary. // TODO(jmadill): Handle the re-creation case if necessary.
...@@ -572,7 +572,11 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH ...@@ -572,7 +572,11 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH
ANGLE_VK_TRY(vkGetPhysicalDeviceSurfaceSupportKHR(mPhysicalDevice, mCurrentQueueFamilyIndex, ANGLE_VK_TRY(vkGetPhysicalDeviceSurfaceSupportKHR(mPhysicalDevice, mCurrentQueueFamilyIndex,
surface, &supportsPresent)); surface, &supportsPresent));
return (supportsPresent == VK_TRUE); if (supportsPresent == VK_TRUE)
{
*presentQueueOut = mCurrentQueueFamilyIndex;
return vk::NoError();
}
} }
// Find a graphics and present queue. // Find a graphics and present queue.
...@@ -598,7 +602,8 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH ...@@ -598,7 +602,8 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH
ANGLE_VK_CHECK(newPresentQueue.valid(), VK_ERROR_INITIALIZATION_FAILED); ANGLE_VK_CHECK(newPresentQueue.valid(), VK_ERROR_INITIALIZATION_FAILED);
ANGLE_TRY(initializeDevice(newPresentQueue.value())); ANGLE_TRY(initializeDevice(newPresentQueue.value()));
return newPresentQueue.value(); *presentQueueOut = newPresentQueue.value();
return vk::NoError();
} }
std::string RendererVk::getVendorString() const std::string RendererVk::getVendorString() const
......
...@@ -55,7 +55,7 @@ class RendererVk : angle::NonCopyable ...@@ -55,7 +55,7 @@ class RendererVk : angle::NonCopyable
VkQueue getQueue() const { return mQueue; } VkQueue getQueue() const { return mQueue; }
VkDevice getDevice() const { return mDevice; } VkDevice getDevice() const { return mDevice; }
vk::ErrorOrResult<uint32_t> selectPresentQueueForSurface(VkSurfaceKHR surface); vk::Error selectPresentQueueForSurface(VkSurfaceKHR surface, uint32_t *presentQueueOut);
vk::Error finish(const gl::Context *context); vk::Error finish(const gl::Context *context);
vk::Error flush(const gl::Context *context, vk::Error flush(const gl::Context *context,
......
...@@ -322,10 +322,10 @@ egl::Error WindowSurfaceVk::initialize(const egl::Display *display) ...@@ -322,10 +322,10 @@ egl::Error WindowSurfaceVk::initialize(const egl::Display *display)
vk::Error WindowSurfaceVk::initializeImpl(RendererVk *renderer) vk::Error WindowSurfaceVk::initializeImpl(RendererVk *renderer)
{ {
gl::Extents windowSize; gl::Extents windowSize;
ANGLE_TRY_RESULT(createSurfaceVk(renderer), windowSize); ANGLE_TRY(createSurfaceVk(renderer, &windowSize));
uint32_t presentQueue = 0; uint32_t presentQueue = 0;
ANGLE_TRY_RESULT(renderer->selectPresentQueueForSurface(mSurface), presentQueue); ANGLE_TRY(renderer->selectPresentQueueForSurface(mSurface, &presentQueue));
ANGLE_UNUSED_VARIABLE(presentQueue); ANGLE_UNUSED_VARIABLE(presentQueue);
const VkPhysicalDevice &physicalDevice = renderer->getPhysicalDevice(); const VkPhysicalDevice &physicalDevice = renderer->getPhysicalDevice();
......
...@@ -137,7 +137,7 @@ class WindowSurfaceVk : public SurfaceImpl, public vk::CommandGraphResource ...@@ -137,7 +137,7 @@ class WindowSurfaceVk : public SurfaceImpl, public vk::CommandGraphResource
VkInstance mInstance; VkInstance mInstance;
private: private:
virtual vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) = 0; virtual vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) = 0;
vk::Error initializeImpl(RendererVk *renderer); vk::Error initializeImpl(RendererVk *renderer);
vk::Error nextSwapchainImage(RendererVk *renderer); vk::Error nextSwapchainImage(RendererVk *renderer);
......
...@@ -24,7 +24,7 @@ WindowSurfaceVkAndroid::WindowSurfaceVkAndroid(const egl::SurfaceState &surfaceS ...@@ -24,7 +24,7 @@ WindowSurfaceVkAndroid::WindowSurfaceVkAndroid(const egl::SurfaceState &surfaceS
{ {
} }
vk::ErrorOrResult<gl::Extents> WindowSurfaceVkAndroid::createSurfaceVk(RendererVk *renderer) vk::Error WindowSurfaceVkAndroid::createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut)
{ {
VkAndroidSurfaceCreateInfoKHR createInfo; VkAndroidSurfaceCreateInfoKHR createInfo;
...@@ -39,7 +39,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkAndroid::createSurfaceVk(RendererV ...@@ -39,7 +39,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkAndroid::createSurfaceVk(RendererV
int32_t height = ANativeWindow_getHeight(mNativeWindowType); int32_t height = ANativeWindow_getHeight(mNativeWindowType);
ANGLE_VK_CHECK(width > 0 && height > 0, VK_ERROR_INITIALIZATION_FAILED); ANGLE_VK_CHECK(width > 0 && height > 0, VK_ERROR_INITIALIZATION_FAILED);
return gl::Extents(width, height, 0); *extentsOut = gl::Extents(width, height, 0);
return vk::NoError();
} }
} // namespace rx } // namespace rx
...@@ -24,7 +24,7 @@ class WindowSurfaceVkAndroid : public WindowSurfaceVk ...@@ -24,7 +24,7 @@ class WindowSurfaceVkAndroid : public WindowSurfaceVk
EGLint height); EGLint height);
private: private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override; vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
}; };
} // namespace rx } // namespace rx
......
...@@ -150,9 +150,6 @@ class Error final ...@@ -150,9 +150,6 @@ class Error final
unsigned int mLine; unsigned int mLine;
}; };
template <typename ResultT>
using ErrorOrResult = angle::ErrorOrResultBase<Error, ResultT, VkResult, VK_SUCCESS>;
// Avoid conflicting with X headers which define "Success". // Avoid conflicting with X headers which define "Success".
inline Error NoError() inline Error NoError()
{ {
......
...@@ -22,7 +22,7 @@ WindowSurfaceVkWin32::WindowSurfaceVkWin32(const egl::SurfaceState &surfaceState ...@@ -22,7 +22,7 @@ WindowSurfaceVkWin32::WindowSurfaceVkWin32(const egl::SurfaceState &surfaceState
{ {
} }
vk::ErrorOrResult<gl::Extents> WindowSurfaceVkWin32::createSurfaceVk(RendererVk *renderer) vk::Error WindowSurfaceVkWin32::createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut)
{ {
VkWin32SurfaceCreateInfoKHR createInfo; VkWin32SurfaceCreateInfoKHR createInfo;
...@@ -36,7 +36,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkWin32::createSurfaceVk(RendererVk ...@@ -36,7 +36,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkWin32::createSurfaceVk(RendererVk
RECT rect; RECT rect;
ANGLE_VK_CHECK(GetClientRect(mNativeWindowType, &rect) == TRUE, VK_ERROR_INITIALIZATION_FAILED); ANGLE_VK_CHECK(GetClientRect(mNativeWindowType, &rect) == TRUE, VK_ERROR_INITIALIZATION_FAILED);
return gl::Extents(rect.right - rect.left, rect.bottom - rect.top, 0); *extentsOut = gl::Extents(rect.right - rect.left, rect.bottom - rect.top, 0);
return vk::NoError();
} }
} // namespace rx } // namespace rx
...@@ -24,7 +24,7 @@ class WindowSurfaceVkWin32 : public WindowSurfaceVk ...@@ -24,7 +24,7 @@ class WindowSurfaceVkWin32 : public WindowSurfaceVk
EGLint height); EGLint height);
private: private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override; vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
}; };
} // namespace rx } // namespace rx
......
...@@ -23,7 +23,7 @@ WindowSurfaceVkXcb::WindowSurfaceVkXcb(const egl::SurfaceState &surfaceState, ...@@ -23,7 +23,7 @@ WindowSurfaceVkXcb::WindowSurfaceVkXcb(const egl::SurfaceState &surfaceState,
{ {
} }
vk::ErrorOrResult<gl::Extents> WindowSurfaceVkXcb::createSurfaceVk(RendererVk *renderer) vk::Error WindowSurfaceVkXcb::createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut)
{ {
VkXcbSurfaceCreateInfoKHR createInfo; VkXcbSurfaceCreateInfoKHR createInfo;
...@@ -37,9 +37,10 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkXcb::createSurfaceVk(RendererVk *r ...@@ -37,9 +37,10 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkXcb::createSurfaceVk(RendererVk *r
xcb_get_geometry_cookie_t cookie = xcb_get_geometry(mXcbConnection, mNativeWindowType); xcb_get_geometry_cookie_t cookie = xcb_get_geometry(mXcbConnection, mNativeWindowType);
xcb_get_geometry_reply_t *reply = xcb_get_geometry_reply(mXcbConnection, cookie, nullptr); xcb_get_geometry_reply_t *reply = xcb_get_geometry_reply(mXcbConnection, cookie, nullptr);
ASSERT(reply); ASSERT(reply);
gl::Extents result(reply->width, reply->height, 0);
free(reply); free(reply);
return result;
*extentsOut = gl::Extents(reply->width, reply->height, 0);
return vk::NoError();
} }
} // namespace rx } // namespace rx
...@@ -27,7 +27,7 @@ class WindowSurfaceVkXcb : public WindowSurfaceVk ...@@ -27,7 +27,7 @@ class WindowSurfaceVkXcb : public WindowSurfaceVk
xcb_connection_t *conn); xcb_connection_t *conn);
private: private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override; vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
xcb_connection_t *mXcbConnection; xcb_connection_t *mXcbConnection;
}; };
......
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