mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Upgrade codebase to C++ 20 + fix warnings + update submodules (#6115)
This commit is contained in:
		
							parent
							
								
									90b418fd1a
								
							
						
					
					
						commit
						cbd5d1c15c
					
				
					 67 changed files with 6837 additions and 7475 deletions
				
			
		|  | @ -155,6 +155,7 @@ create_target_directory_groups(video_core) | |||
| 
 | ||||
| target_link_libraries(video_core PUBLIC common core) | ||||
| target_link_libraries(video_core PRIVATE glad nihstro-headers Boost::serialization) | ||||
| set_target_properties(video_core PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO}) | ||||
| 
 | ||||
| if (ARCHITECTURE_x86_64) | ||||
|     target_link_libraries(video_core PUBLIC xbyak) | ||||
|  |  | |||
|  | @ -205,7 +205,7 @@ public: | |||
|     // printing the character '{' is desirable. Ditto for }} and '}',
 | ||||
|     // etc).
 | ||||
|     template <typename... Args> | ||||
|     void AddLine(std::string_view text, Args&&... args) { | ||||
|     void AddLine(fmt::format_string<Args...> text, Args&&... args) { | ||||
|         AddExpression(fmt::format(text, std::forward<Args>(args)...)); | ||||
|         AddNewLine(); | ||||
|     } | ||||
|  |  | |||
|  | @ -6,7 +6,6 @@ | |||
| #include <set> | ||||
| #include <thread> | ||||
| #include <unordered_map> | ||||
| #include <boost/functional/hash.hpp> | ||||
| #include <boost/variant.hpp> | ||||
| #include "core/frontend/scope_acquire_context.h" | ||||
| #include "video_core/renderer_opengl/gl_resource_manager.h" | ||||
|  | @ -21,12 +20,14 @@ namespace OpenGL { | |||
| static u64 GetUniqueIdentifier(const Pica::Regs& regs, const ProgramCode& code) { | ||||
|     std::size_t hash = 0; | ||||
|     u64 regs_uid = Common::ComputeHash64(regs.reg_array.data(), Pica::Regs::NUM_REGS * sizeof(u32)); | ||||
|     boost::hash_combine(hash, regs_uid); | ||||
|     hash = Common::HashCombine(hash, regs_uid); | ||||
| 
 | ||||
|     if (code.size() > 0) { | ||||
|         u64 code_uid = Common::ComputeHash64(code.data(), code.size() * sizeof(u32)); | ||||
|         boost::hash_combine(hash, code_uid); | ||||
|         hash = Common::HashCombine(hash, code_uid); | ||||
|     } | ||||
|     return static_cast<u64>(hash); | ||||
| 
 | ||||
|     return hash; | ||||
| } | ||||
| 
 | ||||
| static OGLProgram GeneratePrecompiledProgram(const ShaderDiskCacheDump& dump, | ||||
|  | @ -336,14 +337,14 @@ public: | |||
|     } | ||||
| 
 | ||||
|     struct ShaderTuple { | ||||
|         GLuint vs = 0; | ||||
|         GLuint gs = 0; | ||||
|         GLuint fs = 0; | ||||
| 
 | ||||
|         std::size_t vs_hash = 0; | ||||
|         std::size_t gs_hash = 0; | ||||
|         std::size_t fs_hash = 0; | ||||
| 
 | ||||
|         GLuint vs = 0; | ||||
|         GLuint gs = 0; | ||||
|         GLuint fs = 0; | ||||
| 
 | ||||
|         bool operator==(const ShaderTuple& rhs) const { | ||||
|             return std::tie(vs, gs, fs) == std::tie(rhs.vs, rhs.gs, rhs.fs); | ||||
|         } | ||||
|  | @ -353,14 +354,14 @@ public: | |||
|         } | ||||
| 
 | ||||
|         std::size_t GetConfigHash() const { | ||||
|             std::size_t hash = 0; | ||||
|             boost::hash_combine(hash, vs_hash); | ||||
|             boost::hash_combine(hash, gs_hash); | ||||
|             boost::hash_combine(hash, fs_hash); | ||||
|             return hash; | ||||
|             return Common::ComputeHash64(this, sizeof(std::size_t) * 3); | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     static_assert(offsetof(ShaderTuple, vs_hash) == 0, "ShaderTuple layout changed!"); | ||||
|     static_assert(offsetof(ShaderTuple, fs_hash) == sizeof(std::size_t) * 2, | ||||
|                   "ShaderTuple layout changed!"); | ||||
| 
 | ||||
|     bool is_amd; | ||||
|     bool separable; | ||||
| 
 | ||||
|  |  | |||
|  | @ -91,7 +91,7 @@ ASSERT_POS(tc0_w, RasterizerRegs::VSOutputAttributes::TEXCOORD0_W); | |||
| ASSERT_POS(view, RasterizerRegs::VSOutputAttributes::VIEW_X); | ||||
| ASSERT_POS(tc2, RasterizerRegs::VSOutputAttributes::TEXCOORD2_U); | ||||
| #undef ASSERT_POS | ||||
| static_assert(std::is_pod<OutputVertex>::value, "Structure is not POD"); | ||||
| static_assert(std::is_trivial_v<OutputVertex>, "Structure is not POD"); | ||||
| static_assert(sizeof(OutputVertex) == 24 * sizeof(float), "OutputVertex has invalid size"); | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -153,7 +153,7 @@ struct UnitState { | |||
|             ar& output; | ||||
|         } | ||||
|     } registers; | ||||
|     static_assert(std::is_pod<Registers>::value, "Structure is not POD"); | ||||
|     static_assert(std::is_trivial_v<Registers>, "Structure is not POD"); | ||||
| 
 | ||||
|     bool conditional_code[2]; | ||||
| 
 | ||||
|  |  | |||
|  | @ -83,7 +83,7 @@ std::tuple<Common::Vec4<u8>, Common::Vec4<u8>> ComputeFragmentsColors( | |||
|         else | ||||
|             light_vector = position + view; | ||||
| 
 | ||||
|         light_vector.Normalize(); | ||||
|         [[maybe_unused]] float length = light_vector.Normalize(); | ||||
| 
 | ||||
|         Common::Vec3<float> norm_view = view.Normalized(); | ||||
|         Common::Vec3<float> half_vector = norm_view + light_vector; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue