diff --git a/shared/source/command_container/command_encoder.h b/shared/source/command_container/command_encoder.h index e2902ff350..7a879f0a17 100644 --- a/shared/source/command_container/command_encoder.h +++ b/shared/source/command_container/command_encoder.h @@ -628,6 +628,7 @@ template struct EncodeEnableRayTracing { static void programEnableRayTracing(LinearStream &commandStream, uint64_t backBuffer); static void append3dStateBtd(void *ptr3dStateBtd); + static bool is48bResourceNeededForRayTracing(); }; template diff --git a/shared/source/command_container/command_encoder_from_xe_hpg_core_to_xe2_hpg.inl b/shared/source/command_container/command_encoder_from_xe_hpg_core_to_xe2_hpg.inl index 64a1d3bb4d..3f7c6f450d 100644 --- a/shared/source/command_container/command_encoder_from_xe_hpg_core_to_xe2_hpg.inl +++ b/shared/source/command_container/command_encoder_from_xe_hpg_core_to_xe2_hpg.inl @@ -17,4 +17,9 @@ void EncodeDispatchKernel::setGrfInfo(InterfaceDescriptorType *pInterfac const RootDeviceEnvironment &rootDeviceEnvironment) { } +template +bool EncodeEnableRayTracing::is48bResourceNeededForRayTracing() { + return true; +} + } // namespace NEO diff --git a/shared/source/gen12lp/command_encoder_gen12lp.cpp b/shared/source/gen12lp/command_encoder_gen12lp.cpp index 2652db69be..4e032d1f6a 100644 --- a/shared/source/gen12lp/command_encoder_gen12lp.cpp +++ b/shared/source/gen12lp/command_encoder_gen12lp.cpp @@ -106,6 +106,11 @@ inline void EncodeSurfaceState::encodeExtraCacheSettings(R_SURFACE_STATE template <> inline void EncodeWA::setAdditionalPipeControlFlagsForNonPipelineStateCommand(PipeControlArgs &args) {} +template <> +bool EncodeEnableRayTracing::is48bResourceNeededForRayTracing() { + return true; +} + } // namespace NEO #include "shared/source/command_container/command_encoder_enablers.inl" diff --git a/shared/source/os_interface/product_helper.inl b/shared/source/os_interface/product_helper.inl index 626850086c..85d0727301 100644 --- a/shared/source/os_interface/product_helper.inl +++ b/shared/source/os_interface/product_helper.inl @@ -6,6 +6,7 @@ */ #include "shared/source/aub_mem_dump/aub_mem_dump.h" +#include "shared/source/command_container/command_encoder.h" #include "shared/source/command_stream/stream_properties.h" #include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/direct_submission/direct_submission_controller.h" @@ -837,7 +838,8 @@ bool ProductHelperHw::isCalculationForDisablingEuFusionWithDpasNeede template bool ProductHelperHw::is48bResourceNeededForRayTracing() const { - return true; + using GfxFamily = typename HwMapper::GfxFamily; + return EncodeEnableRayTracing::is48bResourceNeededForRayTracing(); } template diff --git a/shared/test/common/mocks/mock_product_helper.cpp b/shared/test/common/mocks/mock_product_helper.cpp index 26b2dca38f..580289b49d 100644 --- a/shared/test/common/mocks/mock_product_helper.cpp +++ b/shared/test/common/mocks/mock_product_helper.cpp @@ -508,6 +508,11 @@ uint32_t ProductHelperHw::getCacheLineSize() const { return 0x40; } +template <> +bool ProductHelperHw::is48bResourceNeededForRayTracing() const { + return true; +} + } // namespace NEO #include "shared/source/os_interface/product_helper.inl"