#ifndef LIBANGLE_RENDERER_VULKAN_COMMAND_PROCESSOR_H_
#define LIBANGLE_RENDERER_VULKAN_COMMAND_PROCESSOR_H_
#include <condition_variable>
#include <mutex>
#include <queue>
#include <thread>
#include "common/FixedQueue.h"
#include "common/SimpleMutex.h"
#include "common/vulkan/vk_headers.h"
#include "libANGLE/renderer/vulkan/PersistentCommandPool.h"
#include "libANGLE/renderer/vulkan/vk_helpers.h"
namespace rx
{
class CommandProcessor;
namespace vk
{
class ExternalFence;
SharedExternalFence;
constexpr size_t kMaxCommandProcessorTasksLimit = …;
constexpr size_t kInFlightCommandsLimit = …;
constexpr size_t kMaxFinishedCommandsLimit = …;
enum class SubmitPolicy
{ … };
struct Error
{ … };
class FenceRecycler;
class SharedFence final
{ … };
class FenceRecycler
{ … };
struct SwapchainStatus
{ … };
enum class CustomTask
{ … };
class CommandProcessorTask
{ … };
CommandProcessorTaskQueue;
struct CommandBatch final : angle::NonCopyable
{ … };
CommandBatchQueue;
class DeviceQueueMap;
class QueueFamily final : angle::NonCopyable
{ … };
class DeviceQueueMap final
{ … };
class CommandQueue : angle::NonCopyable
{ … };
class CommandProcessor : public Context
{ … };
}
}
#endif