|
@@ -417,11 +417,11 @@ namespace AZ
|
|
|
|
|
|
// bind RayTracingGlobal, RayTracingScene, and View Srgs
|
|
|
// [GFX TODO][ATOM-15610] Add RenderPass::SetSrgsForRayTracingDispatch
|
|
|
- AZStd::vector<RHI::SingleDeviceShaderResourceGroup*> shaderResourceGroups = { m_shaderResourceGroup->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(RHI::MultiDevice::DefaultDeviceIndex).get() };
|
|
|
+ AZStd::vector<RHI::SingleDeviceShaderResourceGroup*> shaderResourceGroups = { m_shaderResourceGroup->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(context.GetDeviceIndex()).get() };
|
|
|
|
|
|
if (m_requiresRayTracingSceneSrg)
|
|
|
{
|
|
|
- shaderResourceGroups.push_back(rayTracingFeatureProcessor->GetRayTracingSceneSrg()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(RHI::MultiDevice::DefaultDeviceIndex).get());
|
|
|
+ shaderResourceGroups.push_back(rayTracingFeatureProcessor->GetRayTracingSceneSrg()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(context.GetDeviceIndex()).get());
|
|
|
}
|
|
|
|
|
|
if (m_requiresViewSrg)
|
|
@@ -429,26 +429,26 @@ namespace AZ
|
|
|
RPI::ViewPtr view = m_pipeline->GetFirstView(GetPipelineViewTag());
|
|
|
if (view)
|
|
|
{
|
|
|
- shaderResourceGroups.push_back(view->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(RHI::MultiDevice::DefaultDeviceIndex).get());
|
|
|
+ shaderResourceGroups.push_back(view->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(context.GetDeviceIndex()).get());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (m_requiresSceneSrg)
|
|
|
{
|
|
|
- shaderResourceGroups.push_back(scene->GetShaderResourceGroup()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(RHI::MultiDevice::DefaultDeviceIndex).get());
|
|
|
+ shaderResourceGroups.push_back(scene->GetShaderResourceGroup()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(context.GetDeviceIndex()).get());
|
|
|
}
|
|
|
|
|
|
if (m_requiresRayTracingMaterialSrg)
|
|
|
{
|
|
|
- shaderResourceGroups.push_back(rayTracingFeatureProcessor->GetRayTracingMaterialSrg()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(RHI::MultiDevice::DefaultDeviceIndex).get());
|
|
|
+ shaderResourceGroups.push_back(rayTracingFeatureProcessor->GetRayTracingMaterialSrg()->GetRHIShaderResourceGroup()->GetDeviceShaderResourceGroup(context.GetDeviceIndex()).get());
|
|
|
}
|
|
|
|
|
|
dispatchRaysItem.m_shaderResourceGroupCount = aznumeric_cast<uint32_t>(shaderResourceGroups.size());
|
|
|
dispatchRaysItem.m_shaderResourceGroups = shaderResourceGroups.data();
|
|
|
dispatchRaysItem.m_rayTracingPipelineState =
|
|
|
- m_rayTracingPipelineState->GetDeviceRayTracingPipelineState(RHI::MultiDevice::DefaultDeviceIndex).get();
|
|
|
- dispatchRaysItem.m_rayTracingShaderTable = m_rayTracingShaderTable->GetDeviceRayTracingShaderTable(RHI::MultiDevice::DefaultDeviceIndex).get();
|
|
|
- dispatchRaysItem.m_globalPipelineState = m_globalPipelineState->GetDevicePipelineState(RHI::MultiDevice::DefaultDeviceIndex).get();
|
|
|
+ m_rayTracingPipelineState->GetDeviceRayTracingPipelineState(context.GetDeviceIndex()).get();
|
|
|
+ dispatchRaysItem.m_rayTracingShaderTable = m_rayTracingShaderTable->GetDeviceRayTracingShaderTable(context.GetDeviceIndex()).get();
|
|
|
+ dispatchRaysItem.m_globalPipelineState = m_globalPipelineState->GetDevicePipelineState(context.GetDeviceIndex()).get();
|
|
|
|
|
|
// submit the DispatchRays item
|
|
|
context.GetCommandList()->Submit(dispatchRaysItem);
|