Browse Source

Adding missing image conversions

Co-authored-by: Martin Winter <[email protected]>
Co-authored-by: Joerg H. Mueller <[email protected]>
Signed-off-by: Martin Winter <[email protected]>
Martin Winter 1 year ago
parent
commit
491f7c25dc

+ 14 - 14
Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp

@@ -149,7 +149,7 @@ namespace AZ
             m_meshMovedFlag = GetParentScene()->GetViewTagBitRegistry().AcquireTag(MeshCommon::MeshMovedName);
             m_meshMotionDrawListTag = AZ::RHI::RHISystemInterface::Get()->GetDrawListTagRegistry()->AcquireTag(MeshCommon::MotionDrawListTagName);
             m_transparentDrawListTag = AZ::RHI::RHISystemInterface::Get()->GetDrawListTagRegistry()->AcquireTag(s_transparent_Name);
-            
+
             if (auto* console = AZ::Interface<AZ::IConsole>::Get(); console != nullptr)
             {
                 console->GetCvarValue("r_meshInstancingEnabled", m_enableMeshInstancing);
@@ -331,7 +331,7 @@ namespace AZ
                         // so they don't need to be updated here
                         if (!r_meshInstancingEnabled)
                         {
-                            // Unset per mesh shader options 
+                            // Unset per mesh shader options
                             if (removePerMeshShaderOptionFlags)
                             {
                                 for (RPI::MeshDrawPacketList& drawPacketList : meshDataIter->m_drawPacketListsByLod)
@@ -526,7 +526,7 @@ namespace AZ
                 }
             }
         }
-        
+
         void MeshFeatureProcessor::ResizePerViewInstanceVectors(size_t viewCount)
         {
             AZ_PROFILE_SCOPE(RPI, "MeshFeatureProcessor: ResizePerInstanceVectors");
@@ -641,7 +641,7 @@ namespace AZ
                 AZ_Assert(false, "Invalid mesh handle");
                 return 1;
             }
-        }        
+        }
 
 
         void MeshFeatureProcessor::AddVisibleObjectsToBuckets(
@@ -868,11 +868,11 @@ namespace AZ
             AZStd::vector<TransformServiceFeatureProcessorInterface::ObjectId>& perViewInstanceData = m_perViewInstanceData[viewIndex];
             instanceDataBufferHandler.UpdateBuffer(perViewInstanceData.data(), static_cast<uint32_t>(perViewInstanceData.size()));
         }
-        
+
         void MeshFeatureProcessor::OnBeginPrepareRender()
         {
             m_meshDataChecker.soft_lock();
-                        
+
             // The per-mesh shader option flags are set in feature processors' simulate function
             // So we want to process the flags here to update the draw packets if needed.
             // Update MeshDrawPacket's shader options if PerMeshShaderOption is enabled
@@ -959,7 +959,7 @@ namespace AZ
                                     }
                                     else
                                     {
-                                        instanceGroupDataIter->m_drawPacket.UnsetShaderOption(shaderOption); 
+                                        instanceGroupDataIter->m_drawPacket.UnsetShaderOption(shaderOption);
                                     }
                                 });
                             instanceGroupDataIter->UpdateDrawPacket(*GetParentScene(), true);
@@ -1119,7 +1119,7 @@ namespace AZ
 
             return {};
         }
-        
+
         const RPI::MeshDrawPacketLods& MeshFeatureProcessor::GetDrawPackets(const MeshHandle& meshHandle) const
         {
             // This function is being deprecated. It's currently used to get draw packets so that we can print some
@@ -1785,7 +1785,7 @@ namespace AZ
                     for (PostCullingInstanceData& postCullingData : postCullingInstanceDataList)
                     {
                         postCullingData.m_instanceGroupHandle->RemoveAssociatedInstance(this);
-                        
+
                         // Remove instance will decrement the use-count of the instance group, and only release the instance group
                         // if nothing else is referring to it.
                         meshInstanceManager.RemoveInstance(postCullingData.m_instanceGroupHandle);
@@ -1829,7 +1829,7 @@ namespace AZ
             {
                 m_postCullingInstanceDataByLod.resize(modelLodCount);
             }
-            
+
             for (size_t modelLodIndex = 0; modelLodIndex < modelLodCount; ++modelLodIndex)
             {
                 BuildDrawPacketList(meshFeatureProcessor, modelLodIndex);
@@ -1940,7 +1940,7 @@ namespace AZ
             }
 
             auto meshMotionDrawListTag = AZ::RHI::RHISystemInterface::Get()->GetDrawListTagRegistry()->FindTag(MeshCommon::MotionDrawListTagName);
-            
+
             for (size_t meshIndex = 0; meshIndex < meshCount; ++meshIndex)
             {
                 const auto meshes = modelLod.GetMeshes();
@@ -2044,7 +2044,7 @@ namespace AZ
                     m_postCullingInstanceDataByLod[modelLodIndex].push_back(postCullingData);
 
                     // The instaceGroup needs to keep a reference of this ModelDataInstance so it can
-                    // notify the ModelDataInstance when the MeshDrawPacket is changed or get the cullable's flags 
+                    // notify the ModelDataInstance when the MeshDrawPacket is changed or get the cullable's flags
                     instanceGroupInsertResult.m_handle->AddAssociatedInstance(this);
                 }
 
@@ -2082,7 +2082,7 @@ namespace AZ
                     drawPacket.SetStencilRef(stencilRef);
                     drawPacket.SetSortKey(m_sortKey);
                     drawPacket.SetEnableDraw(meshMotionDrawListTag, m_flags.m_isDrawMotion);
-                    // Note: do not add drawPacket.Update() here. It's not needed.It may cause issue with m_shaderVariantHandler which captures 'this' pointer. 
+                    // Note: do not add drawPacket.Update() here. It's not needed.It may cause issue with m_shaderVariantHandler which captures 'this' pointer.
 
                     if (!r_meshInstancingEnabled)
                     {
@@ -2101,7 +2101,7 @@ namespace AZ
 
                 // For mesh instancing only
                 // If this model needs to draw motion, enable draw motion vector for the DrawPacket.
-                // This means any mesh instances which are using this draw packet would draw motion vector too. This is fine, just not optimized. 
+                // This means any mesh instances which are using this draw packet would draw motion vector too. This is fine, just not optimized.
                 if (r_meshInstancingEnabled && m_flags.m_isDrawMotion)
                 {
                     MeshInstanceGroupData& instanceGroupData = meshInstanceManager[instanceGroupInsertResult.m_handle];

+ 20 - 20
Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp

@@ -478,11 +478,11 @@ namespace AZ
                     m_meshBuffers.RemoveResource(subMesh.m_bitangentShaderBufferView.get());
                     m_meshBuffers.RemoveResource(subMesh.m_uvShaderBufferView.get());
 
-                    m_materialTextures.RemoveResource(subMesh.m_baseColorImageView.get());
-                    m_materialTextures.RemoveResource(subMesh.m_normalImageView.get());
-                    m_materialTextures.RemoveResource(subMesh.m_metallicImageView.get());
-                    m_materialTextures.RemoveResource(subMesh.m_roughnessImageView.get());
-                    m_materialTextures.RemoveResource(subMesh.m_emissiveImageView.get());
+                    m_materialTextures.RemoveResource(subMesh.m_baseColorImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                    m_materialTextures.RemoveResource(subMesh.m_normalImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                    m_materialTextures.RemoveResource(subMesh.m_metallicImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                    m_materialTextures.RemoveResource(subMesh.m_roughnessImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                    m_materialTextures.RemoveResource(subMesh.m_emissiveImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
 #endif
 
                     if (globalIndex < m_subMeshes.size() - 1)
@@ -969,27 +969,27 @@ namespace AZ
             {
                 m_materialTextureIndices.RemoveEntry(materialInfo.m_textureStartIndex);
 #if !USE_BINDLESS_SRG
-                m_materialTextures.RemoveResource(subMesh.m_baseColorImageView.get());
-                m_materialTextures.RemoveResource(subMesh.m_normalImageView.get());
-                m_materialTextures.RemoveResource(subMesh.m_metallicImageView.get());
-                m_materialTextures.RemoveResource(subMesh.m_roughnessImageView.get());
-                m_materialTextures.RemoveResource(subMesh.m_emissiveImageView.get());
+                m_materialTextures.RemoveResource(subMesh.m_baseColorImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                m_materialTextures.RemoveResource(subMesh.m_normalImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                m_materialTextures.RemoveResource(subMesh.m_metallicImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                m_materialTextures.RemoveResource(subMesh.m_roughnessImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
+                m_materialTextures.RemoveResource(subMesh.m_emissiveImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get());
 #endif
             }
 
             materialInfo.m_textureStartIndex = m_materialTextureIndices.AddEntry({
 #if USE_BINDLESS_SRG
-                subMeshMaterial.m_baseColorImageView.get() ? subMeshMaterial.m_baseColorImageView->GetBindlessReadIndex() : InvalidIndex,
-                subMeshMaterial.m_normalImageView.get() ? subMeshMaterial.m_normalImageView->GetBindlessReadIndex() : InvalidIndex,
-                subMeshMaterial.m_metallicImageView.get() ? subMeshMaterial.m_metallicImageView->GetBindlessReadIndex() : InvalidIndex,
-                subMeshMaterial.m_roughnessImageView.get() ? subMeshMaterial.m_roughnessImageView->GetBindlessReadIndex() : InvalidIndex,
-                subMeshMaterial.m_emissiveImageView.get() ? subMeshMaterial.m_emissiveImageView->GetBindlessReadIndex() : InvalidIndex
+                subMeshMaterial.m_baseColorImageView.get() ? subMeshMaterial.m_baseColorImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex)->GetBindlessReadIndex() : InvalidIndex,
+                subMeshMaterial.m_normalImageView.get() ? subMeshMaterial.m_normalImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex)->GetBindlessReadIndex() : InvalidIndex,
+                subMeshMaterial.m_metallicImageView.get() ? subMeshMaterial.m_metallicImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex)->GetBindlessReadIndex() : InvalidIndex,
+                subMeshMaterial.m_roughnessImageView.get() ? subMeshMaterial.m_roughnessImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex)->GetBindlessReadIndex() : InvalidIndex,
+                subMeshMaterial.m_emissiveImageView.get() ? subMeshMaterial.m_emissiveImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex)->GetBindlessReadIndex() : InvalidIndex
 #else
-                m_materialTextures.AddResource(subMeshMaterial.m_baseColorImageView.get()),
-                m_materialTextures.AddResource(subMeshMaterial.m_normalImageView.get()),
-                m_materialTextures.AddResource(subMeshMaterial.m_metallicImageView.get()),
-                m_materialTextures.AddResource(subMeshMaterial.m_roughnessImageView.get()),
-                m_materialTextures.AddResource(subMeshMaterial.m_emissiveImageView.get())
+                m_materialTextures.AddResource(subMeshMaterial.m_baseColorImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get()),
+                m_materialTextures.AddResource(subMeshMaterial.m_normalImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get()),
+                m_materialTextures.AddResource(subMeshMaterial.m_metallicImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get()),
+                m_materialTextures.AddResource(subMeshMaterial.m_roughnessImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get()),
+                m_materialTextures.AddResource(subMeshMaterial.m_emissiveImageView->GetDeviceImageView(RHI::MultiDevice::DefaultDeviceIndex).get())
 #endif
             });
         }

+ 5 - 5
Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.h

@@ -98,11 +98,11 @@ namespace AZ
                 RayTracingSubMeshTextureFlags m_textureFlags = RayTracingSubMeshTextureFlags::None;
 
                 // material textures
-                RHI::Ptr<const RHI::SingleDeviceImageView> m_baseColorImageView;
-                RHI::Ptr<const RHI::SingleDeviceImageView> m_normalImageView;
-                RHI::Ptr<const RHI::SingleDeviceImageView> m_metallicImageView;
-                RHI::Ptr<const RHI::SingleDeviceImageView> m_roughnessImageView;
-                RHI::Ptr<const RHI::SingleDeviceImageView> m_emissiveImageView;
+                RHI::Ptr<const RHI::MultiDeviceImageView> m_baseColorImageView;
+                RHI::Ptr<const RHI::MultiDeviceImageView> m_normalImageView;
+                RHI::Ptr<const RHI::MultiDeviceImageView> m_metallicImageView;
+                RHI::Ptr<const RHI::MultiDeviceImageView> m_roughnessImageView;
+                RHI::Ptr<const RHI::MultiDeviceImageView> m_emissiveImageView;
             };
 
             //! Contains data for a single subMesh

+ 9 - 9
Gems/LyShine/Code/Source/Draw2d.cpp

@@ -756,17 +756,17 @@ void CDraw2d::DeferredQuad::Draw(AZ::RHI::Ptr<AZ::RPI::DynamicDrawContext> dynam
     AZ::Data::Instance<AZ::RPI::ShaderResourceGroup> drawSrg = dynamicDraw->NewDrawSrg();
 
     // Set texture
-    const auto* imageView = m_image ? m_image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get() : nullptr;
+    const auto* imageView = m_image ? m_image->GetImageView() : nullptr;
     if (!imageView)
     {
         // Default to white texture
         auto image = AZ::RPI::ImageSystemInterface::Get()->GetSystemImage(AZ::RPI::SystemImage::White);
-        imageView = image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get();
+        imageView = image->GetImageView();
     }
 
     if (imageView)
     {
-        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView, 0);
+        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get(), 0);
     }
 
     // Set projection matrix
@@ -817,17 +817,17 @@ void CDraw2d::DeferredLine::Draw(AZ::RHI::Ptr<AZ::RPI::DynamicDrawContext> dynam
     AZ::Data::Instance<AZ::RPI::ShaderResourceGroup> drawSrg = dynamicDraw->NewDrawSrg();
 
     // Set texture
-    const auto* imageView = m_image ? m_image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get() : nullptr;
+    const auto* imageView = m_image ? m_image->GetImageView() : nullptr;
     if (!imageView)
     {
         // Default to white texture
         auto image = AZ::RPI::ImageSystemInterface::Get()->GetSystemImage(AZ::RPI::SystemImage::White);
-        imageView = image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get();
+        imageView = image->GetImageView();
     }
 
     if (imageView)
     {
-        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView, 0);
+        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get(), 0);
     }
 
     // Set projection matrix
@@ -893,17 +893,17 @@ void CDraw2d::DeferredRectOutline::Draw(AZ::RHI::Ptr<AZ::RPI::DynamicDrawContext
     AZ::Data::Instance<AZ::RPI::ShaderResourceGroup> drawSrg = dynamicDraw->NewDrawSrg();
 
     // Set texture
-    const auto* imageView = m_image ? m_image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get() : nullptr;
+    const auto* imageView = m_image ? m_image->GetImageView() : nullptr;
     if (!imageView)
     {
         // Default to white texture
         auto image = AZ::RPI::ImageSystemInterface::Get()->GetSystemImage(AZ::RPI::SystemImage::White);
-        imageView = image->GetImageView()->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get();
+        imageView = image->GetImageView();
     }
 
     if (imageView)
     {
-        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView, 0);
+        drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView->GetDeviceImageView(AZ::RHI::MultiDevice::DefaultDeviceIndex).get(), 0);
     }
 
     // Set projection matrix