[example] Set skia protected memory based on command line for vklatency
Since skia changes are landed, we can pass these based on command line:
https://skia-review.googlesource.com/c/skia/+/210067
SCN-1376 #comment
Change-Id: Id6765eb13e9cb33ea607e4e4b77b9b928dcefa47
diff --git a/garnet/lib/vulkan/tests/vklatency/skia_gpu_painter.cc b/garnet/lib/vulkan/tests/vklatency/skia_gpu_painter.cc
index 3d4eff8..cf116fe 100644
--- a/garnet/lib/vulkan/tests/vklatency/skia_gpu_painter.cc
+++ b/garnet/lib/vulkan/tests/vklatency/skia_gpu_painter.cc
@@ -7,6 +7,7 @@
#include "src/lib/fxl/logging.h"
#include "third_party/skia/include/core/SkPaint.h"
#include "third_party/skia/include/gpu/GrBackendSurface.h"
+#include "third_party/skia/include/gpu/GrTypes.h"
namespace examples {
@@ -61,7 +62,6 @@
PrepareSkSurface(image);
auto& image_draw_resource = image_draw_resources_[image_index];
SkCanvas* canvas = image_draw_resource.sk_surface->getCanvas();
- canvas->save();
SkPaint paint;
paint.setColor(SK_ColorBLACK);
@@ -79,7 +79,6 @@
paths_in_progress.second.getLastPt(&last_point);
paths_in_progress.second = SkPath().moveTo(last_point);
}
- canvas->restore();
canvas->flush();
SetImageLayout(image);
@@ -104,6 +103,9 @@
vk_image_info.fLevelCount = 1;
auto size = vk_swapchain_->GetImageSize();
GrBackendRenderTarget render_target(size.width, size.height, 0,
+ vk_swapchain_->protected_output()
+ ? GrProtected::kYes
+ : GrProtected::kNo,
vk_image_info);
sk_surface = SkSurface::MakeFromBackendRenderTarget(
vk_swapchain_->GetGrContext(), render_target, kTopLeft_GrSurfaceOrigin,
diff --git a/garnet/lib/vulkan/tests/vklatency/swapchain.cc b/garnet/lib/vulkan/tests/vklatency/swapchain.cc
index 42dbe74..0129636 100644
--- a/garnet/lib/vulkan/tests/vklatency/swapchain.cc
+++ b/garnet/lib/vulkan/tests/vklatency/swapchain.cc
@@ -5,6 +5,7 @@
#include "garnet/lib/vulkan/tests/vklatency/swapchain.h"
#include "src/lib/fxl/logging.h"
+#include "third_party/skia/include/gpu/GrTypes.h"
#include "third_party/skia/include/gpu/vk/GrVkBackendContext.h"
namespace examples {
@@ -159,6 +160,8 @@
return vk_instance_.getProcAddr(proc_name);
};
backend_context.fOwnsInstanceAndDevice = false;
+ backend_context.fProtectedContext =
+ protected_output_ ? GrProtected::kYes : GrProtected::kNo;
gr_context_ = GrContext::MakeVulkan(backend_context);
FXL_CHECK(gr_context_);
return gr_context_.get();