aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2018-04-10 13:46:30 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-11 11:14:58 +0000
commit323fbcf6d18f1a82b76cc3e471015dc9717e7fb5 (patch)
tree6542aa1caf6b2f7e0a473cbf0b42ed397b2722d4 /src/gpu/vk
parent3b6afd51b22c14fdfd5e741b809c5e02c6ec2095 (diff)
Move GrBackendRenderTarget over to new system of getting backed infos
Bug: skia: Change-Id: I3927390894715e8424b3d0240dad3ee6cd03dc38 Reviewed-on: https://skia-review.googlesource.com/120181 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/vk')
-rw-r--r--src/gpu/vk/GrVkCaps.cpp6
-rw-r--r--src/gpu/vk/GrVkGpu.cpp16
-rw-r--r--src/gpu/vk/GrVkRenderTarget.cpp6
3 files changed, 13 insertions, 15 deletions
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index 5747cc04c3..ae1570cd71 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -510,12 +510,12 @@ bool GrVkCaps::validateBackendTexture(const GrBackendTexture& tex, SkColorType c
bool GrVkCaps::validateBackendRenderTarget(const GrBackendRenderTarget& rt, SkColorType ct,
GrPixelConfig* config) const {
- const GrVkImageInfo* imageInfo = rt.getVkImageInfo();
- if (!imageInfo) {
+ GrVkImageInfo imageInfo;
+ if (!rt.getVkImageInfo(&imageInfo)) {
return false;
}
- return validate_image_info(imageInfo->fFormat, ct, config);
+ return validate_image_info(imageInfo.fFormat, ct, config);
}
bool GrVkCaps::getConfigFromBackendFormat(const GrBackendFormat& format, SkColorType ct,
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 0d45ae02ad..3b1b219c31 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -933,11 +933,12 @@ sk_sp<GrRenderTarget> GrVkGpu::onWrapBackendRenderTarget(const GrBackendRenderTa
return nullptr;
}
- const GrVkImageInfo* info = backendRT.getVkImageInfo();
- if (!info) {
+ GrVkImageInfo info;
+ if (!backendRT.getVkImageInfo(&info)) {
return nullptr;
}
- if (VK_NULL_HANDLE == info->fImage) {
+
+ if (VK_NULL_HANDLE == info.fImage) {
return nullptr;
}
@@ -948,9 +949,9 @@ sk_sp<GrRenderTarget> GrVkGpu::onWrapBackendRenderTarget(const GrBackendRenderTa
desc.fConfig = backendRT.config();
desc.fSampleCnt = 1;
- sk_sp<GrVkImageLayout> layout(new GrVkImageLayout(info->fImageLayout));
+ sk_sp<GrVkImageLayout> layout = backendRT.getGrVkImageLayout();
- sk_sp<GrVkRenderTarget> tgt = GrVkRenderTarget::MakeWrappedRenderTarget(this, desc, *info,
+ sk_sp<GrVkRenderTarget> tgt = GrVkRenderTarget::MakeWrappedRenderTarget(this, desc, info,
std::move(layout));
// We don't allow the client to supply a premade stencil buffer. We always create one if needed.
@@ -1565,10 +1566,11 @@ GrBackendRenderTarget GrVkGpu::createTestingOnlyBackendRenderTarget(int w, int h
void GrVkGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) {
SkASSERT(kVulkan_GrBackend == rt.fBackend);
- if (const auto* info = rt.getVkImageInfo()) {
+ GrVkImageInfo info;
+ if (rt.getVkImageInfo(&info)) {
// something in the command buffer may still be using this, so force submit
this->submitCommandBuffer(kForce_SyncQueue);
- GrVkImage::DestroyImageInfo(this, const_cast<GrVkImageInfo*>(info));
+ GrVkImage::DestroyImageInfo(this, const_cast<GrVkImageInfo*>(&info));
}
}
diff --git a/src/gpu/vk/GrVkRenderTarget.cpp b/src/gpu/vk/GrVkRenderTarget.cpp
index 5570c0d3b4..83c3b97776 100644
--- a/src/gpu/vk/GrVkRenderTarget.cpp
+++ b/src/gpu/vk/GrVkRenderTarget.cpp
@@ -360,12 +360,8 @@ GrBackendObject GrVkRenderTarget::getRenderTargetHandle() const {
}
GrBackendRenderTarget GrVkRenderTarget::getBackendRenderTarget() const {
- int numStencilBits = 0;
- if (GrStencilAttachment* stencil = this->renderTargetPriv().getStencilAttachment()) {
- numStencilBits = stencil->bits();
- }
return GrBackendRenderTarget(this->width(), this->height(), this->numColorSamples(),
- numStencilBits, fInfo);
+ fInfo, this->grVkImageLayout());
}
const GrVkResource* GrVkRenderTarget::stencilImageResource() const {