From 9929782e8698b550bfed95bd6ae0d2f920afac84 Mon Sep 17 00:00:00 2001 From: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> Date: Fri, 3 Sep 2021 17:32:37 -0700 Subject: [PATCH 1/4] Changes how renderdoc is added, since this is not a real 3rdParty we want to depend on but some functionality we want to enable/disable Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> --- Gems/Atom/RHI/Code/CMakeLists.txt | 29 +++++++++---------- .../renderdoc_support_android.cmake} | 3 +- .../Code/Platform/Linux/renderdoc_linux.cmake | 27 +++++------------ .../Linux/renderdoc_support_linux.cmake | 14 +++++++++ .../Platform/Mac/renderdoc_support_mac.cmake | 9 ++++++ .../Windows/renderdoc_support_windows.cmake | 14 +++++++++ .../Platform/Windows/renderdoc_windows.cmake | 29 +++++-------------- .../Platform/iOS/renderdoc_support_ios.cmake | 9 ++++++ 8 files changed, 76 insertions(+), 58 deletions(-) rename Gems/Atom/RHI/Code/Platform/{AppleTV/AtomRHITests_traits_appletv.cmake => Android/renderdoc_support_android.cmake} (69%) create mode 100644 Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake create mode 100644 Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake create mode 100644 Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake create mode 100644 Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake diff --git a/Gems/Atom/RHI/Code/CMakeLists.txt b/Gems/Atom/RHI/Code/CMakeLists.txt index 343736ff7c..a70786a9e0 100644 --- a/Gems/Atom/RHI/Code/CMakeLists.txt +++ b/Gems/Atom/RHI/Code/CMakeLists.txt @@ -11,19 +11,16 @@ ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Sourc include(${pal_dir}/AtomRHITests_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) -set(LY_RENDERDOC_ENABLED OFF CACHE BOOL "Enable RenderDoc integration.") -set(RENDERDOC_CMAKE ${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) -if(EXISTS ${RENDERDOC_CMAKE}) - include(${RENDERDOC_CMAKE}) -endif() - -if(LY_RENDERDOC_ENABLED AND TARGET "3rdParty::renderdoc") - message(STATUS "Renderdoc found, adding as runtime dependency") - set(USE_RENDERDOC_DEFINE "USE_RENDERDOC") - set(RENDERDOC_BUILD_DEPENDENCY "3rdParty::renderdoc") -else() - set(USE_RENDERDOC_DEFINE "") - set(RENDERDOC_BUILD_DEPENDENCY "") +include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_support_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) +if(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED) + set(LY_RENDERDOC_ENABLED OFF CACHE BOOL "Enable RenderDoc integration. Use LY_RENDERDOC_PATH to specific the path to RenderDoc.") + if(LY_RENDERDOC_ENABLED) + include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) + if(PAL_TRAIT_BUILD_RENDERDOC_ENABLED) + message(STATUS "Renderdoc found, adding as runtime dependency") + set(RENDERDOC_DEFINE USE_RENDERDOC) + endif() + endif() endif() ly_add_target( @@ -61,11 +58,11 @@ ly_add_target( AZ::AzCore AZ::AzFramework Gem::Atom_RHI.Reflect - PUBLIC - ${RENDERDOC_BUILD_DEPENDENCY} COMPILE_DEFINITIONS PUBLIC - ${USE_RENDERDOC_DEFINE} + ${RENDERDOC_DEFINE} + RUNTIME_DEPENDENCIES + ${RENDERDOC_RUNTIME_DEPENDENCIES} ) ly_add_target( diff --git a/Gems/Atom/RHI/Code/Platform/AppleTV/AtomRHITests_traits_appletv.cmake b/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake similarity index 69% rename from Gems/Atom/RHI/Code/Platform/AppleTV/AtomRHITests_traits_appletv.cmake rename to Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake index 1aeb95c7b1..97090b9144 100644 --- a/Gems/Atom/RHI/Code/Platform/AppleTV/AtomRHITests_traits_appletv.cmake +++ b/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake @@ -6,5 +6,4 @@ # # -set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) -set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake index 222a3d5768..aae720eb0f 100644 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake +++ b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake @@ -6,24 +6,13 @@ # # -# Prevent bundling the renderdoc dll with a packaged title -if(NOT LY_MONOLITHIC_GAME) - if(DEFINED ENV{"ATOM_RENDERDOC_PATH"}) - set(RENDERDOC_PATH ENV{"ATOM_RENDERDOC_PATH"}) - endif() +set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) +set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") - if(RENDERDOC_PATH) - # Normalize file path - file(TO_CMAKE_PATH "${RENDERDOC_PATH}" RENDERDOC_PATH) +# Normalize file path +file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - if(EXISTS "${RENDERDOC_PATH}/librenderdoc.so") - ly_add_external_target( - NAME renderdoc - VERSION - 3RDPARTY_ROOT_DIRECTORY ${RENDERDOC_PATH} - INCLUDE_DIRECTORIES "." - RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/librenderdoc.so" - ) - endif() - endif() -endif() \ No newline at end of file +if(EXISTS "${LY_RENDERDOC_PATH}/librenderdoc.so") + set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/librenderdoc.so") + set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) +endif() diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake new file mode 100644 index 0000000000..449593c791 --- /dev/null +++ b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake @@ -0,0 +1,14 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. +# For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +# Prevent bundling the renderdoc dll with a packaged title +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() diff --git a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake b/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake new file mode 100644 index 0000000000..97090b9144 --- /dev/null +++ b/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake @@ -0,0 +1,9 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. +# For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake new file mode 100644 index 0000000000..449593c791 --- /dev/null +++ b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake @@ -0,0 +1,14 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. +# For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +# Prevent bundling the renderdoc dll with a packaged title +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake index 90c44bcb7c..2d3c2c039f 100644 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake +++ b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake @@ -6,26 +6,13 @@ # # -# Prevent bundling the renderdoc dll with a packaged title -if(NOT LY_MONOLITHIC_GAME) - # Common installation path for renderdoc path - set(RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc") - if(DEFINED ENV{"ATOM_RENDERDOC_PATH"}) - set(RENDERDOC_PATH ENV{"ATOM_RENDERDOC_PATH"}) - endif() +set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) +set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") - if(RENDERDOC_PATH) - # Normalize file path - file(TO_CMAKE_PATH "${RENDERDOC_PATH}" RENDERDOC_PATH) +# Normalize file path +file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - if(EXISTS "${RENDERDOC_PATH}/renderdoc.dll") - ly_add_external_target( - NAME renderdoc - VERSION - 3RDPARTY_ROOT_DIRECTORY ${RENDERDOC_PATH} - INCLUDE_DIRECTORIES "." - RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/renderdoc.dll" - ) - endif() - endif() -endif() \ No newline at end of file +if(EXISTS "${LY_RENDERDOC_PATH}/renderdoc.dll") + set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/renderdoc.dll") + set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) +endif() diff --git a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake b/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake new file mode 100644 index 0000000000..97090b9144 --- /dev/null +++ b/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake @@ -0,0 +1,9 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. +# For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) From e215dd4423cfe32314a682f8565d7eda4fe3d775 Mon Sep 17 00:00:00 2001 From: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:23:11 -0700 Subject: [PATCH 2/4] prevents 3rdParty that are not in the source tree from being installed Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> --- cmake/3rdParty.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmake/3rdParty.cmake b/cmake/3rdParty.cmake index 0142a6a4b6..310e341305 100644 --- a/cmake/3rdParty.cmake +++ b/cmake/3rdParty.cmake @@ -122,7 +122,13 @@ function(ly_add_external_target) set(BASE_PATH "${LY_3RDPARTY_PATH}/${ly_add_external_target_3RDPARTY_DIRECTORY}") else() - ly_install_external_target(${ly_add_external_target_3RDPARTY_ROOT_DIRECTORY}) + # only install external 3rdParty that are within the source tree + cmake_path(RELATIVE_PATH ly_add_external_target_3RDPARTY_ROOT_DIRECTORY + BASE_DIRECTORY ${LY_ROOT_FOLDER} + OUTPUT_VARIABLE relative_path) + if(relative_path AND NOT relative_path MATCHES "^../") + ly_install_external_target(${ly_add_external_target_3RDPARTY_ROOT_DIRECTORY}) + endif() set(BASE_PATH "${ly_add_external_target_3RDPARTY_ROOT_DIRECTORY}") endif() @@ -309,7 +315,7 @@ function(ly_install_external_target 3RDPARTY_ROOT_DIRECTORY) ly_install_files(FILES ${CMAKE_CURRENT_LIST_FILE} DESTINATION cmake/3rdParty ) - ly_install_directory(DIRECTORIES ${3RDPARTY_ROOT_DIRECTORY}) + ly_install_directory(DIRECTORIES "${3RDPARTY_ROOT_DIRECTORY}") endfunction() From a63954d6cf7c678da27fd6fef4142cf6110e3081 Mon Sep 17 00:00:00 2001 From: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:26:59 -0700 Subject: [PATCH 3/4] simplifying how PIX is passed Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> --- Code/Framework/AzCore/CMakeLists.txt | 13 ++++++------- cmake/3rdParty/FindPIX.cmake | 19 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Code/Framework/AzCore/CMakeLists.txt b/Code/Framework/AzCore/CMakeLists.txt index eec5b37e03..60c5f50594 100644 --- a/Code/Framework/AzCore/CMakeLists.txt +++ b/Code/Framework/AzCore/CMakeLists.txt @@ -12,10 +12,12 @@ ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME}) ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common) -if(PAL_TRAIT_PROF_PIX_SUPPORTED AND LY_PIX_ENABLED) - set(LY_PIX_PATH "${LY_3RDPARTY_PATH}/winpixeventruntime" CACHE PATH "Path to the Windows Pix Event Runtime.") - set(AZ_CORE_PIX_BUILD_DEPENDENCIES 3rdParty::pix) - set(AZ_CORE_PIX_BUILD_DEFINES "USE_PIX") +if(PAL_TRAIT_PROF_PIX_SUPPORTED) + set(LY_PIX_ENABLED OFF CACHE BOOL "Enables PIX profiler integration.") + if(LY_PIX_ENABLED) + message(STATUS "PIX found, enabling as profiler") + set(AZ_CORE_PIX_BUILD_DEPENDENCIES 3rdParty::pix) + endif() endif() ly_add_target( @@ -41,9 +43,6 @@ ly_add_target( 3rdParty::zstd 3rdParty::cityhash ${AZ_CORE_PIX_BUILD_DEPENDENCIES} - COMPILE_DEFINITIONS - PUBLIC - ${AZ_CORE_PIX_BUILD_DEFINES} ) ly_add_source_properties( SOURCES diff --git a/cmake/3rdParty/FindPIX.cmake b/cmake/3rdParty/FindPIX.cmake index e4652467ac..f69896f78f 100644 --- a/cmake/3rdParty/FindPIX.cmake +++ b/cmake/3rdParty/FindPIX.cmake @@ -6,14 +6,13 @@ # # -if(LY_PIX_ENABLED) - file(TO_CMAKE_PATH "${LY_PIX_PATH}" PIX_PATH) - message(STATUS "PIX found: ${PIX_PATH}") +set(LY_PIX_PATH "${LY_3RDPARTY_PATH}/winpixeventruntime" CACHE PATH "Path to the Windows Pix Event Runtime.") + +ly_add_external_target( + NAME pix + 3RDPARTY_ROOT_DIRECTORY ${LY_PIX_PATH} + VERSION + INCLUDE_DIRECTORIES Include + COMPILE_DEFINITIONS USE_PIX +) - ly_add_external_target( - NAME pix - 3RDPARTY_ROOT_DIRECTORY "${PIX_PATH}" - VERSION - INCLUDE_DIRECTORIES include - ) -endif() From 761f90b5b9becc95acbe422367ec0cef3d8f312e Mon Sep 17 00:00:00 2001 From: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:27:45 -0700 Subject: [PATCH 4/4] Find file for renderdoc and better wiring Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> --- .../Findrenderdoc.cmake} | 8 +++++++- .../Platform/Linux/renderdoc_linux.cmake} | 2 +- .../Platform/Windows/renderdoc_windows.cmake} | 2 +- Gems/Atom/RHI/CMakeLists.txt | 2 ++ Gems/Atom/RHI/Code/CMakeLists.txt | 11 +++-------- .../Android/AtomRHITests_traits_android.cmake | 1 + .../Linux/AtomRHITests_traits_linux.cmake | 6 ++++++ .../Code/Platform/Linux/renderdoc_linux.cmake | 18 ------------------ .../Linux/renderdoc_support_linux.cmake | 14 -------------- .../Platform/Mac/AtomRHITests_traits_mac.cmake | 1 + .../Windows/AtomRHITests_traits_windows.cmake | 6 ++++++ .../Windows/renderdoc_support_windows.cmake | 14 -------------- .../Platform/Windows/renderdoc_windows.cmake | 18 ------------------ .../Platform/iOS/AtomRHITests_traits_ios.cmake | 1 + 14 files changed, 29 insertions(+), 75 deletions(-) rename Gems/Atom/RHI/{Code/Platform/Mac/renderdoc_support_mac.cmake => 3rdParty/Findrenderdoc.cmake} (55%) rename Gems/Atom/RHI/{Code/Platform/iOS/renderdoc_support_ios.cmake => 3rdParty/Platform/Linux/renderdoc_linux.cmake} (76%) rename Gems/Atom/RHI/{Code/Platform/Android/renderdoc_support_android.cmake => 3rdParty/Platform/Windows/renderdoc_windows.cmake} (76%) delete mode 100644 Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake delete mode 100644 Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake diff --git a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake similarity index 55% rename from Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake rename to Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake index 97090b9144..7b7c312169 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake +++ b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake @@ -6,4 +6,10 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +ly_add_external_target( + NAME renderdoc + 3RDPARTY_ROOT_DIRECTORY "${LY_RENDERDOC_PATH}" + VERSION + INCLUDE_DIRECTORIES . + COMPILE_DEFINITIONS USE_RENDER_DOC +) diff --git a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake index 97090b9144..a74d250901 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/librenderdoc.so") diff --git a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake index 97090b9144..559863ca07 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/renderdoc.dll") diff --git a/Gems/Atom/RHI/CMakeLists.txt b/Gems/Atom/RHI/CMakeLists.txt index 28a3e1ad7d..074f6acfd7 100644 --- a/Gems/Atom/RHI/CMakeLists.txt +++ b/Gems/Atom/RHI/CMakeLists.txt @@ -6,6 +6,8 @@ # # +ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty) + add_subdirectory(Code) add_subdirectory(DX12) add_subdirectory(Metal) diff --git a/Gems/Atom/RHI/Code/CMakeLists.txt b/Gems/Atom/RHI/Code/CMakeLists.txt index a70786a9e0..879fc7d2ce 100644 --- a/Gems/Atom/RHI/Code/CMakeLists.txt +++ b/Gems/Atom/RHI/Code/CMakeLists.txt @@ -11,15 +11,10 @@ ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Sourc include(${pal_dir}/AtomRHITests_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_support_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) if(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED) set(LY_RENDERDOC_ENABLED OFF CACHE BOOL "Enable RenderDoc integration. Use LY_RENDERDOC_PATH to specific the path to RenderDoc.") if(LY_RENDERDOC_ENABLED) - include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) - if(PAL_TRAIT_BUILD_RENDERDOC_ENABLED) - message(STATUS "Renderdoc found, adding as runtime dependency") - set(RENDERDOC_DEFINE USE_RENDERDOC) - endif() + set(RENDERDOC_DEPENDENCY 3rdParty::renderdoc) endif() endif() @@ -58,11 +53,11 @@ ly_add_target( AZ::AzCore AZ::AzFramework Gem::Atom_RHI.Reflect + PUBLIC + ${RENDERDOC_DEPENDENCY} COMPILE_DEFINITIONS PUBLIC ${RENDERDOC_DEFINE} - RUNTIME_DEPENDENCIES - ${RENDERDOC_RUNTIME_DEPENDENCIES} ) ly_add_target( diff --git a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake +++ b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake index 64d44f1648..5379a47e49 100644 --- a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake +++ b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake deleted file mode 100644 index aae720eb0f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/librenderdoc.so") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/librenderdoc.so") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake index a5f701c3cf..419331db3b 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake +++ b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake index a5f701c3cf..78a4c4c069 100644 --- a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake +++ b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake deleted file mode 100644 index 2d3c2c039f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) Contributors to the Open 3D Engine Project. -# For complete copyright and license terms please see the LICENSE at the root of this distribution. -# -# SPDX-License-Identifier: Apache-2.0 OR MIT -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/renderdoc.dll") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/renderdoc.dll") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake +++ b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE)