From 75f759079af5115fbb6dfed052a6e09ed2993c35 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 3 Aug 2025 16:04:41 +0300 Subject: [PATCH] rsx: Use simple array for texcoord stack - Saves an expensive allocation when these ephemeral objects are constructed --- rpcs3/Emu/RSX/Common/TextureUtils.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/RSX/Common/TextureUtils.h b/rpcs3/Emu/RSX/Common/TextureUtils.h index 2b9552bc7a..cc40305721 100644 --- a/rpcs3/Emu/RSX/Common/TextureUtils.h +++ b/rpcs3/Emu/RSX/Common/TextureUtils.h @@ -1,10 +1,10 @@ #pragma once #include "io_buffer.h" +#include "simple_array.hpp" #include "../color_utils.h" #include "../RSXTexture.h" -#include #include namespace rsx @@ -140,7 +140,7 @@ namespace rsx #pragma pack(pop) // Texure matrix stack - std::stack m_texcoord_xform_stack; + rsx::simple_array m_texcoord_xform_stack; public: virtual ~sampled_image_descriptor_base() = default; @@ -148,14 +148,14 @@ namespace rsx void push_texcoord_xform() { - m_texcoord_xform_stack.push(texcoord_xform); + m_texcoord_xform_stack.push_back(texcoord_xform); } void pop_texcoord_xform() { ensure(!m_texcoord_xform_stack.empty()); - std::memcpy(&texcoord_xform, &m_texcoord_xform_stack.top(), sizeof(texcoord_xform_t)); - m_texcoord_xform_stack.pop(); + std::memcpy(&texcoord_xform, &m_texcoord_xform_stack.back(), sizeof(texcoord_xform_t)); + m_texcoord_xform_stack.pop_back(); } texture_upload_context upload_context = texture_upload_context::shader_read;