#include "libANGLE/renderer/vulkan/ShareGroupVk.h"
#include "common/debug.h"
#include "common/system_utils.h"
#include "libANGLE/Context.h"
#include "libANGLE/Display.h"
#include "libANGLE/renderer/vulkan/BufferVk.h"
#include "libANGLE/renderer/vulkan/ContextVk.h"
#include "libANGLE/renderer/vulkan/DeviceVk.h"
#include "libANGLE/renderer/vulkan/ImageVk.h"
#include "libANGLE/renderer/vulkan/SurfaceVk.h"
#include "libANGLE/renderer/vulkan/SyncVk.h"
#include "libANGLE/renderer/vulkan/TextureVk.h"
#include "libANGLE/renderer/vulkan/VkImageImageSiblingVk.h"
#include "libANGLE/renderer/vulkan/vk_renderer.h"
namespace rx
{
namespace
{
constexpr double kMonolithicPipelineJobPeriod = …;
constexpr double kTimeElapsedForPruneDefaultBufferPool = …;
bool ValidateIdenticalPriority(const egl::ContextMap &contexts, egl::ContextPriority sharedPriority)
{ … }
}
#define ANGLE_ENABLE_BUFFER_POOL_STATS_LOGGING …
ShareGroupVk::ShareGroupVk(const egl::ShareGroupState &state)
: … { … }
void ShareGroupVk::onContextAdd()
{ … }
angle::Result ShareGroupVk::unifyContextsPriority(ContextVk *newContextVk)
{ … }
angle::Result ShareGroupVk::lockDefaultContextsPriority(ContextVk *contextVk)
{ … }
angle::Result ShareGroupVk::updateContextsPriority(ContextVk *contextVk,
egl::ContextPriority newPriority)
{ … }
void ShareGroupVk::onDestroy(const egl::Display *display)
{ … }
angle::Result ShareGroupVk::onMutableTextureUpload(ContextVk *contextVk, TextureVk *newTexture)
{ … }
void ShareGroupVk::onTextureRelease(TextureVk *textureVk)
{ … }
angle::Result ShareGroupVk::scheduleMonolithicPipelineCreationTask(
ContextVk *contextVk,
vk::WaitableMonolithicPipelineCreationTask *taskOut)
{ … }
void ShareGroupVk::waitForCurrentMonolithicPipelineCreationTask()
{ … }
angle::Result TextureUpload::onMutableTextureUpload(ContextVk *contextVk, TextureVk *newTexture)
{ … }
void TextureUpload::onTextureRelease(TextureVk *textureVk)
{ … }
vk::BufferPool *ShareGroupVk::getDefaultBufferPool(vk::Renderer *renderer,
VkDeviceSize size,
uint32_t memoryTypeIndex,
BufferUsageType usageType)
{ … }
void ShareGroupVk::pruneDefaultBufferPools(vk::Renderer *renderer)
{ … }
bool ShareGroupVk::isDueForBufferPoolPrune(vk::Renderer *renderer)
{ … }
void ShareGroupVk::calculateTotalBufferCount(size_t *bufferCount, VkDeviceSize *totalSize) const
{ … }
void ShareGroupVk::logBufferPools() const
{ … }
}