1 /*===================== begin_copyright_notice ================================== 2 3 # Copyright (c) 2021, Intel Corporation 4 5 # Permission is hereby granted, free of charge, to any person obtaining a 6 # copy of this software and associated documentation files (the "Software"), 7 # to deal in the Software without restriction, including without limitation 8 # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 # and/or sell copies of the Software, and to permit persons to whom the 10 # Software is furnished to do so, subject to the following conditions: 11 12 # The above copyright notice and this permission notice shall be included 13 # in all copies or substantial portions of the Software. 14 15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21 # OTHER DEALINGS IN THE SOFTWARE. 22 23 ======================= end_copyright_notice ==================================*/ 24 //! 25 //! \file mhw_vdbox_hcp_impl_legacy_xe_hpm.h 26 //! \brief Defines functions for constructing Vdbox HCP commands on XE_HPM platform 27 //! 28 29 #ifndef __MHW_VDBOX_HCP_IMPL_LEGACY_XE_HPM_H__ 30 #define __MHW_VDBOX_HCP_IMPL_LEGACY_XE_HPM_H__ 31 32 #include "mhw_vdbox_hcp_impl_xe_hpm.h" 33 #include "mhw_vdbox_hcp_xe_xpm.h" 34 35 class MhwVdboxHcpInterfaceXe_Hpm : public MhwVdboxHcpInterfaceXe_Xpm 36 { 37 public: MhwVdboxHcpInterfaceXe_Hpm(PMOS_INTERFACE osInterface,MhwMiInterface * miInterface,MhwCpInterface * cpInterface,bool decodeInUse)38 MhwVdboxHcpInterfaceXe_Hpm( 39 PMOS_INTERFACE osInterface, 40 MhwMiInterface *miInterface, 41 MhwCpInterface *cpInterface, 42 bool decodeInUse) : MhwVdboxHcpInterfaceXe_Xpm(osInterface, miInterface, cpInterface, decodeInUse) {} 43 GetNewHcpInterface()44 std::shared_ptr<void> GetNewHcpInterface() override 45 { 46 if (!m_hcpItfNew) 47 { 48 auto ptr = std::make_shared<mhw::vdbox::hcp::xe_xpm_base::xe_hpm::Impl>(m_osInterface); 49 ptr->SetCacheabilitySettings(m_cacheabilitySettings); 50 m_hcpItfNew = ptr; 51 } 52 53 return m_hcpItfNew; 54 } ~MhwVdboxHcpInterfaceXe_Hpm()55 ~MhwVdboxHcpInterfaceXe_Hpm() {} 56 }; 57 58 #endif // __MHW_VDBOX_HCP_IMPL_LEGACY_XE_HPM_H__ 59