Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
24170d7
Add unit test
xiaowei-guan Jul 20, 2026
8fd0d2e
Support render YUV for skia
xiaowei-guan Aug 3, 2026
0d6d729
Remove the unused image memory filed from the texture api
xiaowei-guan Sep 3, 2026
4577820
Added the missing `IsValid()` check in the Impeller path of `ResolveT…
xiaowei-guan Sep 3, 2026
a778531
Deleted the unnecessary `class ContextVK`
xiaowei-guan Sep 3, 2026
236fa12
Fixed the type mismatch in `ToPixelFormat`
xiaowei-guan Sep 3, 2026
1f2a56d
Fix code review issues
xiaowei-guan Sep 3, 2026
2a60bbf
Try to use vkGetPhysicalDeviceFeatures2 to query device features
xiaowei-guan Sep 3, 2026
c87ee8a
[embedder] Dynamically select SkColorType based on VkFormat for Vulka…
xiaowei-guan Sep 3, 2026
018a9b0
The `RequiresYCBCRConversion` re-check in `CreateTextureImageView`
xiaowei-guan Sep 3, 2026
99394d7
Fix code review issue
xiaowei-guan Sep 3, 2026
b18511b
Fix code review issue
xiaowei-guan Sep 3, 2026
a0904f5
Change struct name from FlutterVulkanTexture to FlutterVulkanExternal…
xiaowei-guan Sep 10, 2026
a5a088c
Update docs of FlutterVulkanExternalTexture
xiaowei-guan Sep 10, 2026
f0aa268
Merge EmbedderExternalTextureSourceVulkan and EmbedderExternalTexture…
xiaowei-guan Sep 10, 2026
b30a760
Change TextureUsageMask to kShaderRead
xiaowei-guan Sep 10, 2026
e568abe
Add ToSkColorType(VkFormat) method for skia
xiaowei-guan Sep 11, 2026
0ff6d57
Remove VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
xiaowei-guan Sep 11, 2026
9371030
Add render NV12 tests
xiaowei-guan Sep 11, 2026
2293dcb
Fix gemini code review issue
xiaowei-guan Sep 11, 2026
c94d956
Remove layout transition code
xiaowei-guan Sep 11, 2026
a178f08
Fix code review issues
xiaowei-guan Sep 14, 2026
ee833ff
Minior refactor
xiaowei-guan Sep 14, 2026
b30b878
Fix code review issue
xiaowei-guan Sep 14, 2026
ce7370c
Fix build error
xiaowei-guan Sep 14, 2026
21cc506
Remove embedder external texture source vulkan
xiaowei-guan Sep 14, 2026
5e304e3
Fix build error
xiaowei-guan Sep 15, 2026
9ea4122
Destroy the image view before invoking the destruction callback.
xiaowei-guan Sep 15, 2026
b5c8cac
Add missing YUV format
xiaowei-guan Sep 15, 2026
e428a44
Fix build error for fushcia
xiaowei-guan Sep 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions engine/src/flutter/shell/platform/embedder/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,8 @@ template("embedder_source_set") {
sources += [
"embedder_surface_vulkan_impeller.cc",
"embedder_surface_vulkan_impeller.h",
"embedder_external_texture_source_vulkan.cc",
"embedder_external_texture_source_vulkan.h",
]
deps += [ "//flutter/impeller/display_list" ]
}

deps += [
Expand Down Expand Up @@ -261,6 +260,8 @@ test_fixtures("fixtures") {
"fixtures/gradient_metal.png",
"fixtures/external_texture_impeller.png",
"fixtures/external_texture_metal.png",
"fixtures/external_texture_nv12.png",
"fixtures/texture.nv12",
"fixtures/gradient_xform.png",
"fixtures/scene_without_custom_compositor.png",
"fixtures/scene_without_custom_compositor_with_xform.png",
Expand Down
7 changes: 4 additions & 3 deletions engine/src/flutter/shell/platform/embedder/embedder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2398,9 +2398,10 @@ FlutterEngineResult FlutterEngineInitialize(size_t version,
auto external_texture_vulkan_callback =
[ptr = callback, user_data](
int64_t texture_identifier, size_t width,
size_t height) -> std::unique_ptr<FlutterVulkanTexture> {
std::unique_ptr<FlutterVulkanTexture> texture =
std::make_unique<FlutterVulkanTexture>();
size_t height) -> std::unique_ptr<FlutterVulkanExternalTexture> {
std::unique_ptr<FlutterVulkanExternalTexture> texture =
std::make_unique<FlutterVulkanExternalTexture>();
texture->struct_size = sizeof(FlutterVulkanExternalTexture);
if (!ptr(user_data, texture_identifier, width, height, texture.get())) {
return nullptr;
}
Expand Down
17 changes: 8 additions & 9 deletions engine/src/flutter/shell/platform/embedder/embedder.h
Original file line number Diff line number Diff line change
Expand Up @@ -930,9 +930,6 @@ typedef void* FlutterVulkanQueueHandle;
/// Alias for VkImage.
typedef uint64_t FlutterVulkanImageHandle;

/// Alias for VkDeviceMemory.
typedef uint64_t FlutterVulkanDeviceMemoryHandle;

typedef struct {
/// The size of this struct. Must be sizeof(FlutterVulkanImage).
size_t struct_size;
Expand Down Expand Up @@ -962,25 +959,27 @@ typedef bool (*FlutterVulkanPresentCallback)(
const FlutterVulkanImage* /* image */);

typedef struct {
/// The size of this struct. Must be sizeof(FlutterVulkanExternalTexture).
size_t struct_size;
/// Handle to the VkImage that is owned by the embedder. The engine will
/// bind this image for writing the frame.
/// sample from this image during composition. The VkImage must be in the
/// VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL layout when provided to the
/// engine.
FlutterVulkanImageHandle image;
Comment thread
xiaowei-guan marked this conversation as resolved.
/// The VkDeviceMemory that backs the iamge.
FlutterVulkanDeviceMemoryHandle image_memory;
/// The VkFormat of the image (for example: VK_FORMAT_R8G8B8A8_UNORM).
uint32_t format;
/// User data to be returned on the invocation of the destruction callback.
void* user_data;
/// Callback invoked (on an engine managed thread) that asks the embedder to
/// collect the texture.
/// collect the texture. This is optional and can be null.
VoidCallback destruction_callback;
/// Optional parameters for texture height/width, default is 0, non-zero means
/// the texture has the specified width/height.
/// Width of the texture.
size_t width;
/// Height of the texture.
size_t height;
} FlutterVulkanTexture;
} FlutterVulkanExternalTexture;

/// Callback to provide an external texture for a given texture_id.
/// See: external_texture_frame_callback.
Expand All @@ -989,7 +988,7 @@ typedef bool (*FlutterVulkanTextureFrameCallback)(
int64_t /* texture identifier */,
size_t /* width */,
size_t /* height */,
FlutterVulkanTexture* /* texture out */);
FlutterVulkanExternalTexture* /* texture out */);

typedef struct {
/// The size of this struct. Must be sizeof(FlutterVulkanRendererConfig).
Expand Down

This file was deleted.

This file was deleted.

Loading
Loading