mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-22 10:17:01 +08:00
43 lines
750 B
C
43 lines
750 B
C
|
|
/*
|
||
|
|
* Copyright (C) 2019 Intel Corporation
|
||
|
|
*
|
||
|
|
* SPDX-License-Identifier: MIT
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "core/helpers/basic_math.h"
|
||
|
|
|
||
|
|
#include <mutex>
|
||
|
|
|
||
|
|
namespace NEO {
|
||
|
|
|
||
|
|
class CommandStreamReceiver;
|
||
|
|
class Context;
|
||
|
|
class Device;
|
||
|
|
class GraphicsAllocation;
|
||
|
|
class MemoryManager;
|
||
|
|
class Kernel;
|
||
|
|
|
||
|
|
class SyncBufferHandler {
|
||
|
|
public:
|
||
|
|
~SyncBufferHandler();
|
||
|
|
|
||
|
|
SyncBufferHandler(Device &device);
|
||
|
|
|
||
|
|
void prepareForEnqueue(size_t workGroupsCount, Kernel &kernel, CommandStreamReceiver &csr);
|
||
|
|
|
||
|
|
protected:
|
||
|
|
void allocateNewBuffer();
|
||
|
|
|
||
|
|
Device &device;
|
||
|
|
MemoryManager &memoryManager;
|
||
|
|
GraphicsAllocation *graphicsAllocation;
|
||
|
|
const size_t bufferSize = 64 * KB;
|
||
|
|
size_t usedBufferSize = 0;
|
||
|
|
std::mutex mutex;
|
||
|
|
};
|
||
|
|
|
||
|
|
} // namespace NEO
|