Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Vulkan context to EmbedderTestContextVulkan #56571

Merged
merged 1 commit into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 0 additions & 6 deletions shell/platform/embedder/tests/embedder_test_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,6 @@ class EmbedderTestContext {

using NextSceneCallback = std::function<void(sk_sp<SkImage> image)>;

#ifdef SHELL_ENABLE_VULKAN
// The TestVulkanContext destructor must be called _after_ the compositor is
// freed.
Copy link
Member Author

@cbracken cbracken Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm... @bdero is the reason this wasn't pushed down due to the destruction order dependency between this and compositor_? If so, any further details on this?

Context is that I'm doing a larger-scale refactor on the embedder test code to separate things out more cleanly by backend. This was a quick seemingly obvious pre-factoring patch I was thinking I could get out of the way, but if I can't due to an ordering issue that would be great to know so it can be accounted for in the broader refactor.

Copy link
Member Author

@cbracken cbracken Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it turns out it’s unsafe to move this, it’d be good if we could have a test that tests the underlying condition we’re concerned about since it looks like all tests pass on this patch. Happy to help to do so, once I understand the issue, presuming I’m not just being overly paranoid here.

fml::RefPtr<TestVulkanContext> vulkan_context_ = nullptr;
#endif

#ifdef SHELL_ENABLE_GL
std::shared_ptr<TestEGLContext> egl_context_ = nullptr;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do this in a followup, but we don't yet have a GL subclass.

#endif
Expand Down
4 changes: 4 additions & 0 deletions shell/platform/embedder/tests/embedder_test_context_vulkan.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ class EmbedderTestContextVulkan : public EmbedderTestContext {
const char* name);

private:
// The TestVulkanContext destructor must be called _after_ the compositor is
// freed.
fml::RefPtr<TestVulkanContext> vulkan_context_ = nullptr;

std::unique_ptr<TestVulkanSurface> surface_;

SkISize surface_size_ = SkISize::MakeEmpty();
Expand Down