chromium/third_party/vulkan-validation-layers/src/layers/sync/sync_submit.h

/*
 * Copyright (c) 2019-2024 Valve Corporation
 * Copyright (c) 2019-2024 LunarG, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once
#include "sync/sync_commandbuffer.h"
#include "state_tracker/queue_state.h"

struct PresentedImage;
class QueueBatchContext;
struct QueueSubmitCmdState;
class QueueSyncState;
class SyncValidator;

namespace vvl {
class Semaphore;
}  // namespace vvl

struct AcquiredImage {};

// Information associated with a semaphore signal
struct SignalInfo {};

// Globally tracks signaled semaphores.
SignaledSemaphores;

// The list of changes that should to be applied to SignaledSemaphores.
// These changes are collected during validation phase of QueueSubmit and are applied in the record phase.
struct SignaledSemaphoresUpdate {};

struct FenceSyncState {};

struct PresentedImageRecord {};

struct PresentedImage : public PresentedImageRecord {};
PresentedImages;

// Store references to ResourceUsageRecords with global tag range within a batch
class BatchAccessLog {};

class QueueBatchContext : public CommandExecutionContext, public std::enable_shared_from_this<QueueBatchContext> {};

class QueueSyncState {};

struct QueueSubmitCmdState {};