diff options
| -rw-r--r-- | src/common/fs/fs_util.cpp | 4 | ||||
| -rw-r--r-- | src/common/fs/fs_util.h | 11 | ||||
| -rw-r--r-- | src/shader_recompiler/exception.h | 12 | ||||
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 1 | ||||
| -rw-r--r-- | src/video_core/engines/fermi_2d.h | 2 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_dma.h | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_compute_pass.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.cpp | 2 | 
9 files changed, 26 insertions, 14 deletions
| diff --git a/src/common/fs/fs_util.cpp b/src/common/fs/fs_util.cpp index 357cf5855..9f8671982 100644 --- a/src/common/fs/fs_util.cpp +++ b/src/common/fs/fs_util.cpp @@ -20,6 +20,10 @@ std::string ToUTF8String(std::u8string_view u8_string) {      return std::string{u8_string.begin(), u8_string.end()};  } +std::string BufferToUTF8String(std::span<const u8> buffer) { +    return std::string{buffer.begin(), std::ranges::find(buffer, u8{0})}; +} +  std::string PathToUTF8String(const std::filesystem::path& path) {      return ToUTF8String(path.u8string());  } diff --git a/src/common/fs/fs_util.h b/src/common/fs/fs_util.h index ec9950ee7..1ec82eb35 100644 --- a/src/common/fs/fs_util.h +++ b/src/common/fs/fs_util.h @@ -47,6 +47,17 @@ concept IsChar = std::same_as<T, char>;  [[nodiscard]] std::string ToUTF8String(std::u8string_view u8_string);  /** + * Converts a buffer of bytes to a UTF8-encoded std::string. + * This converts from the start of the buffer until the first encountered null-terminator. + * If no null-terminator is found, this converts the entire buffer instead. + * + * @param buffer Buffer of bytes + * + * @returns UTF-8 encoded std::string. + */ +[[nodiscard]] std::string BufferToUTF8String(std::span<const u8> buffer); + +/**   * Converts a filesystem path to a UTF-8 encoded std::string.   *   * @param path Filesystem path diff --git a/src/shader_recompiler/exception.h b/src/shader_recompiler/exception.h index 337e7f0c8..277be8541 100644 --- a/src/shader_recompiler/exception.h +++ b/src/shader_recompiler/exception.h @@ -4,7 +4,7 @@  #pragma once -#include <stdexcept> +#include <exception>  #include <string>  #include <string_view>  #include <utility> @@ -17,7 +17,7 @@ class Exception : public std::exception {  public:      explicit Exception(std::string message) noexcept : err_message{std::move(message)} {} -    const char* what() const noexcept override { +    [[nodiscard]] const char* what() const noexcept override {          return err_message.c_str();      } @@ -36,21 +36,21 @@ private:  class LogicError : public Exception {  public:      template <typename... Args> -    LogicError(const char* message, Args&&... args) +    explicit LogicError(const char* message, 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) +    explicit RuntimeError(const char* message, 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) +    explicit NotImplementedException(const char* message, Args&&... args)          : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} {          Append(" is not implemented");      } @@ -59,7 +59,7 @@ public:  class InvalidArgument : public Exception {  public:      template <typename... Args> -    InvalidArgument(const char* message, Args&&... args) +    explicit InvalidArgument(const char* message, Args&&... args)          : Exception{fmt::format(fmt::runtime(message), std::forward<Args>(args)...)} {}  }; diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 24c858104..3b43554f9 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -817,7 +817,6 @@ void BufferCache<P>::CommitAsyncFlushesHigh() {              const std::size_t size = interval.upper() - interval.lower();              const VAddr cpu_addr = interval.lower();              ForEachBufferInRange(cpu_addr, size, [&](BufferId buffer_id, Buffer& buffer) { -                boost::container::small_vector<BufferCopy, 1> copies;                  buffer.ForEachDownloadRangeAndClear(                      cpu_addr, size, [&](u64 range_offset, u64 range_size) {                          const VAddr buffer_addr = buffer.CpuAddr(); diff --git a/src/video_core/engines/fermi_2d.h b/src/video_core/engines/fermi_2d.h index a4170ffff..d76c5ed56 100644 --- a/src/video_core/engines/fermi_2d.h +++ b/src/video_core/engines/fermi_2d.h @@ -299,7 +299,7 @@ public:      };  private: -    VideoCore::RasterizerInterface* rasterizer; +    VideoCore::RasterizerInterface* rasterizer = nullptr;      /// Performs the copy from the source surface to the destination surface as configured in the      /// registers. diff --git a/src/video_core/engines/maxwell_dma.h b/src/video_core/engines/maxwell_dma.h index d3329b0f8..9e457ae16 100644 --- a/src/video_core/engines/maxwell_dma.h +++ b/src/video_core/engines/maxwell_dma.h @@ -227,7 +227,7 @@ private:      Core::System& system;      MemoryManager& memory_manager; -    VideoCore::RasterizerInterface* rasterizer; +    VideoCore::RasterizerInterface* rasterizer = nullptr;      std::vector<u8> read_buffer;      std::vector<u8> write_buffer; diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index 8d6cc074c..1f4dda17e 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp @@ -441,7 +441,6 @@ std::unique_ptr<GraphicsPipeline> ShaderCache::CreateGraphicsPipeline(      std::array<const Shader::Info*, Maxwell::MaxShaderStage> infos{}; -    OGLProgram source_program;      std::array<std::string, 5> sources;      std::array<std::vector<u32>, 5> sources_spirv;      Shader::Backend::Bindings binding; diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp index 73157a15d..561cf5e11 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp @@ -258,10 +258,9 @@ std::pair<VkBuffer, VkDeviceSize> Uint8Pass::Assemble(u32 num_vertices, VkBuffer      update_descriptor_queue.AddBuffer(src_buffer, src_offset, num_vertices);      update_descriptor_queue.AddBuffer(staging.buffer, staging.offset, staging_size);      const void* const descriptor_data{update_descriptor_queue.UpdateData()}; -    const VkBuffer buffer{staging.buffer};      scheduler.RequestOutsideRenderPassOperationContext(); -    scheduler.Record([this, buffer, descriptor_data, num_vertices](vk::CommandBuffer cmdbuf) { +    scheduler.Record([this, descriptor_data, num_vertices](vk::CommandBuffer cmdbuf) {          static constexpr u32 DISPATCH_SIZE = 1024;          static constexpr VkMemoryBarrier WRITE_BARRIER{              .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, @@ -319,7 +318,7 @@ std::pair<VkBuffer, VkDeviceSize> QuadIndexedPass::Assemble(      const void* const descriptor_data{update_descriptor_queue.UpdateData()};      scheduler.RequestOutsideRenderPassOperationContext(); -    scheduler.Record([this, buffer = staging.buffer, descriptor_data, num_tri_vertices, base_vertex, +    scheduler.Record([this, descriptor_data, num_tri_vertices, base_vertex,                        index_shift](vk::CommandBuffer cmdbuf) {          static constexpr u32 DISPATCH_SIZE = 1024;          static constexpr VkMemoryBarrier WRITE_BARRIER{ diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index bbf0fccae..70898004a 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp @@ -202,7 +202,7 @@ void SetObjectName(const DeviceDispatch* dld, VkDevice device, T handle, VkObjec      const VkDebugUtilsObjectNameInfoEXT name_info{          .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,          .pNext = nullptr, -        .objectType = VK_OBJECT_TYPE_IMAGE, +        .objectType = type,          .objectHandle = reinterpret_cast<u64>(handle),          .pObjectName = name,      }; | 
