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_huc_xe_hpm.h 26 //! \brief Defines functions for constructing Vdbox HUC commands on Xe_HPM platform 27 //! 28 29 #ifndef __MHW_VDBOX_HUC_XE_HPM_H__ 30 #define __MHW_VDBOX_HUC_XE_HPM_H__ 31 32 #include "mhw_vdbox_huc_g12_X.h" 33 #include "mhw_vdbox_huc_impl_xe_hpm.h" 34 35 //! MHW Vdbox HUC interface for Xe_HPM 36 /*! 37 This class defines the HUC command interface for Xe_HPM platforms 38 */ 39 class MhwVdboxHucInterfaceXe_Hpm : public MhwVdboxHucInterfaceG12 40 { 41 public: 42 MhwVdboxHucInterfaceXe_Hpm(PMOS_INTERFACE osInterface,MhwMiInterface * miInterface,MhwCpInterface * cpInterface)43 MhwVdboxHucInterfaceXe_Hpm( 44 PMOS_INTERFACE osInterface, 45 MhwMiInterface *miInterface, 46 MhwCpInterface *cpInterface) : 47 MhwVdboxHucInterfaceG12(osInterface, miInterface, cpInterface) 48 { 49 MHW_FUNCTION_ENTER; 50 } 51 ~MhwVdboxHucInterfaceXe_Hpm()52 ~MhwVdboxHucInterfaceXe_Hpm(){}; 53 GetNewHucInterface()54 std::shared_ptr<void> GetNewHucInterface() override 55 { 56 if (!m_hucItfNew) 57 { 58 auto ptr = std::make_shared<mhw::vdbox::huc::xe_hpm::Impl>(m_osInterface, m_cpInterface); 59 ptr->SetCacheabilitySettings(m_cacheabilitySettings); 60 m_hucItfNew = ptr; 61 } 62 63 return m_hucItfNew; 64 } 65 }; 66 67 #endif // __MHW_VDBOX_HUC_XE_HPM_H__ 68