1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
/*
* Copyright (C) 2020-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <cstdint>
namespace NEO {
class GraphicsAllocation;
struct ImplicitArgs;
struct KernelDescriptor;
enum class SlmPolicy {
SlmPolicyNone,
SlmPolicyLargeSlm,
SlmPolicyLargeData
};
struct DispatchKernelEncoderI {
virtual ~DispatchKernelEncoderI() = default;
virtual const KernelDescriptor &getKernelDescriptor() const = 0;
virtual const uint32_t *getGroupSize() const = 0;
virtual uint32_t getSlmTotalSize() const = 0;
virtual SlmPolicy getSlmPolicy() const = 0;
virtual const uint8_t *getCrossThreadData() const = 0;
virtual uint32_t getCrossThreadDataSize() const = 0;
virtual uint32_t getThreadExecutionMask() const = 0;
virtual uint32_t getNumThreadsPerThreadGroup() const = 0;
virtual const uint8_t *getPerThreadData() const = 0;
virtual uint32_t getPerThreadDataSize() const = 0;
virtual uint32_t getPerThreadDataSizeForWholeThreadGroup() const = 0;
virtual const uint8_t *getSurfaceStateHeapData() const = 0;
virtual uint32_t getSurfaceStateHeapDataSize() const = 0;
virtual GraphicsAllocation *getIsaAllocation() const = 0;
virtual const uint8_t *getDynamicStateHeapData() const = 0;
virtual uint32_t getRequiredWorkgroupOrder() const = 0;
virtual bool requiresGenerationOfLocalIdsByRuntime() const = 0;
virtual ImplicitArgs *getImplicitArgs() const = 0;
};
} // namespace NEO
|