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)
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.
// TODO(jmadill): Handle the re-creation case if necessary.
......@@ -572,7 +572,11 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH
ANGLE_VK_TRY(vkGetPhysicalDeviceSurfaceSupportKHR(mPhysicalDevice, mCurrentQueueFamilyIndex,
surface, &supportsPresent));
return (supportsPresent == VK_TRUE);
if (supportsPresent == VK_TRUE)
{
*presentQueueOut = mCurrentQueueFamilyIndex;
return vk::NoError();
}
}
// Find a graphics and present queue.
......@@ -598,7 +602,8 @@ vk::ErrorOrResult<uint32_t> RendererVk::selectPresentQueueForSurface(VkSurfaceKH
ANGLE_VK_CHECK(newPresentQueue.valid(), VK_ERROR_INITIALIZATION_FAILED);
ANGLE_TRY(initializeDevice(newPresentQueue.value()));
return newPresentQueue.value();
*presentQueueOut = newPresentQueue.value();
return vk::NoError();
}
std::string RendererVk::getVendorString() const
......
......@@ -55,7 +55,7 @@ class RendererVk : angle::NonCopyable
VkQueue getQueue() const { return mQueue; }
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 flush(const gl::Context *context,
......
......@@ -322,10 +322,10 @@ egl::Error WindowSurfaceVk::initialize(const egl::Display *display)
vk::Error WindowSurfaceVk::initializeImpl(RendererVk *renderer)
{
gl::Extents windowSize;
ANGLE_TRY_RESULT(createSurfaceVk(renderer), windowSize);
ANGLE_TRY(createSurfaceVk(renderer, &windowSize));
uint32_t presentQueue = 0;
ANGLE_TRY_RESULT(renderer->selectPresentQueueForSurface(mSurface), presentQueue);
ANGLE_TRY(renderer->selectPresentQueueForSurface(mSurface, &presentQueue));
ANGLE_UNUSED_VARIABLE(presentQueue);
const VkPhysicalDevice &physicalDevice = renderer->getPhysicalDevice();
......
......@@ -137,7 +137,7 @@ class WindowSurfaceVk : public SurfaceImpl, public vk::CommandGraphResource
VkInstance mInstance;
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 nextSwapchainImage(RendererVk *renderer);
......
......@@ -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;
......@@ -39,7 +39,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkAndroid::createSurfaceVk(RendererV
int32_t height = ANativeWindow_getHeight(mNativeWindowType);
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
......@@ -24,7 +24,7 @@ class WindowSurfaceVkAndroid : public WindowSurfaceVk
EGLint height);
private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override;
vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
};
} // namespace rx
......
......@@ -150,9 +150,6 @@ class Error final
unsigned int mLine;
};
template <typename ResultT>
using ErrorOrResult = angle::ErrorOrResultBase<Error, ResultT, VkResult, VK_SUCCESS>;
// Avoid conflicting with X headers which define "Success".
inline Error NoError()
{
......
......@@ -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;
......@@ -36,7 +36,8 @@ vk::ErrorOrResult<gl::Extents> WindowSurfaceVkWin32::createSurfaceVk(RendererVk
RECT rect;
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
......@@ -24,7 +24,7 @@ class WindowSurfaceVkWin32 : public WindowSurfaceVk
EGLint height);
private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override;
vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
};
} // namespace rx
......
......@@ -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;
......@@ -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_reply_t *reply = xcb_get_geometry_reply(mXcbConnection, cookie, nullptr);
ASSERT(reply);
gl::Extents result(reply->width, reply->height, 0);
free(reply);
return result;
*extentsOut = gl::Extents(reply->width, reply->height, 0);
return vk::NoError();
}
} // namespace rx
......@@ -27,7 +27,7 @@ class WindowSurfaceVkXcb : public WindowSurfaceVk
xcb_connection_t *conn);
private:
vk::ErrorOrResult<gl::Extents> createSurfaceVk(RendererVk *renderer) override;
vk::Error createSurfaceVk(RendererVk *renderer, gl::Extents *extentsOut) override;
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