1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 10:54:16 +01:00

[dxvk] Remove std::vector from DxvkDataBuffer

Vectors are zero-initialized upon resize, which is unnecessary
in this case and potentially impacts performance.
This commit is contained in:
Philip Rebohle 2018-05-13 21:34:38 +02:00
parent 516d7f091e
commit a90c2843a7
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 10 additions and 7 deletions

View File

@ -5,17 +5,19 @@
namespace dxvk {
DxvkDataBuffer:: DxvkDataBuffer() { }
DxvkDataBuffer::~DxvkDataBuffer() { }
DxvkDataBuffer::DxvkDataBuffer(size_t size)
: m_data(new char[size]), m_size(size) { }
DxvkDataBuffer::DxvkDataBuffer(size_t size) {
m_data.resize(size);
DxvkDataBuffer::~DxvkDataBuffer() {
delete[] m_data;
}
DxvkDataSlice DxvkDataBuffer::alloc(size_t n) {
const size_t offset = m_offset;
if (offset + n <= m_data.size()) {
if (offset + n <= m_size) {
m_offset += align(n, CACHE_LINE_SIZE);
return DxvkDataSlice(this, offset, n);
} return DxvkDataSlice();

View File

@ -35,8 +35,9 @@ namespace dxvk {
private:
std::vector<char> m_data;
size_t m_offset = 0;
char* m_data = nullptr;
size_t m_size = 0;
size_t m_offset = 0;
};
@ -62,7 +63,7 @@ namespace dxvk {
void* ptr() const {
return m_buffer != nullptr
? m_buffer->m_data.data() + m_offset
? m_buffer->m_data + m_offset
: nullptr;
}