File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed
engine/src/flutter/shell/platform/embedder Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -141,15 +141,18 @@ sk_sp<DlImage> EmbedderExternalTextureVulkan::ResolveTextureImpeller(
141141
142142 auto & impeller_context =
143143 impeller::ContextVK::Cast (*aiks_context->GetContext ());
144+
144145 auto texture_source = std::make_shared<EmbedderExternalTextureSourceVulkan>(
145146 aiks_context->GetContext (), texture_desc.get ());
147+
146148 auto texture = std::make_shared<impeller::TextureVK>(
147149 aiks_context->GetContext (), texture_source);
148150 // Transition the layout to shader read.
149151 {
150152 auto buffer = impeller_context.CreateCommandBuffer ();
151153 impeller::CommandBufferVK& buffer_vk =
152154 impeller::CommandBufferVK::Cast (*buffer);
155+
153156 impeller::BarrierVK barrier;
154157 barrier.cmd_buffer = buffer_vk.GetCommandBuffer ();
155158 barrier.src_access = impeller::vk::AccessFlagBits::eColorAttachmentWrite |
@@ -159,9 +162,10 @@ sk_sp<DlImage> EmbedderExternalTextureVulkan::ResolveTextureImpeller(
159162 impeller::vk::PipelineStageFlagBits::eTransfer;
160163 barrier.dst_access = impeller::vk::AccessFlagBits::eShaderRead;
161164 barrier.dst_stage = impeller::vk::PipelineStageFlagBits::eFragmentShader;
165+
162166 barrier.new_layout = impeller::vk::ImageLayout::eShaderReadOnlyOptimal;
163167
164- if (!texture ->SetLayout (barrier)) {
168+ if (!texture_source ->SetLayout (barrier). ok ( )) {
165169 return nullptr ;
166170 }
167171 if (!impeller_context.GetCommandQueue ()->Submit ({buffer}).ok ()) {
You can’t perform that action at this time.
0 commit comments