Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help Building for Fedora Linux #36

Open
adro79 opened this issue Jul 31, 2024 · 1 comment
Open

Help Building for Fedora Linux #36

adro79 opened this issue Jul 31, 2024 · 1 comment

Comments

@adro79
Copy link

adro79 commented Jul 31, 2024

First of all, thanks for upgrading Aurora and its USD version.

I've been trying to build Aurora all day, but I keep having A LOT of errors. I even tried to build it on an Ubuntu 20.04 Container using Distrobox, but I encounter the same errors as my host machine.

Would appreciate some help since I'm not that advanced in programming :)

Here's a diff of the patches I made:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f1fb42a..040a2d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,7 +94,7 @@ if(MSVC)
     set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
 else()
     # Enables strict standard conformance and warning as errors
-    add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wno-unknown-pragmas -Wno-gnu-zero-variadic-macro-arguments)
+    add_compile_options(-Wextra -Wno-unknown-pragmas -Wno-deprecated)
 endif()

 include(externalsConfig OPTIONAL RESULT_VARIABLE EXTERNALS_CONFIG)
diff --git a/Libraries/Aurora/Source/HGI/HGIMaterial.cpp b/Libraries/Aurora/Source/HGI/HGIMaterial.cpp
index 1e94684..6cca38d 100644
--- a/Libraries/Aurora/Source/HGI/HGIMaterial.cpp
+++ b/Libraries/Aurora/Source/HGI/HGIMaterial.cpp
@@ -40,7 +40,7 @@ void HGIMaterial::update()
 {
     // Build a structure from values map into staging buffer.
     void* pStaging = _ubo->handle()->GetCPUStagingAddress();
-    ::memcpy_s(pStaging, uniformBuffer().size(), uniformBuffer().data(), uniformBuffer().size());
+    std::memcpy(pStaging, uniformBuffer().data(), uniformBuffer().size());

     // Transfer staging buffer to GPU.
     pxr::HgiBlitCmdsUniquePtr blitCmds = _pRenderer->hgi()->CreateBlitCmds();
diff --git a/Libraries/Aurora/Source/MaterialShader.cpp b/Libraries/Aurora/Source/MaterialShader.cpp
index 188a06e..15dddca 100644
--- a/Libraries/Aurora/Source/MaterialShader.cpp
+++ b/Libraries/Aurora/Source/MaterialShader.cpp
@@ -21,7 +21,7 @@ MaterialShader::MaterialShader(MaterialShaderLibrary* pShaderLibrary, int librar
     _def(def)
 {
     // Initialize ref. counts to zero.
-    for (int i = 0; i < entryPoints.size(); i++)
+    for (size_t i = 0; i < entryPoints.size(); i++)
     {
         _entryPointNameLookup[entryPoints[i]] = i;
         _entryPoints.push_back({ entryPoints[i], 0 });
@@ -251,7 +251,7 @@ bool MaterialShaderLibrary::update(CompileShader compileFunction, DestroyShader
 void MaterialShaderLibrary::forceRebuildAll()
 {
     // Add all active shaders to compilation pending list.
-    for (int i = 0; i < _shaderState.size(); i++)
+    for (size_t i = 0; i < _shaderState.size(); i++)
     {
         MaterialShaderPtr pShader = _shaderState[i].first.lock();
         if (pShader)
diff --git a/Libraries/Aurora/Source/MaterialShader.h b/Libraries/Aurora/Source/MaterialShader.h
index 5137bb4..f646e5b 100644
--- a/Libraries/Aurora/Source/MaterialShader.h
+++ b/Libraries/Aurora/Source/MaterialShader.h
@@ -16,6 +16,7 @@
 #include "Aurora/Foundation/Log.h"
 #include "Properties.h"
 #include "UniformBuffer.h"
+#include <list>

 BEGIN_AURORA

diff --git a/Libraries/Foundation/API/Aurora/Foundation/Utilities.h b/Libraries/Foundation/API/Aurora/Foundation/Utilities.h
index d446f6a..8c28827 100644
--- a/Libraries/Foundation/API/Aurora/Foundation/Utilities.h
+++ b/Libraries/Foundation/API/Aurora/Foundation/Utilities.h
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <string>
 #include <vector>
+#include <cstdint>

 namespace Aurora
 {

Minifying Shaders

It seems to be an issue in MainEntryPoints.slang, also it doesn't automatically set the Slang Compiler, so I have to specify it using Slang_COMPILER

[  4%] Minifying path tracing shaders to /home/adro/Applications/Aurora/SourceFedora/Build/Libraries/Aurora/CompiledShaders/CommonShaders.h
Compiling main entry point /home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/Shaders/MainEntryPoints.slang with Slang compiler /home/adro/Applications/Aurora/Externals/Slang/bin/linux-x64/release/slangd to DXIL in header /home/adro/Applications/Aurora/SourceFedora/Build/Libraries/Aurora/CompiledShaders/MainEntryPoints.h

A workaround (?) is to manually execute the python command: python Scripts/minifyShadersFolder.py Libraries/Aurora/Source/Shaders Build/Libraries/Aurora/CompiledShaders/CommonShaders.h

Current Errors

[  4%] Building CXX object Libraries/Aurora/CMakeFiles/Aurora.dir/Source/HGI/HGIRenderer.cpp.o
In file included from /home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIMaterial.h:17,
                 from /home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp:21:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/MaterialBase.h: In constructor ‘Aurora::TextureProperties::TextureProperties(const std::vector<Aurora::TextureIdentifier>&)’:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/MaterialBase.h:34:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Aurora::TextureIdentifier>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   34 |         for (int i = 0; i < names.size(); i++)
      |                         ~~^~~~~~~~~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp: In constructor ‘Aurora::HGIRenderer::HGIRenderer(uint32_t)’:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp:47:35: error: ‘g_sInitializeDefaultMaterialType’ is not a member of ‘CommonShaders’
   47 |         "Default", CommonShaders::g_sInitializeDefaultMaterialType);
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp: In member function ‘virtual void Aurora::HGIRenderer::render(uint32_t, uint32_t)’:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp:436:71: error: no matching function for call to ‘pxrInternal_v0_24__pxrReserved__::Hgi::CreateComputeCmds()’
  436 |         HgiComputeCmdsUniquePtr computeCmds = hgi()->CreateComputeCmds();
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/pch.h:126,
                 from /home/adro/Applications/Aurora/SourceFedora/Build/Libraries/Aurora/CMakeFiles/Aurora.dir/cmake_pch.hxx:5,
                 from <command-line>:
/home/adro/Applications/Aurora/ExternalsFedora/USD/include/pxr/imaging/hgi/hgi.h:191:37: note: candidate: ‘virtual pxrInternal_v0_24__pxrReserved__::HgiComputeCmdsUniquePtr pxrInternal_v0_24__pxrReserved__::Hgi::CreateComputeCmds(const pxrInternal_v0_24__pxrReserved__::HgiComputeCmdsDesc&)’
  191 |     virtual HgiComputeCmdsUniquePtr CreateComputeCmds(
      |                                     ^~~~~~~~~~~~~~~~~
/home/adro/Applications/Aurora/ExternalsFedora/USD/include/pxr/imaging/hgi/hgi.h:191:37: note:   candidate expects 1 argument, 0 provided
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIRenderer.cpp:449:86: error: no matching function for call to ‘pxrInternal_v0_24__pxrReserved__::Hgi::CreateComputeCmds()’
  449 |             HgiComputeCmdsUniquePtr postProcessComputeCmds = hgi()->CreateComputeCmds();
      |                                                              ~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/adro/Applications/Aurora/ExternalsFedora/USD/include/pxr/imaging/hgi/hgi.h:191:37: note: candidate: ‘virtual pxrInternal_v0_24__pxrReserved__::HgiComputeCmdsUniquePtr pxrInternal_v0_24__pxrReserved__::Hgi::CreateComputeCmds(const pxrInternal_v0_24__pxrReserved__::HgiComputeCmdsDesc&)’
  191 |     virtual HgiComputeCmdsUniquePtr CreateComputeCmds(
      |                                     ^~~~~~~~~~~~~~~~~
/home/adro/Applications/Aurora/ExternalsFedora/USD/include/pxr/imaging/hgi/hgi.h:191:37: note:   candidate expects 1 argument, 0 provided
[ 22%] Building CXX object Tests/AuroraInternals/CMakeFiles/AuroraInternalsTests.dir/__/__/Libraries/Aurora/Source/MaterialShader.cpp.o
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp: In member function ‘void Aurora::HGIScene::rebuildInstanceList()’:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:131:19: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘hasValue’; did you mean ‘clearValue’?
  131 |         if (pMtl->hasValue("base_color_image"))
      |                   ^~~~~~~~
      |                   clearValue
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:133:68: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘asImage’
  133 |             pBaseColorImage = dynamic_pointer_cast<HGIImage>(pMtl->asImage("base_color_image"));
      |                                                                    ^~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:145:19: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘hasValue’; did you mean ‘clearValue’?
  145 |         if (pMtl->hasValue("specular_roughness_image"))
      |                   ^~~~~~~~
      |                   clearValue
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:148:54: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘asImage’
  148 |                 dynamic_pointer_cast<HGIImage>(pMtl->asImage("specular_roughness_image"));
      |                                                      ^~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:160:19: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘hasValue’; did you mean ‘clearValue’?
  160 |         if (pMtl->hasValue("opacity_image"))
      |                   ^~~~~~~~
      |                   clearValue
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:162:66: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘asImage’
  162 |             pOpacityImage = dynamic_pointer_cast<HGIImage>(pMtl->asImage("opacity_image"));
      |                                                                  ^~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:174:19: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘hasValue’; did you mean ‘clearValue’?
  174 |         if (pMtl->hasValue("normal_image"))
      |                   ^~~~~~~~
      |                   clearValue
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:176:65: error: ‘using std::__shared_ptr_access<Aurora::HGIMaterial, __gnu_cxx::_S_atomic, false, false>::element_type = class Aurora::HGIMaterial’ {aka ‘class Aurora::HGIMaterial’} has no member named ‘asImage’
  176 |             pNormalImage = dynamic_pointer_cast<HGIImage>(pMtl->asImage("normal_image"));
      |                                                                 ^~~~~~~
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp: In member function ‘void Aurora::HGIScene::createResources()’:
/home/adro/Applications/Aurora/SourceFedora/Libraries/Aurora/Source/HGI/HGIScene.cpp:490:52: error: ‘g_sInitializeDefaultMaterialType’ is not a member of ‘CommonShaders’
  490 |         "InitializeMaterial.slang", CommonShaders::g_sInitializeDefaultMaterialType);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Thanks a lot in advance.

@pixnblox
Copy link
Contributor

pixnblox commented Aug 1, 2024

We found that we have a merge error that prevents the Vulkan backend from working. Basically it is using old code, and we will update it to use the proper new code. Windows is fine, so please try that for now if you are able. We will issue a patch release to fix Vulkan / Linux. Thanks for your patience!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants