shader: GCC fmt 8.0.0 fixes
This commit is contained in:
		| @@ -37,21 +37,23 @@ public: | ||||
|  | ||||
|     template <typename... Args> | ||||
|     void Add(const char* format_str, IR::Inst& inst, Args&&... args) { | ||||
|         code += fmt::format(format_str, reg_alloc.Define(inst), std::forward<Args>(args)...); | ||||
|         code += fmt::format(fmt::runtime(format_str), reg_alloc.Define(inst), | ||||
|                             std::forward<Args>(args)...); | ||||
|         // TODO: Remove this | ||||
|         code += '\n'; | ||||
|     } | ||||
|  | ||||
|     template <typename... Args> | ||||
|     void LongAdd(const char* format_str, IR::Inst& inst, Args&&... args) { | ||||
|         code += fmt::format(format_str, reg_alloc.LongDefine(inst), std::forward<Args>(args)...); | ||||
|         code += fmt::format(fmt::runtime(format_str), reg_alloc.LongDefine(inst), | ||||
|                             std::forward<Args>(args)...); | ||||
|         // TODO: Remove this | ||||
|         code += '\n'; | ||||
|     } | ||||
|  | ||||
|     template <typename... Args> | ||||
|     void Add(const char* format_str, Args&&... args) { | ||||
|         code += fmt::format(format_str, std::forward<Args>(args)...); | ||||
|         code += fmt::format(fmt::runtime(format_str), std::forward<Args>(args)...); | ||||
|         // TODO: Remove this | ||||
|         code += '\n'; | ||||
|     } | ||||
|   | ||||
| @@ -597,7 +597,7 @@ std::string EmitContext::DefineGlobalMemoryFunctions() { | ||||
|         func += comparison; | ||||
|  | ||||
|         const auto ssbo_name{fmt::format("{}_ssbo{}", stage_name, index)}; | ||||
|         func += fmt::format(return_statement, ssbo_name, ssbo_addr); | ||||
|         func += fmt::format(fmt::runtime(return_statement), ssbo_name, ssbo_addr); | ||||
|     }}; | ||||
|     std::string write_func{"void WriteGlobal32(uint64_t addr,uint data){"}; | ||||
|     std::string write_func_64{"void WriteGlobal64(uint64_t addr,uvec2 data){"}; | ||||
|   | ||||
| @@ -51,9 +51,9 @@ public: | ||||
|         const auto var_def{var_alloc.AddDefine(inst, type)}; | ||||
|         if (var_def.empty()) { | ||||
|             // skip assigment. | ||||
|             code += fmt::format(format_str + 3, std::forward<Args>(args)...); | ||||
|             code += fmt::format(fmt::runtime(format_str + 3), std::forward<Args>(args)...); | ||||
|         } else { | ||||
|             code += fmt::format(format_str, var_def, std::forward<Args>(args)...); | ||||
|             code += fmt::format(fmt::runtime(format_str), var_def, std::forward<Args>(args)...); | ||||
|         } | ||||
|         // TODO: Remove this | ||||
|         code += '\n'; | ||||
| @@ -131,7 +131,7 @@ public: | ||||
|  | ||||
|     template <typename... Args> | ||||
|     void Add(const char* format_str, Args&&... args) { | ||||
|         code += fmt::format(format_str, std::forward<Args>(args)...); | ||||
|         code += fmt::format(fmt::runtime(format_str), std::forward<Args>(args)...); | ||||
|         // TODO: Remove this | ||||
|         code += '\n'; | ||||
|     } | ||||
|   | ||||
| @@ -61,14 +61,14 @@ void GetCbuf(EmitContext& ctx, std::string_view ret, const IR::Value& binding, | ||||
|                                          : fmt ::format("bitfieldExtract({},int({}),{})", cbuf_cast, | ||||
|                                                         bit_offset, num_bits)}; | ||||
|     if (!component_indexing_bug) { | ||||
|         const auto result{fmt::format(extraction, swizzle)}; | ||||
|         const auto result{fmt::format(fmt::runtime(extraction), swizzle)}; | ||||
|         ctx.Add("{}={};", ret, result); | ||||
|         return; | ||||
|     } | ||||
|     const auto cbuf_offset{fmt::format("{}>>2", offset_var)}; | ||||
|     for (u32 i = 0; i < 4; ++i) { | ||||
|         const auto swizzle_string{fmt::format(".{}", "xyzw"[i])}; | ||||
|         const auto result{fmt::format(extraction, swizzle_string)}; | ||||
|         const auto result{fmt::format(fmt::runtime(extraction), swizzle_string)}; | ||||
|         ctx.Add("if(({}&3)=={}){}={};", cbuf_offset, i, ret, result); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -244,8 +244,9 @@ std::string_view StageName(Stage stage) { | ||||
|  | ||||
| template <typename... Args> | ||||
| void Name(EmitContext& ctx, Id object, std::string_view format_str, Args&&... args) { | ||||
|     ctx.Name(object, | ||||
|              fmt::format(format_str, StageName(ctx.stage), std::forward<Args>(args)...).c_str()); | ||||
|     ctx.Name(object, fmt::format(fmt::runtime(format_str), StageName(ctx.stage), | ||||
|                                  std::forward<Args>(args)...) | ||||
|                          .c_str()); | ||||
| } | ||||
|  | ||||
| void DefineConstBuffers(EmitContext& ctx, const Info& info, Id UniformDefinitions::*member_type, | ||||
|   | ||||
| @@ -37,21 +37,21 @@ class LogicError : public Exception { | ||||
| public: | ||||
|     template <typename... Args> | ||||
|     LogicError(const char* message, Args&&... args) | ||||
|         : Exception{fmt::format(message, std::forward<Args>(args)...)} {} | ||||
|         : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} {} | ||||
| }; | ||||
|  | ||||
| class RuntimeError : public Exception { | ||||
| public: | ||||
|     template <typename... Args> | ||||
|     RuntimeError(const char* message, Args&&... args) | ||||
|         : Exception{fmt::format(message, std::forward<Args>(args)...)} {} | ||||
|         : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} {} | ||||
| }; | ||||
|  | ||||
| class NotImplementedException : public Exception { | ||||
| public: | ||||
|     template <typename... Args> | ||||
|     NotImplementedException(const char* message, Args&&... args) | ||||
|         : Exception{fmt::format(message, std::forward<Args>(args)...)} { | ||||
|         : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} { | ||||
|         Append(" is not implemented"); | ||||
|     } | ||||
| }; | ||||
| @@ -60,7 +60,7 @@ class InvalidArgument : public Exception { | ||||
| public: | ||||
|     template <typename... Args> | ||||
|     InvalidArgument(const char* message, Args&&... args) | ||||
|         : Exception{fmt::format(message, std::forward<Args>(args)...)} {} | ||||
|         : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} {} | ||||
| }; | ||||
|  | ||||
| } // namespace Shader | ||||
|   | ||||
| @@ -174,7 +174,7 @@ std::string DumpTree(const Tree& tree, u32 indentation = 0) { | ||||
|         switch (stmt->type) { | ||||
|         case StatementType::Code: | ||||
|             ret += fmt::format("{}    Block {:04x} -> {:04x} (0x{:016x});\n", indent, | ||||
|                                stmt->block->begin, stmt->block->end, | ||||
|                                stmt->block->begin.Offset(), stmt->block->end.Offset(), | ||||
|                                reinterpret_cast<uintptr_t>(stmt->block)); | ||||
|             break; | ||||
|         case StatementType::Goto: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user