rsx: Allocate scratch memory using simple array with no default initialize

- This cuts down processing time significantly by eliminating calls to memset_stosb
This commit is contained in:
kd-11 2022-05-26 23:04:15 +03:00 committed by kd-11
parent 129e947720
commit 7ec481d99b
2 changed files with 10 additions and 4 deletions

View File

@ -164,7 +164,7 @@ struct convert_16_block_32_swizzled
}
u32 size = padded_width * padded_height * depth * 2;
std::vector<U> tmp(size);
rsx::simple_array<U> tmp(size);
rsx::convert_linear_swizzle_3d<U>(src.data(), tmp.data(), padded_width, padded_height, depth);
@ -243,7 +243,7 @@ struct copy_unmodified_block_swizzled
}
const u32 size_in_block = padded_width * padded_height * depth * 2;
std::vector<U> tmp(size_in_block * words_per_block);
rsx::simple_array<U> tmp(size_in_block * words_per_block);
if (words_per_block == 1) [[likely]]
{
@ -488,7 +488,7 @@ struct copy_rgb655_block_swizzled
}
u32 size = padded_width * padded_height * depth * 2;
std::vector<U> tmp(size);
rsx::simple_array<U> tmp(size);
rsx::convert_linear_swizzle_3d<U>(src.data(), tmp.data(), padded_width, padded_height, depth);

View File

@ -25,7 +25,13 @@ namespace rsx
public:
simple_array() = default;
simple_array(u32 initial_size, const Ty val = {})
simple_array(u32 initial_size)
{
reserve(initial_size);
_size = initial_size;
}
simple_array(u32 initial_size, const Ty val)
{
reserve(initial_size);
_size = initial_size;