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 //! 26 //! \file mhw_render_xe_hp_base.h 27 //! \brief Defines functions for constructing render engine commands on Gen12_5_plus platforms 28 //! 29 30 #ifndef __mhw_render_xe_xpm_base_H__ 31 #define __mhw_render_xe_xpm_base_H__ 32 33 #include "mhw_render_generic.h" 34 #include "mhw_render_g12_X.h" 35 #include "mhw_mmio_g12.h" 36 #include "mhw_render_hwcmd_xe_hp_base.h" 37 38 struct MHW_STATE_COMPUTE_MODE_PARAMS 39 { MHW_STATE_COMPUTE_MODE_PARAMSMHW_STATE_COMPUTE_MODE_PARAMS40 MHW_STATE_COMPUTE_MODE_PARAMS() : enableLargeGrf(false) {} 41 42 bool enableLargeGrf; 43 }; 44 45 class MhwRenderInterfaceXe_Xpm_Base : public MhwRenderInterfaceG12 46 { 47 public: MhwRenderInterfaceXe_Xpm_Base(MhwMiInterface * miInterface,PMOS_INTERFACE osInterface,MEDIA_SYSTEM_INFO * gtSystemInfo,uint8_t newStateHeapManagerRequested)48 MhwRenderInterfaceXe_Xpm_Base( 49 MhwMiInterface * miInterface, 50 PMOS_INTERFACE osInterface, 51 MEDIA_SYSTEM_INFO *gtSystemInfo, 52 uint8_t newStateHeapManagerRequested) : 53 MhwRenderInterfaceG12(miInterface, osInterface, gtSystemInfo, newStateHeapManagerRequested) 54 { 55 MHW_FUNCTION_ENTER; 56 } 57 ~MhwRenderInterfaceXe_Xpm_Base()58 virtual ~MhwRenderInterfaceXe_Xpm_Base() { MHW_FUNCTION_ENTER; } 59 60 virtual MOS_STATUS Add3DStateBindingTablePoolAllocCmd( 61 MOS_COMMAND_BUFFER * cmdBuffer, 62 mhw_render_xe_xpm_base::_3DSTATE_BINDING_TABLE_POOL_ALLOC_CMD cmd); 63 64 virtual MOS_STATUS AddCfeStateCmd( 65 PMOS_COMMAND_BUFFER cmdBuffer, 66 PMHW_VFE_PARAMS params); 67 68 virtual MOS_STATUS AddComputeWalkerCmd( 69 PMOS_COMMAND_BUFFER cmdBuffer, 70 PMHW_GPGPU_WALKER_PARAMS gpgpuWalkerParams, 71 PMHW_ID_ENTRY_PARAMS interfaceDescriptorParams, 72 PMOS_RESOURCE postsyncResource, 73 uint32_t resourceOffset); 74 75 MOS_STATUS AddStateComputeModeCmd( 76 const MHW_STATE_COMPUTE_MODE_PARAMS &computeStateMode, 77 MOS_COMMAND_BUFFER * cmdBuffer); 78 79 MOS_STATUS AddStateBaseAddrCmd( 80 PMOS_COMMAND_BUFFER cmdBuffer, 81 PMHW_STATE_BASE_ADDR_PARAMS params); 82 }; 83 #endif 84