Commit 5598148b by Jamie Madill Committed by Commit Bot

Vulkan: Don't use gl::ErrorOrResult.

This removes usages of ErrorOrResult from SurfaceVk and FramebufferVk. This will enable the Vulkan error handling refactor. Bug: angleproject:2713 Change-Id: I69430dba51390a5cdc18b7b47ca423b9635e65de Reviewed-on: https://chromium-review.googlesource.com/1128923 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
parent eebe2190
......@@ -719,12 +719,13 @@ const vk::RenderPassDesc &FramebufferVk::getRenderPassDesc()
return mRenderPassDesc.value();
}
gl::ErrorOrResult<vk::Framebuffer *> FramebufferVk::getFramebuffer(RendererVk *rendererVk)
vk::Error FramebufferVk::getFramebuffer(RendererVk *rendererVk, vk::Framebuffer **framebufferOut)
{
// If we've already created our cached Framebuffer, return it.
if (mFramebuffer.valid())
{
return &mFramebuffer;
*framebufferOut = &mFramebuffer;
return vk::NoError();
}
const vk::RenderPassDesc &desc = getRenderPassDesc();
......@@ -736,7 +737,7 @@ gl::ErrorOrResult<vk::Framebuffer *> FramebufferVk::getFramebuffer(RendererVk *r
VkDevice device = rendererVk->getDevice();
if (mBackbuffer)
{
return mBackbuffer->getCurrentFramebuffer(device, *renderPass);
return mBackbuffer->getCurrentFramebuffer(device, *renderPass, framebufferOut);
}
// Gather VkImageViews over all FBO attachments, also size of attached region.
......@@ -781,7 +782,8 @@ gl::ErrorOrResult<vk::Framebuffer *> FramebufferVk::getFramebuffer(RendererVk *r
ANGLE_TRY(mFramebuffer.init(device, framebufferInfo));
return &mFramebuffer;
*framebufferOut = &mFramebuffer;
return vk::NoError();
}
gl::Error FramebufferVk::clearWithClearAttachments(ContextVk *contextVk,
......@@ -988,7 +990,7 @@ gl::Error FramebufferVk::getSamplePosition(const gl::Context *context,
return gl::InternalError() << "getSamplePosition is unimplemented.";
}
gl::Error FramebufferVk::getCommandBufferForDraw(ContextVk *contextVk,
vk::Error FramebufferVk::getCommandBufferForDraw(ContextVk *contextVk,
vk::CommandBuffer **commandBufferOut,
vk::RecordingMode *modeOut)
{
......@@ -998,11 +1000,11 @@ gl::Error FramebufferVk::getCommandBufferForDraw(ContextVk *contextVk,
if (appendToStartedRenderPass(renderer, commandBufferOut))
{
*modeOut = vk::RecordingMode::Append;
return gl::NoError();
return vk::NoError();
}
vk::Framebuffer *framebuffer = nullptr;
ANGLE_TRY_RESULT(getFramebuffer(renderer), framebuffer);
ANGLE_TRY(getFramebuffer(renderer, &framebuffer));
// TODO(jmadill): Proper clear value implementation. http://anglebug.com/2361
std::vector<VkClearValue> attachmentClearValues;
......
......@@ -89,7 +89,7 @@ class FramebufferVk : public FramebufferImpl, public vk::CommandGraphResource
GLfloat *xy) const override;
RenderTargetVk *getDepthStencilRenderTarget() const;
const vk::RenderPassDesc &getRenderPassDesc();
gl::Error getCommandBufferForDraw(ContextVk *contextVk,
vk::Error getCommandBufferForDraw(ContextVk *contextVk,
vk::CommandBuffer **commandBufferOut,
vk::RecordingMode *modeOut);
......@@ -117,7 +117,7 @@ class FramebufferVk : public FramebufferImpl, public vk::CommandGraphResource
bool blitDepthBuffer,
bool blitStencilBuffer);
gl::ErrorOrResult<vk::Framebuffer *> getFramebuffer(RendererVk *rendererVk);
vk::Error getFramebuffer(RendererVk *rendererVk, vk::Framebuffer **framebufferOut);
gl::Error clearWithClearAttachments(ContextVk *contextVk,
bool clearColor,
......
......@@ -664,16 +664,17 @@ gl::Error WindowSurfaceVk::getAttachmentRenderTarget(const gl::Context * /*conte
return gl::NoError();
}
gl::ErrorOrResult<vk::Framebuffer *> WindowSurfaceVk::getCurrentFramebuffer(
VkDevice device,
const vk::RenderPass &compatibleRenderPass)
vk::Error WindowSurfaceVk::getCurrentFramebuffer(VkDevice device,
const vk::RenderPass &compatibleRenderPass,
vk::Framebuffer **framebufferOut)
{
vk::Framebuffer &currentFramebuffer = mSwapchainImages[mCurrentSwapchainImageIndex].framebuffer;
if (currentFramebuffer.valid())
{
// Validation layers should detect if the render pass is really compatible.
return &currentFramebuffer;
*framebufferOut = &currentFramebuffer;
return vk::NoError();
}
VkFramebufferCreateInfo framebufferInfo;
......@@ -698,7 +699,8 @@ gl::ErrorOrResult<vk::Framebuffer *> WindowSurfaceVk::getCurrentFramebuffer(
}
ASSERT(currentFramebuffer.valid());
return &currentFramebuffer;
*framebufferOut = &currentFramebuffer;
return vk::NoError();
}
gl::Error WindowSurfaceVk::initializeContents(const gl::Context *context,
......
......@@ -127,9 +127,9 @@ class WindowSurfaceVk : public SurfaceImpl, public vk::CommandGraphResource
gl::Error initializeContents(const gl::Context *context,
const gl::ImageIndex &imageIndex) override;
gl::ErrorOrResult<vk::Framebuffer *> getCurrentFramebuffer(
VkDevice device,
const vk::RenderPass &compatibleRenderPass);
vk::Error getCurrentFramebuffer(VkDevice device,
const vk::RenderPass &compatibleRenderPass,
vk::Framebuffer **framebufferOut);
protected:
EGLNativeWindowType mNativeWindowType;
......
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