Files
compute-runtime/shared/source/kernel/dispatch_kernel_encoder_interface.h
Filip Hazubski 35d1f2e341 Add debug flag to control programming of thread arbitration policy with SCM
Related-To: NEO-6801

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2022-05-27 11:35:41 +02:00

54 lines
1.5 KiB
C++

/*
* Copyright (C) 2020-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <cstddef>
#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 int32_t getSchedulingHintExp() const = 0;
virtual ImplicitArgs *getImplicitArgs() const = 0;
};
} // namespace NEO