From f95a225d633ac3f94a9620936d96902f7b6e50df Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sun, 14 Jun 2026 06:28:53 +0200 Subject: [PATCH] Use std::string_view in rsx code --- rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp | 2 +- rpcs3/Emu/RSX/GL/GLFragmentProgram.h | 4 ++-- rpcs3/Emu/RSX/GL/GLVertexProgram.cpp | 8 ++++---- rpcs3/Emu/RSX/GL/GLVertexProgram.h | 18 ++++++++--------- .../RSX/Program/FragmentProgramDecompiler.h | 20 +++++++++---------- rpcs3/Emu/RSX/Program/GLSLCommon.cpp | 2 +- rpcs3/Emu/RSX/Program/GLSLCommon.h | 2 +- rpcs3/Emu/RSX/Program/ShaderParam.h | 10 +++++----- .../Emu/RSX/Program/VertexProgramDecompiler.h | 16 +++++++-------- rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp | 2 +- rpcs3/Emu/RSX/VK/VKFragmentProgram.h | 4 ++-- rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp | 10 +++++----- rpcs3/Emu/RSX/VK/VKProgramPipeline.h | 5 ++--- rpcs3/Emu/RSX/VK/VKVertexProgram.cpp | 18 ++++++++--------- rpcs3/Emu/RSX/VK/VKVertexProgram.h | 18 ++++++++--------- rpcs3/tests/test_rsx_fp_asm.cpp | 2 +- 16 files changed, 70 insertions(+), 71 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp b/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp index ab63cb2ea1..c445a0532f 100644 --- a/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp @@ -21,7 +21,7 @@ std::string GLFragmentDecompilerThread::getFunction(FUNCTION f) return glsl::getFunctionImpl(f); } -std::string GLFragmentDecompilerThread::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1) +std::string GLFragmentDecompilerThread::compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1) { return glsl::compareFunctionImpl(f, Op0, Op1); } diff --git a/rpcs3/Emu/RSX/GL/GLFragmentProgram.h b/rpcs3/Emu/RSX/GL/GLFragmentProgram.h index e8fc2ed6f1..29e461793a 100644 --- a/rpcs3/Emu/RSX/GL/GLFragmentProgram.h +++ b/rpcs3/Emu/RSX/GL/GLFragmentProgram.h @@ -34,8 +34,8 @@ public: protected: std::string getFloatTypeName(usz elementCount) override; std::string getHalfTypeName(usz elementCount) override; - std::string getFunction(FUNCTION) override; - std::string compareFunction(COMPARE, const std::string&, const std::string&) override; + std::string getFunction(FUNCTION f) override; + std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1) override; void insertHeader(std::stringstream &OS) override; void insertInputs(std::stringstream &OS) override; diff --git a/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp b/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp index 6f5cb85df0..d275a55bcf 100644 --- a/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp +++ b/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp @@ -21,12 +21,12 @@ std::string GLVertexDecompilerThread::getFunction(FUNCTION f) return glsl::getFunctionImpl(f); } -std::string GLVertexDecompilerThread::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1, bool scalar) +std::string GLVertexDecompilerThread::compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar) { return glsl::compareFunctionImpl(f, Op0, Op1, scalar); } -void GLVertexDecompilerThread::insertHeader(std::stringstream &OS) +void GLVertexDecompilerThread::insertHeader(std::stringstream& OS) { OS << "#version 430\n" @@ -162,7 +162,7 @@ void GLVertexDecompilerThread::insertOutputs(std::stringstream& OS, const std::v } } -void GLVertexDecompilerThread::insertMainStart(std::stringstream & OS) +void GLVertexDecompilerThread::insertMainStart(std::stringstream& OS) { const auto& dev_caps = gl::get_driver_caps(); @@ -236,7 +236,7 @@ void GLVertexDecompilerThread::insertMainStart(std::stringstream & OS) } } -void GLVertexDecompilerThread::insertMainEnd(std::stringstream & OS) +void GLVertexDecompilerThread::insertMainEnd(std::stringstream& OS) { OS << "}\n\n"; diff --git a/rpcs3/Emu/RSX/GL/GLVertexProgram.h b/rpcs3/Emu/RSX/GL/GLVertexProgram.h index 631b6ac245..2fb57b04c7 100644 --- a/rpcs3/Emu/RSX/GL/GLVertexProgram.h +++ b/rpcs3/Emu/RSX/GL/GLVertexProgram.h @@ -26,20 +26,20 @@ struct GLVertexDecompilerThread : public VertexProgramDecompiler protected: std::string getFloatTypeName(usz elementCount) override; std::string getIntTypeName(usz elementCount) override; - std::string getFunction(FUNCTION) override; - std::string compareFunction(COMPARE, const std::string&, const std::string&, bool scalar) override; + std::string getFunction(FUNCTION f) override; + std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar) override; - void insertHeader(std::stringstream &OS) override; - void insertInputs(std::stringstream &OS, const std::vector &inputs) override; - void insertConstants(std::stringstream &OS, const std::vector &constants) override; - void insertOutputs(std::stringstream &OS, const std::vector &outputs) override; - void insertMainStart(std::stringstream &OS) override; - void insertMainEnd(std::stringstream &OS) override; + void insertHeader(std::stringstream& OS) override; + void insertInputs(std::stringstream& OS, const std::vector& inputs) override; + void insertConstants(std::stringstream& OS, const std::vector& constants) override; + void insertOutputs(std::stringstream& OS, const std::vector& outputs) override; + void insertMainStart(std::stringstream& OS) override; + void insertMainEnd(std::stringstream& OS) override; const RSXVertexProgram &rsx_vertex_program; std::unordered_map input_locations; public: - GLVertexDecompilerThread(const RSXVertexProgram &prog, std::string& shader, ParamArray&) + GLVertexDecompilerThread(const RSXVertexProgram& prog, std::string& shader, ParamArray&) : VertexProgramDecompiler(prog) , m_shader(shader) , rsx_vertex_program(prog) diff --git a/rpcs3/Emu/RSX/Program/FragmentProgramDecompiler.h b/rpcs3/Emu/RSX/Program/FragmentProgramDecompiler.h index 8e22a21a93..f3cfaa8730 100644 --- a/rpcs3/Emu/RSX/Program/FragmentProgramDecompiler.h +++ b/rpcs3/Emu/RSX/Program/FragmentProgramDecompiler.h @@ -111,33 +111,33 @@ protected: /** returns string calling function where arguments are passed via * $0 $1 $2 substring. */ - virtual std::string getFunction(FUNCTION) = 0; + virtual std::string getFunction(FUNCTION f) = 0; /** returns string calling comparison function on 2 args passed as strings. */ - virtual std::string compareFunction(COMPARE, const std::string &, const std::string &) = 0; + virtual std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1) = 0; /** Insert header of shader file (eg #version, "system constants"...) */ - virtual void insertHeader(std::stringstream &OS) = 0; + virtual void insertHeader(std::stringstream& OS) = 0; /** Insert global declaration of fragments inputs. */ - virtual void insertInputs(std::stringstream &OS) = 0; + virtual void insertInputs(std::stringstream& OS) = 0; /** insert global declaration of fragments outputs. */ - virtual void insertOutputs(std::stringstream &OS) = 0; + virtual void insertOutputs(std::stringstream& OS) = 0; /** insert declaration of shader constants. */ - virtual void insertConstants(std::stringstream &OS) = 0; + virtual void insertConstants(std::stringstream& OS) = 0; /** insert helper function definitions. */ - virtual void insertGlobalFunctions(std::stringstream &OS) = 0; + virtual void insertGlobalFunctions(std::stringstream& OS) = 0; /** insert beginning of main (signature, temporary declaration...) */ - virtual void insertMainStart(std::stringstream &OS) = 0; + virtual void insertMainStart(std::stringstream& OS) = 0; /** insert end of main function (return value, output copy...) */ - virtual void insertMainEnd(std::stringstream &OS) = 0; + virtual void insertMainEnd(std::stringstream& OS) = 0; public: enum : u16 @@ -201,7 +201,7 @@ public: device_props; ParamArray m_parr; - FragmentProgramDecompiler(const RSXFragmentProgram &prog, u32& size); + FragmentProgramDecompiler(const RSXFragmentProgram& prog, u32& size); FragmentProgramDecompiler(const FragmentProgramDecompiler&) = delete; FragmentProgramDecompiler(FragmentProgramDecompiler&&) = delete; std::string Decompile(); diff --git a/rpcs3/Emu/RSX/Program/GLSLCommon.cpp b/rpcs3/Emu/RSX/Program/GLSLCommon.cpp index 3330b4be9b..761aa091ee 100644 --- a/rpcs3/Emu/RSX/Program/GLSLCommon.cpp +++ b/rpcs3/Emu/RSX/Program/GLSLCommon.cpp @@ -73,7 +73,7 @@ namespace glsl } } - std::string compareFunctionImpl(COMPARE f, const std::string &Op0, const std::string &Op1, bool scalar) + std::string compareFunctionImpl(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar) { if (scalar) { diff --git a/rpcs3/Emu/RSX/Program/GLSLCommon.h b/rpcs3/Emu/RSX/Program/GLSLCommon.h index b71dc8c80d..47fd730589 100644 --- a/rpcs3/Emu/RSX/Program/GLSLCommon.h +++ b/rpcs3/Emu/RSX/Program/GLSLCommon.h @@ -71,7 +71,7 @@ namespace glsl std::string getFloatTypeNameImpl(usz elementCount); std::string getHalfTypeNameImpl(usz elementCount); - std::string compareFunctionImpl(COMPARE f, const std::string &Op0, const std::string &Op1, bool scalar = false); + std::string compareFunctionImpl(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar = false); void insert_vertex_input_fetch(std::stringstream& OS, glsl_rules rules, bool glsl4_compliant=true); void insert_rop_init(std::ostream& OS); void insert_rop(std::ostream& OS, const shader_properties& props); diff --git a/rpcs3/Emu/RSX/Program/ShaderParam.h b/rpcs3/Emu/RSX/Program/ShaderParam.h index 4cd98f2e34..bf78b8f499 100644 --- a/rpcs3/Emu/RSX/Program/ShaderParam.h +++ b/rpcs3/Emu/RSX/Program/ShaderParam.h @@ -130,7 +130,7 @@ struct ParamType { } - bool HasItem(const std::string& name) const + bool HasItem(std::string_view name) const { return std::any_of(items.cbegin(), items.cend(), [&name](const auto& item) { @@ -138,7 +138,7 @@ struct ParamType }); } - bool ReplaceOrInsert(const std::string& name, const ParamItem& item) + bool ReplaceOrInsert(std::string_view name, const ParamItem& item) { if (HasItem(name)) { @@ -168,7 +168,7 @@ struct ParamArray { std::vector params[PF_PARAM_COUNT]; - ParamType* SearchParam(const ParamFlag &flag, const std::string& type) + ParamType* SearchParam(const ParamFlag& flag, std::string_view type) { for (auto& param : params[flag]) { @@ -179,7 +179,7 @@ struct ParamArray return nullptr; } - bool HasParamTypeless(const ParamFlag flag, const std::string& name) const + bool HasParamTypeless(const ParamFlag flag, std::string_view name) const { const auto& p = params[flag]; return std::any_of(p.cbegin(), p.cend(), [&name](const auto& param) @@ -188,7 +188,7 @@ struct ParamArray }); } - bool HasParam(const ParamFlag flag, const std::string& type, const std::string& name) + bool HasParam(const ParamFlag flag, std::string_view type, std::string_view name) { const ParamType* t = SearchParam(flag, type); return t && t->HasItem(name); diff --git a/rpcs3/Emu/RSX/Program/VertexProgramDecompiler.h b/rpcs3/Emu/RSX/Program/VertexProgramDecompiler.h index 94b25f8076..adf6676921 100644 --- a/rpcs3/Emu/RSX/Program/VertexProgramDecompiler.h +++ b/rpcs3/Emu/RSX/Program/VertexProgramDecompiler.h @@ -99,35 +99,35 @@ protected: /** returns string calling function where arguments are passed via * $0 $1 $2 substring. */ - virtual std::string getFunction(FUNCTION) = 0; + virtual std::string getFunction(FUNCTION f) = 0; /** returns string calling comparison function on 2 args passed as strings. */ - virtual std::string compareFunction(COMPARE, const std::string &, const std::string &, bool scalar = false) = 0; + virtual std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar = false) = 0; /** Insert header of shader file (eg #version, "system constants"...) */ - virtual void insertHeader(std::stringstream &OS) = 0; + virtual void insertHeader(std::stringstream& OS) = 0; /** Insert vertex declaration. */ - virtual void insertInputs(std::stringstream &OS, const std::vector &inputs) = 0; + virtual void insertInputs(std::stringstream& OS, const std::vector& inputs) = 0; /** insert global declaration of vertex shader outputs. */ - virtual void insertConstants(std::stringstream &OS, const std::vector &constants) = 0; + virtual void insertConstants(std::stringstream& OS, const std::vector& constants) = 0; /** insert declaration of shader constants. */ - virtual void insertOutputs(std::stringstream &OS, const std::vector &outputs) = 0; + virtual void insertOutputs(std::stringstream& OS, const std::vector& outputs) = 0; /** insert beginning of main (signature, temporary declaration...) */ - virtual void insertMainStart(std::stringstream &OS) = 0; + virtual void insertMainStart(std::stringstream& OS) = 0; /** insert end of main function (return value, output copy...) */ - virtual void insertMainEnd(std::stringstream &OS) = 0; + virtual void insertMainEnd(std::stringstream& OS) = 0; public: struct diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp index 03ad33ac07..29d7e6b0e4 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp @@ -21,7 +21,7 @@ std::string VKFragmentDecompilerThread::getFunction(FUNCTION f) return glsl::getFunctionImpl(f); } -std::string VKFragmentDecompilerThread::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1) +std::string VKFragmentDecompilerThread::compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1) { return glsl::compareFunctionImpl(f, Op0, Op1); } diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.h b/rpcs3/Emu/RSX/VK/VKFragmentProgram.h index 0412561340..b17a67f1c5 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.h +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.h @@ -37,8 +37,8 @@ public: protected: std::string getFloatTypeName(usz elementCount) override; std::string getHalfTypeName(usz elementCount) override; - std::string getFunction(FUNCTION) override; - std::string compareFunction(COMPARE, const std::string&, const std::string&) override; + std::string getFunction(FUNCTION f) override; + std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1) override; void insertHeader(std::stringstream &OS) override; void insertInputs(std::stringstream &OS) override; diff --git a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp index 48874f55d0..7ae53c4c5e 100644 --- a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp +++ b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp @@ -282,7 +282,7 @@ namespace vk return *this; } - bool program::has_uniform(program_input_type type, const std::string& uniform_name) + bool program::has_uniform(program_input_type type, std::string_view uniform_name) { for (auto& set : m_sets) { @@ -296,7 +296,7 @@ namespace vk return false; } - std::pair program::get_uniform_location(::glsl::program_domain domain, program_input_type type, const std::string& uniform_name) + std::pair program::get_uniform_location(::glsl::program_domain domain, program_input_type type, std::string_view uniform_name) { for (unsigned i = 0; i < ::size32(m_sets); ++i) { @@ -632,7 +632,7 @@ namespace vk std::unordered_map descriptor_type_map; - auto descriptor_count = [](const std::string& name) -> u32 + auto descriptor_count = [](std::string_view name) -> u32 { const auto start = name.find_last_of("["); if (start == std::string::npos) @@ -643,8 +643,8 @@ namespace vk const auto end = name.find_last_of("]"); ensure(end != std::string::npos && start < end, "Invalid variable name"); - const std::string array_size = name.substr(start + 1, end - start - 1); - if (const auto count = std::atoi(array_size.c_str()); + const std::string_view array_size = name.substr(start + 1, end - start - 1); + if (const auto count = std::atoi(array_size.data()); count > 0) { return count; diff --git a/rpcs3/Emu/RSX/VK/VKProgramPipeline.h b/rpcs3/Emu/RSX/VK/VKProgramPipeline.h index bbf82bf26e..2beb2b90eb 100644 --- a/rpcs3/Emu/RSX/VK/VKProgramPipeline.h +++ b/rpcs3/Emu/RSX/VK/VKProgramPipeline.h @@ -221,13 +221,12 @@ namespace vk program& link(bool separate_stages); program& bind(const vk::command_buffer& cmd, VkPipelineBindPoint bind_point); - bool has_uniform(program_input_type type, const std::string &uniform_name); - std::pair get_uniform_location(::glsl::program_domain domain, program_input_type type, const std::string& uniform_name); + bool has_uniform(program_input_type type, std::string_view uniform_name); + std::pair get_uniform_location(::glsl::program_domain domain, program_input_type type, std::string_view uniform_name); void bind_uniform(const VkDescriptorImageInfoEx& image_descriptor, u32 set_id, u32 binding_point); void bind_uniform(const VkDescriptorBufferInfoEx& buffer_descriptor, u32 set_id, u32 binding_point); void bind_uniform(const VkDescriptorBufferViewEx& buffer_view, u32 set_id, u32 binding_point); - void bind_uniform(const VkDescriptorBufferViewEx& buffer_view, ::glsl::program_domain domain, program_input_type type, const std::string &binding_name); void bind_uniform_array(const std::span& image_descriptors,u32 set_id, u32 binding_point); diff --git a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp index 41faf3ca1e..7496679c40 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp @@ -21,7 +21,7 @@ std::string VKVertexDecompilerThread::getFunction(FUNCTION f) return glsl::getFunctionImpl(f); } -std::string VKVertexDecompilerThread::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1, bool scalar) +std::string VKVertexDecompilerThread::compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar) { return glsl::compareFunctionImpl(f, Op0, Op1, scalar); } @@ -69,7 +69,7 @@ void VKVertexDecompilerThread::prepareBindingTable() } } -void VKVertexDecompilerThread::insertHeader(std::stringstream &OS) +void VKVertexDecompilerThread::insertHeader(std::stringstream& OS) { prepareBindingTable(); @@ -182,7 +182,7 @@ void VKVertexDecompilerThread::insertInputs(std::stringstream& OS, const std::ve } } -void VKVertexDecompilerThread::insertConstants(std::stringstream & OS, const std::vector & constants) +void VKVertexDecompilerThread::insertConstants(std::stringstream& OS, const std::vector& constants) { vk::glsl::program_input in { @@ -330,7 +330,7 @@ void VKVertexDecompilerThread::insertFSExport(std::stringstream& OS) "}\n\n"; } -void VKVertexDecompilerThread::insertMainStart(std::stringstream & OS) +void VKVertexDecompilerThread::insertMainStart(std::stringstream& OS) { glsl::shader_properties properties2{}; properties2.domain = glsl::glsl_vertex_program; @@ -388,9 +388,9 @@ void VKVertexDecompilerThread::insertMainStart(std::stringstream & OS) OS << "{\n"; //Declare temporary registers, ignoring those mapped to outputs - for (const ParamType &PT : m_parr.params[PF_PARAM_NONE]) + for (const ParamType& PT : m_parr.params[PF_PARAM_NONE]) { - for (const ParamItem &PI : PT.items) + for (const ParamItem& PI : PT.items) { if (PI.name.starts_with("dst_reg")) continue; @@ -403,9 +403,9 @@ void VKVertexDecompilerThread::insertMainStart(std::stringstream & OS) } } - for (const ParamType &PT : m_parr.params[PF_PARAM_IN]) + for (const ParamType& PT : m_parr.params[PF_PARAM_IN]) { - for (const ParamItem &PI : PT.items) + for (const ParamItem& PI : PT.items) { OS << " vec4 " << PI.name << "= read_location(" << std::to_string(PI.location) << ");\n"; } @@ -414,7 +414,7 @@ void VKVertexDecompilerThread::insertMainStart(std::stringstream & OS) OS << "\nuint xform_constants_offset = get_draw_params().xform_constants_offset;\n\n"; } -void VKVertexDecompilerThread::insertMainEnd(std::stringstream & OS) +void VKVertexDecompilerThread::insertMainEnd(std::stringstream& OS) { OS << "}\n\n"; diff --git a/rpcs3/Emu/RSX/VK/VKVertexProgram.h b/rpcs3/Emu/RSX/VK/VKVertexProgram.h index c36f089a2e..e5aeee0c3d 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexProgram.h +++ b/rpcs3/Emu/RSX/VK/VKVertexProgram.h @@ -25,21 +25,21 @@ struct VKVertexDecompilerThread : public VertexProgramDecompiler protected: std::string getFloatTypeName(usz elementCount) override; std::string getIntTypeName(usz elementCount) override; - std::string getFunction(FUNCTION) override; - std::string compareFunction(COMPARE, const std::string&, const std::string&, bool scalar) override; + std::string getFunction(FUNCTION f) override; + std::string compareFunction(COMPARE f, std::string_view Op0, std::string_view Op1, bool scalar) override; - void insertHeader(std::stringstream &OS) override; - void insertInputs(std::stringstream &OS, const std::vector &inputs) override; - void insertConstants(std::stringstream &OS, const std::vector &constants) override; - void insertOutputs(std::stringstream &OS, const std::vector &outputs) override; - void insertMainStart(std::stringstream &OS) override; - void insertMainEnd(std::stringstream &OS) override; + void insertHeader(std::stringstream& OS) override; + void insertInputs(std::stringstream& OS, const std::vector& inputs) override; + void insertConstants(std::stringstream& OS, const std::vector& constants) override; + void insertOutputs(std::stringstream& OS, const std::vector& outputs) override; + void insertMainStart(std::stringstream& OS) override; + void insertMainEnd(std::stringstream& OS) override; void prepareBindingTable(); const RSXVertexProgram &rsx_vertex_program; public: - VKVertexDecompilerThread(const RSXVertexProgram &prog, std::string& shader, ParamArray&, class VKVertexProgram &dst) + VKVertexDecompilerThread(const RSXVertexProgram& prog, std::string& shader, ParamArray&, class VKVertexProgram& dst) : VertexProgramDecompiler(prog) , m_shader(shader) , vk_prog(&dst) diff --git a/rpcs3/tests/test_rsx_fp_asm.cpp b/rpcs3/tests/test_rsx_fp_asm.cpp index 704df5a23d..c28707de44 100644 --- a/rpcs3/tests/test_rsx_fp_asm.cpp +++ b/rpcs3/tests/test_rsx_fp_asm.cpp @@ -51,7 +51,7 @@ namespace rsx::assembler return nullptr; }; - static FlowGraph CFG_from_source(const std::string& asm_) + static FlowGraph CFG_from_source(std::string_view asm_) { auto ir = FPIR::from_source(asm_);