From 79dea539c40729a5d148479efb93e89f750529dd Mon Sep 17 00:00:00 2001 From: rgba16f <82187279+rgba16f@users.noreply.github.com> Date: Mon, 26 Jul 2021 13:28:54 -0500 Subject: [PATCH 1/3] Allow user to specify a partial gpu name to the forceAdaptor command line argument Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com> --- Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp | 16 +++++++++++----- .../Source/RPI.Private/RPISystemComponent.cpp | 1 + .../RPI/Code/Source/RPI.Public/RPISystem.cpp | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp b/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp index ad3ab119ef..bf29efc644 100644 --- a/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp +++ b/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp @@ -18,6 +18,7 @@ #include #include #include +#include AZ_DEFINE_BUDGET(RHI); @@ -101,6 +102,8 @@ namespace AZ } AZStd::string preferredUserAdapterName = RHI::GetCommandLineValue("forceAdapter"); + AZStd::to_lower(preferredUserAdapterName.begin(), preferredUserAdapterName.end()); + bool findPreferredUserDevice = preferredUserAdapterName.size() > 0; RHI::PhysicalDevice* preferredUserDevice{}; RHI::PhysicalDevice* preferredVendorDevice{}; @@ -110,12 +113,15 @@ namespace AZ const RHI::PhysicalDeviceDescriptor& descriptor = physicalDevice->GetDescriptor(); AZ_Printf("RHISystem", "\tEnumerated physical device: %s\n", descriptor.m_description.c_str()); - - if (!preferredUserDevice && descriptor.m_description == preferredUserAdapterName) + if (findPreferredUserDevice) { - preferredUserDevice = physicalDevice.get(); + AZStd::string descriptorLowerCase = descriptor.m_description; + AZStd::to_lower( descriptorLowerCase.begin(), descriptorLowerCase.end()); + if (!preferredUserDevice && descriptorLowerCase.contains(preferredUserAdapterName)) + { + preferredUserDevice = physicalDevice.get(); + } } - // Record the first nVidia or AMD device we find. if (!preferredVendorDevice && (descriptor.m_vendorId == RHI::VendorId::AMD || descriptor.m_vendorId == RHI::VendorId::nVidia)) { @@ -123,7 +129,7 @@ namespace AZ } } - AZ_Warning("RHISystem", preferredUserAdapterName.empty() || preferredUserDevice, "Specified adapter name not found: '%s'", preferredUserAdapterName.c_str()); + AZ_Warning("RHI", preferredUserAdapterName.empty() || preferredUserDevice, "Specified adapter name not found: '%s'", preferredUserAdapterName.c_str()); RHI::PhysicalDevice* physicalDeviceFound{}; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp b/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp index 2567d221e5..8c78ff0e73 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp @@ -56,6 +56,7 @@ namespace AZ void RPISystemComponent::GetRequiredServices(ComponentDescriptor::DependencyArrayType& required) { required.push_back(RHI::Factory::GetComponentService()); + required.push_back(AZ_CRC_CE("LoggerService")); } void RPISystemComponent::GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided) diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp index 5df1c655d6..5e57ba4e00 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp @@ -79,6 +79,7 @@ namespace AZ void RPISystem::Initialize(const RPISystemDescriptor& rpiSystemDescriptor) { + AZ_Printf("RHI", "RPISystem Initialize\n"); m_rhiSystem.InitDevice(); // Gather asset handlers from sub-systems. From de224d236007f74f77c4ee905a26aaf88e316c9b Mon Sep 17 00:00:00 2001 From: rgba16f <82187279+rgba16f@users.noreply.github.com> Date: Thu, 30 Sep 2021 17:45:29 -0500 Subject: [PATCH 2/3] Removed minor string differences Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com> --- Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp | 2 +- Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp b/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp index bf29efc644..744b688c60 100644 --- a/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp +++ b/Gems/Atom/RHI/Code/Source/RHI/RHISystem.cpp @@ -129,7 +129,7 @@ namespace AZ } } - AZ_Warning("RHI", preferredUserAdapterName.empty() || preferredUserDevice, "Specified adapter name not found: '%s'", preferredUserAdapterName.c_str()); + AZ_Warning("RHISystem", preferredUserAdapterName.empty() || preferredUserDevice, "Specified adapter name not found: '%s'", preferredUserAdapterName.c_str()); RHI::PhysicalDevice* physicalDeviceFound{}; diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp index 5e57ba4e00..5df1c655d6 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/RPISystem.cpp @@ -79,7 +79,6 @@ namespace AZ void RPISystem::Initialize(const RPISystemDescriptor& rpiSystemDescriptor) { - AZ_Printf("RHI", "RPISystem Initialize\n"); m_rhiSystem.InitDevice(); // Gather asset handlers from sub-systems. From c245960c7b32b463c9b197fd6af103003f0a674b Mon Sep 17 00:00:00 2001 From: rgba16f <82187279+rgba16f@users.noreply.github.com> Date: Fri, 1 Oct 2021 10:17:08 -0500 Subject: [PATCH 3/3] remove addition of the LoggerService as a required service Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com> --- Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp b/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp index 8c78ff0e73..2567d221e5 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Private/RPISystemComponent.cpp @@ -56,7 +56,6 @@ namespace AZ void RPISystemComponent::GetRequiredServices(ComponentDescriptor::DependencyArrayType& required) { required.push_back(RHI::Factory::GetComponentService()); - required.push_back(AZ_CRC_CE("LoggerService")); } void RPISystemComponent::GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided)