[Media Common] mhw head file clean up for self contain
[Media Common][APO] mhw head file clean up for self contain.
diff --git a/media_common/agnostic/common/hw/mhw_mi.h b/media_common/agnostic/common/hw/mhw_mi.h
index cbff986..df16481 100644
--- a/media_common/agnostic/common/hw/mhw_mi.h
+++ b/media_common/agnostic/common/hw/mhw_mi.h
@@ -28,13 +28,14 @@
#ifndef __MHW_MI_H__
#define __MHW_MI_H__
-class MhwCpInterface;
-
+#include <memory>
+#include "mos_defs.h"
#include "mos_os.h"
-#include "mhw_utilities.h"
-#include "mhw_cp_interface.h"
#include "mhw_mmio.h"
-#include "mhw_mi_itf.h"
+#include "mhw_utilities_next.h"
+#include "mos_os_specific.h"
+
+class MhwCpInterface;
#define MHW_MI_WATCHDOG_ENABLE_COUNTER 0x0
#define MHW_MI_WATCHDOG_DISABLE_COUNTER 0x1
diff --git a/media_driver/agnostic/common/hw/mhw_mi.cpp b/media_driver/agnostic/common/hw/mhw_mi.cpp
index 4ec20d7..cbb2c01 100644
--- a/media_driver/agnostic/common/hw/mhw_mi.cpp
+++ b/media_driver/agnostic/common/hw/mhw_mi.cpp
@@ -26,6 +26,7 @@
//!
#include "mhw_mi.h"
+#include "mhw_cp_interface.h"
MhwMiInterface::MhwMiInterface(
MhwCpInterface *cpInterface,
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
index 60d1741..e3d4594 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_hcp_generic.h
@@ -29,6 +29,7 @@
#define _MHW_VDBOX_HCP_GENERIC_H_
#include "mhw_vdbox_hcp_interface.h"
+#include "mhw_cp_interface.h"
//! MHW Vdbox Hcp generic interface
/*!
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
index 53a4482..12eea7c 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_huc_generic.h
@@ -29,6 +29,7 @@
#define _MHW_VDBOX_HUC_GENERIC_H_
#include "mhw_vdbox_huc_interface.h"
+#include "mhw_cp_interface.h"
//! MHW Vdbox Huc generic interface
/*!
diff --git a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
index 02cdf57..f65803e 100644
--- a/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
+++ b/media_driver/agnostic/common/hw/vdbox/mhw_vdbox_mfx_generic.h
@@ -29,6 +29,7 @@
#define _MHW_VDBOX_MFX_GENERIC_H_
#include "mhw_vdbox_mfx_interface.h"
+#include "mhw_cp_interface.h"
//! MHW Vdbox Mfx generic interface
/*!
diff --git a/media_driver/agnostic/common/shared/null_hardware.cpp b/media_driver/agnostic/common/shared/null_hardware.cpp
index a5b6e6e..2561bf1 100644
--- a/media_driver/agnostic/common/shared/null_hardware.cpp
+++ b/media_driver/agnostic/common/shared/null_hardware.cpp
@@ -25,6 +25,7 @@
#include "mos_os_mock_adaptor.h"
#include "null_hardware.h"
#include "mhw_mi.h"
+#include "mhw_mi_itf.h"
bool NullHW::m_initilized = false;
bool NullHW::m_enabled = false;
diff --git a/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h b/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
index f5f07c1..9083556 100644
--- a/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
+++ b/media_driver/agnostic/gen12/hw/mhw_mmio_g12.h
@@ -137,4 +137,63 @@
#define M_CCS_HW_FRONT_END_MMIO_MASK 0x7FF
+// Media Engine
+#define M_MMIO_MAX_RELATIVE_OFFSET 0x3FFF //!< Max reg relative offset in an engine
+#define M_MMIO_MEDIA_LOW_OFFSET 0x1C0000 //!< Low bound of VDBox and VEBox MMIO offset
+#define M_MMIO_MEDIA_HIGH_OFFSET 0x200000 //!< High bound of VDBox and VEBox MMIO offset
+
+//Render
+#define M_MMIO_RCS_AUX_TABLE_BASE_LOW 0x4200
+#define M_MMIO_RCS_AUX_TABLE_BASE_HIGH 0x4204
+#define M_MMIO_RCS_AUX_TABLE_INVALIDATE 0x4208
+#define M_MMIO_RCS_HW_FE_REMAP_RANGE_BEGIN 0x2000
+#define M_MMIO_RCS_HW_FE_REMAP_RANGE_END 0x27FF
+#define M_MMIO_RCS_AUX_TBL_REMAP_RANGE_BEGIN 0x4200
+#define M_MMIO_RCS_AUX_TBL_REMAP_RANGE_END 0x420F
+#define M_MMIO_RCS_TRTT_REMAP_RANGE_BEGIN 0x4400
+#define M_MMIO_RCS_TRTT_REMAP_RANGE_END 0x441F
+
+#define M_MMIO_MEDIA_REG_BASE 0X380000 //!<Media Engine Base
+
+//VD
+#define M_MMIO_VD0_AUX_TABLE_BASE_LOW 0x4210
+#define M_MMIO_VD0_AUX_TABLE_BASE_HIGH 0x4214
+#define M_MMIO_VD0_AUX_TABLE_INVALIDATE 0x4218
+#define M_MMIO_VD1_AUX_TABLE_BASE_LOW 0x4220
+#define M_MMIO_VD1_AUX_TABLE_BASE_HIGH 0x4224
+#define M_MMIO_VD1_AUX_TABLE_INVALIDATE 0x4228
+#define M_MMIO_VD2_AUX_TABLE_BASE_LOW 0x4290
+#define M_MMIO_VD2_AUX_TABLE_BASE_HIGH 0x4294
+#define M_MMIO_VD2_AUX_TABLE_INVALIDATE 0x4298
+#define M_MMIO_VD3_AUX_TABLE_BASE_LOW 0x42A0
+#define M_MMIO_VD3_AUX_TABLE_BASE_HIGH 0x42A4
+#define M_MMIO_VD3_AUX_TABLE_INVALIDATE 0x42A8
+
+//VE
+#define M_MMIO_VE0_AUX_TABLE_BASE_LOW 0x4230
+#define M_MMIO_VE0_AUX_TABLE_BASE_HIGH 0x4234
+#define M_MMIO_VE0_AUX_TABLE_INVALIDATE 0x4238
+#define M_MMIO_VE1_AUX_TABLE_BASE_LOW 0x42B0
+#define M_MMIO_VE1_AUX_TABLE_BASE_HIGH 0x42B4
+#define M_MMIO_VE1_AUX_TABLE_INVALIDATE 0x42B8
+
+//Compute
+#define M_MMIO_CCS0_AUX_TABLE_BASE_LOW 0x42C0
+#define M_MMIO_CCS0_AUX_TABLE_BASE_HIGH 0x42C4
+#define M_MMIO_CCS0_AUX_TABLE_INVALIDATE 0x42C8
+#define M_MMIO_CCS0_HW_FRONT_END_BASE_BEGIN 0x1A000
+#define M_MMIO_CCS0_HW_FRONT_END_BASE_END 0x1A7FF
+#define M_MMIO_CCS1_HW_FRONT_END_BASE_BEGIN 0x1C000
+#define M_MMIO_CCS1_HW_FRONT_END_BASE_END 0x1C7FF
+#define M_MMIO_CCS2_HW_FRONT_END_BASE_BEGIN 0x1E000
+#define M_MMIO_CCS2_HW_FRONT_END_BASE_END 0x1E7FF
+#define M_MMIO_CCS3_HW_FRONT_END_BASE_BEGIN 0x26000
+#define M_MMIO_CCS3_HW_FRONT_END_BASE_END 0x267FF
+
+//L3 cache configure
+#define M_MMIO_RCS_L3ALLOCREG 0xB134
+#define M_MMIO_CCS0_L3ALLOCREG 0xB234
+#define M_MMIO_RCS_TCCNTLREG 0xB138
+#define M_MMIO_CCS0_TCCNTLREG 0xB238
+
#endif //__MHW_MMIO_G12_H__
diff --git a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
index c42752f..0ec9956 100644
--- a/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
+++ b/media_driver/media_softlet/agnostic/Xe_M/Xe_XPM_base/hw/mhw_mi_xe_xpm_base_impl.h
@@ -366,6 +366,91 @@
return MOS_STATUS_SUCCESS;
}
+ uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) override
+ {
+ uint32_t mmioRegisters = MHW_MMIO_RCS_AUX_TABLE_NONE;
+
+ switch (opCode) {
+ case MHW_MMIO_RCS_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_RCS_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_RCS_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_RCS_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VD0_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VD0_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VD0_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VD0_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VD1_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VD1_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VD1_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VD1_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VD2_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VD2_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VD2_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VD2_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VD3_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VD3_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VD3_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VD3_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VE0_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VE0_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VE0_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_VE1_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_VE1_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_VE1_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_VE1_AUX_TABLE_INVALIDATE;
+ break;
+ case MHW_MMIO_CCS0_AUX_TABLE_BASE_LOW:
+ mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_LOW;
+ break;
+ case MHW_MMIO_CCS0_AUX_TABLE_BASE_HIGH:
+ mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_HIGH;
+ break;
+ case MHW_MMIO_CCS0_AUX_TABLE_INVALIDATE:
+ mmioRegisters = M_MMIO_CCS0_AUX_TABLE_INVALIDATE;
+ break;
+ default:
+ MHW_ASSERTMESSAGE("Invalid mmio data provided");;
+ break;
+ }
+
+ return mmioRegisters;
+ }
+
MOS_STATUS AddMiBatchBufferEnd(
PMOS_COMMAND_BUFFER cmdBuffer,
PMHW_BATCH_BUFFER batchBuffer) override
diff --git a/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp b/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
index d84e9a4..e4065cf 100644
--- a/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
+++ b/media_driver/media_softlet/agnostic/common/vp_vebox_cmd_packet_legacy.cpp
@@ -34,6 +34,7 @@
#include "vp_feature_caps.h"
#include "vp_platform_interface.h"
#include "mhw_vebox_itf.h"
+#include "mhw_mi_itf.h"
namespace vp {
@@ -1464,9 +1465,9 @@
VP_RENDER_CHK_NULL_RETURN(pVeboxInterface);
miItf = std::static_pointer_cast<mhw::mi::Itf>(pMhwMiInterface->GetNewMiInterface());
- if (m_veboxItf)
+ if (miItf)
{
- VP_RENDER_CHK_STATUS_RETURN(m_veboxItf->setVeboxPrologCmd(miItf, CmdBuffer));
+ VP_RENDER_CHK_STATUS_RETURN(miItf->SetPrologCmd(CmdBuffer));
}
else
{
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h b/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
index fcf090d..a724031 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_cmdpar.h
@@ -36,17 +36,6 @@
{
namespace mi
{
- static const uint32_t MHW_MI_WATCHDOG_ENABLE_COUNTER = 0x0;
- static const uint32_t MHW_MI_WATCHDOG_DISABLE_COUNTER = 0x1;
- static const uint32_t MHW_MI_DEFAULT_WATCHDOG_THRESHOLD_IN_MS = 60;
- static const uint32_t MHW_MI_ENCODER_16K_WATCHDOG_THRESHOLD_IN_MS = 2000;
- static const uint32_t MHW_MI_ENCODER_8K_WATCHDOG_THRESHOLD_IN_MS = 500;
- static const uint32_t MHW_MI_ENCODER_4K_WATCHDOG_THRESHOLD_IN_MS = 100;
- static const uint32_t MHW_MI_ENCODER_FHD_WATCHDOG_THRESHOLD_IN_MS = 50;
- static const uint32_t MHW_MI_DECODER_720P_WATCHDOG_THRESHOLD_IN_MS = 10;
- static const uint32_t MHW_MI_DECODER_16K_WATCHDOG_THRESHOLD_IN_MS = 180;
- static const uint32_t MHW_MI_DECODER_16Kx16K_WATCHDOG_THRESHOLD_IN_MS = 256;
- static const uint32_t MHW_MI_WATCHDOG_COUNTS_PER_MILLISECOND = (19200123 / 1000); // Time stamp counts per millisecond
enum MHW_COMMON_MI_SEMAPHORE_COMPARE_OPERATION
{
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_impl.h b/media_softlet/agnostic/common/hw/mhw_mi_impl.h
index 24766d3..44e579a 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_impl.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_impl.h
@@ -187,90 +187,7 @@
return MOS_STATUS_SUCCESS;
}
- uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) override
- {
- uint32_t mmioRegisters = MHW_MMIO_RCS_AUX_TABLE_NONE;
-
- switch (opCode) {
- case MHW_MMIO_RCS_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_RCS_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_RCS_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_RCS_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_RCS_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VD0_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VD0_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VD0_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VD0_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VD0_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VD1_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VD1_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VD1_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VD1_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VD1_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VD2_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VD2_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VD2_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VD2_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VD2_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VD3_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VD3_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VD3_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VD3_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VD3_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VE0_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VE0_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VE0_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VE0_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_VE1_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_VE1_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_VE1_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_VE1_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_VE1_AUX_TABLE_INVALIDATE;
- break;
- case MHW_MMIO_CCS0_AUX_TABLE_BASE_LOW:
- mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_LOW;
- break;
- case MHW_MMIO_CCS0_AUX_TABLE_BASE_HIGH:
- mmioRegisters = M_MMIO_CCS0_AUX_TABLE_BASE_HIGH;
- break;
- case MHW_MMIO_CCS0_AUX_TABLE_INVALIDATE:
- mmioRegisters = M_MMIO_CCS0_AUX_TABLE_INVALIDATE;
- break;
- default:
- MHW_ASSERTMESSAGE("Invalid mmio data provided");;
- break;
- }
-
- return mmioRegisters;
- }
+ virtual uint32_t GetMmioInterfaces(MHW_MMIO_REGISTER_OPCODE opCode) = 0;
MOS_STATUS AddProtectedProlog(MOS_COMMAND_BUFFER *cmdBuffer)
{
@@ -282,6 +199,33 @@
return MOS_STATUS_SUCCESS;
}
+ MOS_STATUS SetPrologCmd(
+ PMOS_COMMAND_BUFFER cmdBuffer)
+ {
+ MOS_STATUS eStatus = MOS_STATUS_SUCCESS;
+ uint64_t auxTableBaseAddr = 0;
+
+ MHW_CHK_NULL_RETURN(cmdBuffer);
+ MHW_CHK_NULL_RETURN(this->m_osItf);
+
+ auxTableBaseAddr = this->m_osItf->pfnGetAuxTableBaseAddr(this->m_osItf);
+
+ if (auxTableBaseAddr)
+ {
+ auto &par = MHW_GETPAR_F(MI_LOAD_REGISTER_IMM)();
+ par = {};
+ par.dwData = (auxTableBaseAddr & 0xffffffff);
+ par.dwRegister = GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_LOW);
+ MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(cmdBuffer);
+
+ par.dwData = ((auxTableBaseAddr >> 32) & 0xffffffff);
+ par.dwRegister = GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH);
+ MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(cmdBuffer);
+ }
+
+ return eStatus;
+ }
+
protected:
using base_t = Itf;
diff --git a/media_softlet/agnostic/common/hw/mhw_mi_itf.h b/media_softlet/agnostic/common/hw/mhw_mi_itf.h
index cdb3721..4a2b2d3 100644
--- a/media_softlet/agnostic/common/hw/mhw_mi_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_mi_itf.h
@@ -105,6 +105,8 @@
virtual MOS_STATUS AddProtectedProlog(MOS_COMMAND_BUFFER *cmdBuffer) = 0;
+ virtual MOS_STATUS SetPrologCmd(PMOS_COMMAND_BUFFER CmdBuffer) = 0;
+
_MI_CMD_DEF(_MHW_CMD_ALL_DEF_FOR_ITF);
MEDIA_CLASS_DEFINE_END(mhw__mi__Itf)
};
diff --git a/media_softlet/agnostic/common/hw/mhw_mmio_common.h b/media_softlet/agnostic/common/hw/mhw_mmio_common.h
index cae5813..5d024d4 100644
--- a/media_softlet/agnostic/common/hw/mhw_mmio_common.h
+++ b/media_softlet/agnostic/common/hw/mhw_mmio_common.h
@@ -64,63 +64,5 @@
static constexpr uint32_t WATCHDOG_COUNT_CTRL_OFFSET_VECS = 0x1C8178;
static constexpr uint32_t WATCHDOG_COUNT_THRESTHOLD_OFFSET_VECS = 0x1C817C;
-// Media Engine
-static constexpr uint32_t M_MMIO_MAX_RELATIVE_OFFSET = 0x3FFF; //!< Max reg relative offset in an engine
-static constexpr uint32_t M_MMIO_MEDIA_LOW_OFFSET = 0x1C0000; //!< Low bound of VDBox and VEBox MMIO offset
-static constexpr uint32_t M_MMIO_MEDIA_HIGH_OFFSET = 0x2000000;//!< High bound of VDBox and VEBox MMIO offset
-
-//Render
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_BASE_LOW = 0x4200;
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_BASE_HIGH = 0x4204;
-static constexpr uint32_t M_MMIO_RCS_AUX_TABLE_INVALIDATE = 0x4208;
-static constexpr uint32_t M_MMIO_RCS_HW_FE_REMAP_RANGE_BEGIN = 0x2000;
-static constexpr uint32_t M_MMIO_RCS_HW_FE_REMAP_RANGE_END = 0x27FF;
-static constexpr uint32_t M_MMIO_RCS_AUX_TBL_REMAP_RANGE_BEGIN = 0x4200;
-static constexpr uint32_t M_MMIO_RCS_AUX_TBL_REMAP_RANGE_END = 0x420F;
-static constexpr uint32_t M_MMIO_RCS_TRTT_REMAP_RANGE_BEGIN = 0x4400;
-static constexpr uint32_t M_MMIO_RCS_TRTT_REMAP_RANGE_END = 0x441F;
-
-static constexpr uint32_t M_MMIO_MEDIA_REG_BASE = 0X380000; //!<Media Engine Base
-
-//VD
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_BASE_LOW = 0x4210;
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_BASE_HIGH = 0x4214;
-static constexpr uint32_t M_MMIO_VD0_AUX_TABLE_INVALIDATE = 0x4218;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_BASE_LOW = 0x4220;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_BASE_HIGH = 0x4224;
-static constexpr uint32_t M_MMIO_VD1_AUX_TABLE_INVALIDATE = 0x4228;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_BASE_LOW = 0x4290;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_BASE_HIGH = 0x4294;
-static constexpr uint32_t M_MMIO_VD2_AUX_TABLE_INVALIDATE = 0x4298;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_BASE_LOW = 0x42A0;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_BASE_HIGH = 0x42A4;
-static constexpr uint32_t M_MMIO_VD3_AUX_TABLE_INVALIDATE = 0x42A8;
-
-//VE
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_BASE_LOW = 0x4230;
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_BASE_HIGH = 0x4234;
-static constexpr uint32_t M_MMIO_VE0_AUX_TABLE_INVALIDATE = 0x4238;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_BASE_LOW = 0x42B0;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_BASE_HIGH = 0x42B4;
-static constexpr uint32_t M_MMIO_VE1_AUX_TABLE_INVALIDATE = 0x42B8;
-
-//Compute
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_BASE_LOW = 0x42C0;
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_BASE_HIGH = 0x42C4;
-static constexpr uint32_t M_MMIO_CCS0_AUX_TABLE_INVALIDATE = 0x42C8;
-static constexpr uint32_t M_MMIO_CCS0_HW_FRONT_END_BASE_BEGIN = 0x1A000;
-static constexpr uint32_t M_MMIO_CCS0_HW_FRONT_END_BASE_END = 0x1A7FF;
-static constexpr uint32_t M_MMIO_CCS1_HW_FRONT_END_BASE_BEGIN = 0x1C000;
-static constexpr uint32_t M_MMIO_CCS1_HW_FRONT_END_BASE_END = 0x1C7FF;
-static constexpr uint32_t M_MMIO_CCS2_HW_FRONT_END_BASE_BEGIN = 0x1E000;
-static constexpr uint32_t M_MMIO_CCS2_HW_FRONT_END_BASE_END = 0x1E7FF;
-static constexpr uint32_t M_MMIO_CCS3_HW_FRONT_END_BASE_BEGIN = 0x26000;
-static constexpr uint32_t M_MMIO_CCS3_HW_FRONT_END_BASE_END = 0x267FF;
-
-//L3 cache configure
-static constexpr uint32_t M_MMIO_RCS_L3ALLOCREG = 0xB134;
-static constexpr uint32_t M_MMIO_CCS0_L3ALLOCREG = 0xB234;
-static constexpr uint32_t M_MMIO_RCS_TCCNTLREG = 0xB138;
-static constexpr uint32_t M_MMIO_CCS0_TCCNTLREG = 0xB238;
#endif //__MHW_MMIO_COMMON_H__
diff --git a/media_softlet/agnostic/common/hw/mhw_render_itf.h b/media_softlet/agnostic/common/hw/mhw_render_itf.h
index 462b226..003ef28 100644
--- a/media_softlet/agnostic/common/hw/mhw_render_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_render_itf.h
@@ -30,6 +30,7 @@
#include "mhw_itf.h"
#include "mhw_render_cmdpar.h"
+#include "mhw_mi_itf.h"
#define _RENDER_CMD_DEF(DEF) \
DEF(PIPELINE_SELECT); \
diff --git a/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h b/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
index 955df46..3027424 100644
--- a/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
+++ b/media_softlet/agnostic/common/hw/mhw_sfc_cmdpar.h
@@ -29,6 +29,7 @@
#define __MHW_SFC_CMDPAR_H__
#include "mhw_sfc.h"
+#include "mhw_cmdpar.h"
#ifdef IGFX_SFC_INTERFACE_EXT_SUPPORT
#include "mhw_sfc_cmdpar_ext.h"
diff --git a/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp b/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
index 60d840c..f86e968 100644
--- a/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
+++ b/media_softlet/agnostic/common/hw/mhw_utilities_next.cpp
@@ -24,11 +24,17 @@
//! \brief This modules implements utilities which are shared by both the HW interface and the state heap interface.
//!
+#include <math.h>
#include "mhw_utilities_next.h"
-#include "mhw_render.h"
#include "mhw_state_heap.h"
#include "hal_oca_interface.h"
#include "mos_interface.h"
+#include "hal_oca_interface_next.h"
+#include "media_skuwa_specific.h"
+#include "mhw_itf.h"
+#include "mhw_mi.h"
+#include "mhw_mi_cmdpar.h"
+#include "mhw_mi_itf.h"
#define MHW_NS_PER_TICK_RENDER_ENGINE 80 // 80 nano seconds per tick in render engine
diff --git a/media_softlet/agnostic/common/hw/mhw_utilities_next.h b/media_softlet/agnostic/common/hw/mhw_utilities_next.h
index 374d9db..4c78e4b 100644
--- a/media_softlet/agnostic/common/hw/mhw_utilities_next.h
+++ b/media_softlet/agnostic/common/hw/mhw_utilities_next.h
@@ -26,10 +26,16 @@
#ifndef __MHW_UTILITIES_NEXT_H__
#define __MHW_UTILITIES_NEXT_H__
+#include <memory>
+#include "mos_defs.h"
#include "mos_os.h"
-#include <math.h>
#include "mos_util_debug.h"
#include "mhw_mmio.h"
+#include "mos_os_hw.h"
+#include "mos_os_specific.h"
+#include "mos_resource_defs.h"
+#include "mos_utilities.h"
+struct _MHW_BATCH_BUFFER;
typedef struct _MHW_RCS_SURFACE_PARAMS MHW_RCS_SURFACE_PARAMS, * PMHW_RCS_SURFACE_PARAMS;
typedef struct _MHW_BATCH_BUFFER MHW_BATCH_BUFFER, * PMHW_BATCH_BUFFER;
diff --git a/media_softlet/agnostic/common/hw/mhw_vebox_impl.h b/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
index 237bd85..f3c6d7e 100644
--- a/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
+++ b/media_softlet/agnostic/common/hw/mhw_vebox_impl.h
@@ -530,35 +530,6 @@
return eStatus;
}
- MOS_STATUS setVeboxPrologCmd(
- std::shared_ptr<mhw::mi::Itf> miItf,
- PMOS_COMMAND_BUFFER CmdBuffer)
- {
- MOS_STATUS eStatus = MOS_STATUS_SUCCESS;
- uint64_t auxTableBaseAddr = 0;
-
- MHW_CHK_NULL_RETURN(miItf);
- MHW_CHK_NULL_RETURN(CmdBuffer);
- MHW_CHK_NULL_RETURN(this->m_osItf);
-
- auxTableBaseAddr = this->m_osItf->pfnGetAuxTableBaseAddr(this->m_osItf);
-
- if (auxTableBaseAddr)
- {
- auto& par = miItf->MHW_GETPAR_F(MI_LOAD_REGISTER_IMM)();
- par = {};
- par.dwData = (auxTableBaseAddr & 0xffffffff);
- par.dwRegister = miItf->GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_LOW);
- miItf->MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(CmdBuffer);
-
- par.dwData = ((auxTableBaseAddr >> 32) & 0xffffffff);
- par.dwRegister = miItf->GetMmioInterfaces(mhw::mi::MHW_MMIO_VE0_AUX_TABLE_BASE_HIGH);
- miItf->MHW_ADDCMD_F(MI_LOAD_REGISTER_IMM)(CmdBuffer);
- }
-
- return eStatus;
- }
-
MOS_STATUS AdjustBoundary(
PMHW_VEBOX_SURFACE_PARAMS pCurrSurf,
uint32_t *pdwSurfaceWidth,
diff --git a/media_softlet/agnostic/common/hw/mhw_vebox_itf.h b/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
index 469140d..ca7eb01 100644
--- a/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
+++ b/media_softlet/agnostic/common/hw/mhw_vebox_itf.h
@@ -72,8 +72,6 @@
virtual MOS_STATUS AddVeboxSurfaces(PMOS_COMMAND_BUFFER pCmdBufferInUse, PMHW_VEBOX_SURFACE_STATE_CMD_PARAMS pVeboxSurfaceStateCmdParams) = 0;
- virtual MOS_STATUS setVeboxPrologCmd(std::shared_ptr<mhw::mi::Itf> miItf, PMOS_COMMAND_BUFFER CmdBuffer) = 0;
-
virtual MOS_STATUS SetVeboxDndiState(PMHW_VEBOX_DNDI_PARAMS pVeboxDndiParams) = 0;
virtual MOS_STATUS SetVeboxIecpState(PMHW_VEBOX_IECP_PARAMS pVeboxIecpParams) = 0;
diff --git a/media_softlet/agnostic/common/shared/packet/media_packet.h b/media_softlet/agnostic/common/shared/packet/media_packet.h
index 0a73d13..3113667 100644
--- a/media_softlet/agnostic/common/shared/packet/media_packet.h
+++ b/media_softlet/agnostic/common/shared/packet/media_packet.h
@@ -33,6 +33,7 @@
#include "mhw_mi.h"
#include "media_status_report.h"
#include "mhw_cmdpar.h"
+#include "mhw_mi_itf.h"
#define __SETPAR(CMD, itf) \
\
diff --git a/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h b/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
index 292fb3a..b3c6fea 100644
--- a/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
+++ b/media_softlet/agnostic/common/shared/profiler/media_perf_profiler_next.h
@@ -27,9 +27,22 @@
#define __MEDIA_PERF_PROFILER_NEXT_H__
#include <map>
+#include <stdint.h>
+#include <memory>
+#include "mos_defs.h"
#include "mos_os.h"
-#include "mhw_mi.h"
#include "media_class_trace.h"
+#include "mhw_mi_itf.h"
+#include "igfxfmid.h"
+#include "mos_defs_specific.h"
+#include "mos_os_specific.h"
+namespace mhw
+{
+ namespace mi
+ {
+ class Itf;
+ }
+} // namespace mhw
using Map = std::map<void*, uint32_t>;
diff --git a/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp b/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
index 8e69a45..38ea991 100644
--- a/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
+++ b/media_softlet/agnostic/common/vp/hal/packet/vp_vebox_cmd_packet.cpp
@@ -1407,9 +1407,9 @@
MOS_STATUS VpVeboxCmdPacket::SetVeboxProCmd(
MOS_COMMAND_BUFFER* CmdBuffer)
{
- VP_RENDER_CHK_NULL_RETURN(m_veboxItf);
+ VP_RENDER_CHK_NULL_RETURN(m_miItf);
- VP_RENDER_CHK_STATUS_RETURN(m_veboxItf->setVeboxPrologCmd(m_miItf, CmdBuffer));
+ VP_RENDER_CHK_STATUS_RETURN(m_miItf->SetPrologCmd(CmdBuffer));
return MOS_STATUS_SUCCESS;
}