2018-04-05 00:38:36 +08:00
|
|
|
/*
|
2021-03-29 22:46:41 +08:00
|
|
|
* Copyright (C) 2018-2021 Intel Corporation
|
2018-04-05 00:38:36 +08:00
|
|
|
*
|
2018-09-18 15:11:08 +08:00
|
|
|
* SPDX-License-Identifier: MIT
|
2018-04-05 00:38:36 +08:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2018-06-21 18:06:32 +08:00
|
|
|
#pragma once
|
2020-02-24 05:44:01 +08:00
|
|
|
#include "shared/source/commands/bxml_generator_glue.h"
|
|
|
|
#include "shared/source/gen8/hw_info.h"
|
|
|
|
#include "shared/source/helpers/debug_helpers.h"
|
2019-02-27 18:39:32 +08:00
|
|
|
|
2018-06-21 18:06:32 +08:00
|
|
|
#include "igfxfmid.h"
|
2018-04-05 00:38:36 +08:00
|
|
|
|
2019-02-27 18:39:32 +08:00
|
|
|
#include <cstddef>
|
|
|
|
|
2018-06-21 18:06:32 +08:00
|
|
|
//forward declaration for parsing logic
|
2018-10-22 21:09:08 +08:00
|
|
|
template <class T>
|
|
|
|
struct CmdParse;
|
2019-03-26 18:59:46 +08:00
|
|
|
namespace NEO {
|
2018-09-07 23:04:18 +08:00
|
|
|
|
2018-06-21 18:06:32 +08:00
|
|
|
struct GEN8 {
|
2020-02-24 05:44:01 +08:00
|
|
|
#include "shared/source/generated/gen8/hw_cmds_generated_gen8.inl"
|
2020-04-27 21:40:12 +08:00
|
|
|
|
|
|
|
struct DataPortBindlessSurfaceExtendedMessageDescriptor {
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
uint32_t bindlessSurfaceOffset : 20;
|
|
|
|
uint32_t reserved : 1;
|
|
|
|
uint32_t executionUnitExtendedMessageDescriptorDefinition : 11;
|
|
|
|
};
|
|
|
|
uint32_t packed;
|
|
|
|
};
|
|
|
|
|
|
|
|
DataPortBindlessSurfaceExtendedMessageDescriptor() {
|
|
|
|
packed = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void setBindlessSurfaceOffset(uint32_t offsetInBindlessSurfaceHeapInBytes) {
|
|
|
|
bindlessSurfaceOffset = offsetInBindlessSurfaceHeapInBytes >> 6;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t getBindlessSurfaceOffsetToPatch() {
|
|
|
|
return bindlessSurfaceOffset << 12;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
static_assert(sizeof(DataPortBindlessSurfaceExtendedMessageDescriptor) == sizeof(DataPortBindlessSurfaceExtendedMessageDescriptor::packed), "");
|
2018-06-21 18:06:32 +08:00
|
|
|
};
|
|
|
|
struct BDWFamily : public GEN8 {
|
2018-10-26 18:45:04 +08:00
|
|
|
using PARSE = CmdParse<BDWFamily>;
|
2018-09-27 21:22:36 +08:00
|
|
|
using GfxFamily = BDWFamily;
|
|
|
|
using WALKER_TYPE = GPGPU_WALKER;
|
2019-10-01 17:51:31 +08:00
|
|
|
using VFE_STATE_TYPE = MEDIA_VFE_STATE;
|
2019-04-03 15:34:03 +08:00
|
|
|
using XY_COPY_BLT = typename GfxFamily::XY_SRC_COPY_BLT;
|
2018-12-27 23:01:22 +08:00
|
|
|
using MI_STORE_REGISTER_MEM_CMD = typename GfxFamily::MI_STORE_REGISTER_MEM;
|
2021-03-29 22:46:41 +08:00
|
|
|
using TimestampPacketType = uint32_t;
|
2018-06-21 18:06:32 +08:00
|
|
|
static const GPGPU_WALKER cmdInitGpgpuWalker;
|
|
|
|
static const INTERFACE_DESCRIPTOR_DATA cmdInitInterfaceDescriptorData;
|
|
|
|
static const MEDIA_INTERFACE_DESCRIPTOR_LOAD cmdInitMediaInterfaceDescriptorLoad;
|
|
|
|
static const MEDIA_STATE_FLUSH cmdInitMediaStateFlush;
|
|
|
|
static const MI_BATCH_BUFFER_END cmdInitBatchBufferEnd;
|
|
|
|
static const MI_BATCH_BUFFER_START cmdInitBatchBufferStart;
|
|
|
|
static const PIPE_CONTROL cmdInitPipeControl;
|
2018-11-02 13:59:42 +08:00
|
|
|
static const MI_SEMAPHORE_WAIT cmdInitMiSemaphoreWait;
|
2019-01-18 00:10:12 +08:00
|
|
|
static const RENDER_SURFACE_STATE cmdInitRenderSurfaceState;
|
|
|
|
static const MI_LOAD_REGISTER_IMM cmdInitLoadRegisterImm;
|
|
|
|
static const MI_LOAD_REGISTER_REG cmdInitLoadRegisterReg;
|
|
|
|
static const MI_LOAD_REGISTER_MEM cmdInitLoadRegisterMem;
|
|
|
|
static const MI_STORE_DATA_IMM cmdInitStoreDataImm;
|
|
|
|
static const MI_STORE_REGISTER_MEM cmdInitStoreRegisterMem;
|
|
|
|
static const MI_NOOP cmdInitNoop;
|
|
|
|
static const MI_REPORT_PERF_COUNT cmdInitReportPerfCount;
|
|
|
|
static const MI_ATOMIC cmdInitAtomic;
|
|
|
|
static const PIPELINE_SELECT cmdInitPipelineSelect;
|
|
|
|
static const MI_ARB_CHECK cmdInitArbCheck;
|
|
|
|
static const MEDIA_VFE_STATE cmdInitMediaVfeState;
|
|
|
|
static const STATE_BASE_ADDRESS cmdInitStateBaseAddress;
|
|
|
|
static const MEDIA_SURFACE_STATE cmdInitMediaSurfaceState;
|
|
|
|
static const SAMPLER_STATE cmdInitSamplerState;
|
|
|
|
static const GPGPU_CSR_BASE_ADDRESS cmdInitGpgpuCsrBaseAddress;
|
|
|
|
static const STATE_SIP cmdInitStateSip;
|
|
|
|
static const BINDING_TABLE_STATE cmdInitBindingTableState;
|
|
|
|
static const MI_USER_INTERRUPT cmdInitUserInterrupt;
|
2019-04-03 15:34:03 +08:00
|
|
|
static const XY_SRC_COPY_BLT cmdInitXyCopyBlt;
|
|
|
|
static const MI_FLUSH_DW cmdInitMiFlushDw;
|
2020-04-28 16:24:22 +08:00
|
|
|
static const XY_COLOR_BLT cmdInitXyColorBlt;
|
2018-04-05 00:38:36 +08:00
|
|
|
|
2018-06-21 18:06:32 +08:00
|
|
|
static constexpr bool supportsCmdSet(GFXCORE_FAMILY cmdSetBaseFamily) {
|
|
|
|
return cmdSetBaseFamily == IGFX_GEN8_CORE;
|
|
|
|
}
|
|
|
|
};
|
2018-04-05 00:38:36 +08:00
|
|
|
|
2019-03-26 18:59:46 +08:00
|
|
|
} // namespace NEO
|