mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +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:
parent
516d7f091e
commit
a90c2843a7
@ -5,17 +5,19 @@
|
|||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
DxvkDataBuffer:: DxvkDataBuffer() { }
|
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) {
|
DxvkDataSlice DxvkDataBuffer::alloc(size_t n) {
|
||||||
const size_t offset = m_offset;
|
const size_t offset = m_offset;
|
||||||
|
|
||||||
if (offset + n <= m_data.size()) {
|
if (offset + n <= m_size) {
|
||||||
m_offset += align(n, CACHE_LINE_SIZE);
|
m_offset += align(n, CACHE_LINE_SIZE);
|
||||||
return DxvkDataSlice(this, offset, n);
|
return DxvkDataSlice(this, offset, n);
|
||||||
} return DxvkDataSlice();
|
} return DxvkDataSlice();
|
||||||
|
@ -35,8 +35,9 @@ namespace dxvk {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::vector<char> m_data;
|
char* m_data = nullptr;
|
||||||
size_t m_offset = 0;
|
size_t m_size = 0;
|
||||||
|
size_t m_offset = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -62,7 +63,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
void* ptr() const {
|
void* ptr() const {
|
||||||
return m_buffer != nullptr
|
return m_buffer != nullptr
|
||||||
? m_buffer->m_data.data() + m_offset
|
? m_buffer->m_data + m_offset
|
||||||
: nullptr;
|
: nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user