diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index e3d3026771..c4d3afbd06 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -835,7 +835,9 @@ void GLGSRender::load_program_env() auto mapping = m_transform_constants_buffer->alloc_from_heap(static_cast(transform_constants_size), m_uniform_buffer_offset_align); auto buf = static_cast(mapping.first); - const std::vector& constant_ids = (transform_constants_size == 8192) ? std::vector{} : m_vertex_prog->constant_ids; + const auto constant_ids = (transform_constants_size == 8192) + ? std::span{} + : std::span(m_vertex_prog->constant_ids); fill_vertex_program_constants_data(buf, constant_ids); m_transform_constants_buffer->bind_range(GL_VERTEX_CONSTANT_BUFFERS_BIND_SLOT, mapping.second, static_cast(transform_constants_size)); diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 551104e4ce..9d3e268cd9 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -1077,7 +1077,7 @@ namespace rsx * Fill buffer with vertex program constants. * Buffer must be at least 512 float4 wide. */ - void thread::fill_vertex_program_constants_data(void* buffer, const std::vector& reloc_table) + void thread::fill_vertex_program_constants_data(void* buffer, const std::span& reloc_table) { if (!reloc_table.empty()) [[ likely ]] { diff --git a/rpcs3/Emu/RSX/RSXThread.h b/rpcs3/Emu/RSX/RSXThread.h index 1b870b53b4..24b8d2ce1f 100644 --- a/rpcs3/Emu/RSX/RSXThread.h +++ b/rpcs3/Emu/RSX/RSXThread.h @@ -493,7 +493,7 @@ namespace rsx * Fill buffer with vertex program constants. * Relocation table allows to do a partial fill with only selected registers. */ - void fill_vertex_program_constants_data(void* buffer, const std::vector& reloc_table); + void fill_vertex_program_constants_data(void* buffer, const std::span& reloc_table); /** * Fill buffer with fragment rasterization state. diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 407d08ce72..55dc1a2a5c 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -2081,8 +2081,11 @@ void VKGSRender::load_program_env() auto mem = m_transform_constants_ring_info.alloc<1>(utils::align(transform_constants_size, alignment)); auto buf = m_transform_constants_ring_info.map(mem, transform_constants_size); - const std::vector& constant_ids = (transform_constants_size == 8192) ? std::vector{} : m_vertex_prog->constant_ids; + const auto constant_ids = (transform_constants_size == 8192) + ? std::span{} + : std::span(m_vertex_prog->constant_ids); fill_vertex_program_constants_data(buf, constant_ids); + m_transform_constants_ring_info.unmap(); m_vertex_constants_buffer_info = { m_transform_constants_ring_info.heap->value, mem, transform_constants_size }; }