#ifndef LIBANGLE_RENDERER_VULKAN_CONTEXTVK_H_
#define LIBANGLE_RENDERER_VULKAN_CONTEXTVK_H_
#include <condition_variable>
#include "common/PackedEnums.h"
#include "common/vulkan/vk_headers.h"
#include "image_util/loadimage.h"
#include "libANGLE/renderer/ContextImpl.h"
#include "libANGLE/renderer/renderer_utils.h"
#include "libANGLE/renderer/vulkan/DisplayVk.h"
#include "libANGLE/renderer/vulkan/OverlayVk.h"
#include "libANGLE/renderer/vulkan/PersistentCommandPool.h"
#include "libANGLE/renderer/vulkan/ShareGroupVk.h"
#include "libANGLE/renderer/vulkan/vk_helpers.h"
#include "libANGLE/renderer/vulkan/vk_renderer.h"
namespace angle
{
struct FeaturesVk;
}
namespace rx
{
namespace vk
{
class SyncHelper;
}
class ConversionBuffer;
class ProgramExecutableVk;
class WindowSurfaceVk;
class OffscreenSurfaceVk;
class ShareGroupVk;
static constexpr uint32_t kMaxGpuEventNameLen = …;
EventName;
ContextVkDescriptorSetList;
CounterPipelineTypeMap;
enum class GraphicsEventCmdBuf
{ … };
enum class UpdateDepthFeedbackLoopReason
{ … };
static constexpr GLbitfield kBufferMemoryBarrierBits = …;
static constexpr GLbitfield kImageMemoryBarrierBits = …;
class ContextVk : public ContextImpl, public vk::Context, public MultisampleTextureInitializer
{ … };
ANGLE_INLINE angle::Result ContextVk::endRenderPassIfTransformFeedbackBuffer(
const vk::BufferHelper *buffer)
{ … }
ANGLE_INLINE angle::Result ContextVk::onIndexBufferChange(
const vk::BufferHelper *currentIndexBuffer)
{ … }
ANGLE_INLINE angle::Result ContextVk::onVertexBufferChange(const vk::BufferHelper *vertexBuffer)
{ … }
ANGLE_INLINE angle::Result ContextVk::onVertexAttributeChange(size_t attribIndex,
GLuint stride,
GLuint divisor,
angle::FormatID format,
bool compressed,
GLuint relativeOffset,
const vk::BufferHelper *vertexBuffer)
{ … }
ANGLE_INLINE bool ContextVk::hasUnsubmittedUse(const vk::ResourceUse &use) const
{ … }
ANGLE_INLINE bool UseLineRaster(const ContextVk *contextVk, gl::PrimitiveMode mode)
{ … }
uint32_t GetDriverUniformSize(vk::Context *context, PipelineType pipelineType);
}
#define ANGLE_VK_PERF_WARNING(contextVk, severity, ...) …
#define ANGLE_VK_TRACE_EVENT_AND_MARKER(contextVk, ...) …
#endif