#include <vulkan_surface.h>
Definition at line 44 of file vulkan_surface.h.
◆ VulkanSurface()
flutter_runner::VulkanSurface::VulkanSurface |
( |
vulkan::VulkanProvider & |
vulkan_provider, |
|
|
fuchsia::sysmem::AllocatorSyncPtr & |
sysmem_allocator, |
|
|
fuchsia::ui::composition::AllocatorPtr & |
flatland_allocator, |
|
|
sk_sp< GrDirectContext > |
context, |
|
|
const SkISize & |
size |
|
) |
| |
Definition at line 147 of file vulkan_surface.cc.
153 : vulkan_provider_(vulkan_provider), wait_(this) {
154 FML_CHECK(flatland_allocator.is_bound());
156
157 if (!AllocateDeviceMemory(sysmem_allocator, flatland_allocator,
158 std::move(context), size)) {
159 FML_LOG(
ERROR) <<
"VulkanSurface: Could not allocate device memory.";
160 return;
161 }
162
163 if (!CreateFences()) {
164 FML_LOG(
ERROR) <<
"VulkanSurface: Could not create signal fences.";
165 return;
166 }
167
169
170 wait_.set_object(release_event_.get());
171 wait_.set_trigger(ZX_EVENT_SIGNALED);
172 Reset();
173
174 valid_ = true;
175}
#define FML_LOG(severity)
#define FML_CHECK(condition)
static constexpr SkISize MakeEmpty()
◆ ~VulkanSurface()
flutter_runner::VulkanSurface::~VulkanSurface |
( |
| ) |
|
|
override |
Definition at line 177 of file vulkan_surface.cc.
177 {
178 if (release_image_callback_) {
179 release_image_callback_();
180 }
181 wait_.Cancel();
182 wait_.set_object(ZX_HANDLE_INVALID);
183}
◆ AdvanceAndGetAge()
size_t flutter_runner::VulkanSurface::AdvanceAndGetAge |
( |
| ) |
|
|
overridevirtual |
◆ FlushSessionAcquireAndReleaseEvents()
bool flutter_runner::VulkanSurface::FlushSessionAcquireAndReleaseEvents |
( |
| ) |
|
|
overridevirtual |
◆ GetAcquireFence()
zx::event flutter_runner::VulkanSurface::GetAcquireFence |
( |
| ) |
|
|
overridevirtual |
◆ GetAcquireVkSemaphore()
const vulkan::VulkanHandle< VkSemaphore > & flutter_runner::VulkanSurface::GetAcquireVkSemaphore |
( |
| ) |
|
|
inline |
◆ GetAllocationSize()
size_t flutter_runner::VulkanSurface::GetAllocationSize |
( |
| ) |
const |
|
inline |
◆ GetBufferCollectionImportToken()
fuchsia::ui::composition::BufferCollectionImportToken flutter_runner::VulkanSurface::GetBufferCollectionImportToken |
( |
| ) |
|
|
overridevirtual |
◆ GetCommandBuffer()
Definition at line 102 of file vulkan_surface.h.
103 {
104 if (!command_buffer_)
105 command_buffer_ = std::make_unique<vulkan::VulkanCommandBuffer>(
107 return command_buffer_.get();
108 }
virtual const vulkan::VulkanProcTable & vk()=0
virtual const vulkan::VulkanHandle< VkDevice > & vk_device()=0
◆ GetCommandBufferFence()
◆ GetImageId()
uint32_t flutter_runner::VulkanSurface::GetImageId |
( |
| ) |
|
|
overridevirtual |
◆ GetImageMemoryRequirementsSize()
size_t flutter_runner::VulkanSurface::GetImageMemoryRequirementsSize |
( |
| ) |
const |
|
inline |
Definition at line 116 of file vulkan_surface.h.
116 {
118 }
VkMemoryRequirements vk_memory_requirements
◆ GetReleaseFence()
zx::event flutter_runner::VulkanSurface::GetReleaseFence |
( |
| ) |
|
|
overridevirtual |
◆ GetSize()
SkISize flutter_runner::VulkanSurface::GetSize |
( |
| ) |
const |
|
overridevirtual |
◆ GetSkiaSurface()
sk_sp< SkSurface > flutter_runner::VulkanSurface::GetSkiaSurface |
( |
| ) |
const |
|
overridevirtual |
◆ GetVkImage()
Definition at line 94 of file vulkan_surface.h.
94 {
96 }
vulkan::VulkanHandle< VkImage > vk_image
◆ HasStableSizeHistory()
bool flutter_runner::VulkanSurface::HasStableSizeHistory |
( |
| ) |
const |
|
inline |
Definition at line 124 of file vulkan_surface.h.
124 {
125 return std::equal(size_history_.begin() + 1, size_history_.end(),
126 size_history_.begin());
127 }
◆ IsOversized()
bool flutter_runner::VulkanSurface::IsOversized |
( |
| ) |
const |
|
inline |
Definition at line 120 of file vulkan_surface.h.
120 {
122 }
size_t GetAllocationSize() const
size_t GetImageMemoryRequirementsSize() const
◆ IsValid()
bool flutter_runner::VulkanSurface::IsValid |
( |
| ) |
const |
|
overridevirtual |
◆ SetImageId()
void flutter_runner::VulkanSurface::SetImageId |
( |
uint32_t |
image_id | ) |
|
|
overridevirtual |
◆ SetReleaseImageCallback()
void flutter_runner::VulkanSurface::SetReleaseImageCallback |
( |
ReleaseImageCallback |
release_image_callback | ) |
|
|
overridevirtual |
◆ SignalWritesFinished()
void flutter_runner::VulkanSurface::SignalWritesFinished |
( |
const std::function< void(void)> & |
on_writes_committed | ) |
|
|
overridevirtual |
Implements flutter_runner::SurfaceProducerSurface.
Definition at line 485 of file vulkan_surface.cc.
486 {
488
489 if (!valid_) {
490 on_writes_committed();
491 return;
492 }
493
494 FML_CHECK(pending_on_writes_committed_ ==
nullptr)
495 << "Attempted to signal a write on the surface when the "
496 "previous write has not yet been acknowledged by the "
497 "compositor.";
498
499 pending_on_writes_committed_ = on_writes_committed;
500}
The documentation for this class was generated from the following files: