diff options
Diffstat (limited to 'Source/Core/VideoBackends')
8 files changed, 18 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/D3D/D3DVertexManager.cpp b/Source/Core/VideoBackends/D3D/D3DVertexManager.cpp index c88fee33ee..d9be7faf2f 100644 --- a/Source/Core/VideoBackends/D3D/D3DVertexManager.cpp +++ b/Source/Core/VideoBackends/D3D/D3DVertexManager.cpp @@ -255,7 +255,10 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, vertexBufferSize); ADDSTAT(g_stats.this_frame.bytes_index_streamed, indexBufferSize); +} +void VertexManager::BindCommittedBuffer(u32 vertex_stride) +{ D3D::stateman->SetVertexBuffer(m_buffers[m_current_buffer].Get(), vertex_stride, 0); D3D::stateman->SetIndexBuffer(m_buffers[m_current_buffer].Get()); } diff --git a/Source/Core/VideoBackends/D3D/D3DVertexManager.h b/Source/Core/VideoBackends/D3D/D3DVertexManager.h index ef7c4a9191..37374f6ec3 100644 --- a/Source/Core/VideoBackends/D3D/D3DVertexManager.h +++ b/Source/Core/VideoBackends/D3D/D3DVertexManager.h @@ -51,6 +51,7 @@ protected: void ResetBuffer(u32 vertex_stride) override; void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) override; + void BindCommittedBuffer(u32 vertex_stride) override; void UploadUniforms() override; private: diff --git a/Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp b/Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp index 4565db29bd..5366110ecc 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp +++ b/Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp @@ -128,7 +128,10 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, static_cast<int>(vertex_data_size)); ADDSTAT(g_stats.this_frame.bytes_index_streamed, static_cast<int>(index_data_size)); +} +void VertexManager::BindCommittedBuffer(u32 vertex_stride) +{ Gfx::GetInstance()->SetVertexBuffer(m_vertex_stream_buffer.GetGPUPointer(), m_vertex_srv.cpu_handle, vertex_stride, m_vertex_stream_buffer.GetSize()); diff --git a/Source/Core/VideoBackends/D3D12/D3D12VertexManager.h b/Source/Core/VideoBackends/D3D12/D3D12VertexManager.h index 76c0c6d7cb..d7479b0c56 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12VertexManager.h +++ b/Source/Core/VideoBackends/D3D12/D3D12VertexManager.h @@ -30,6 +30,7 @@ protected: void ResetBuffer(u32 vertex_stride) override; void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) override; + void BindCommittedBuffer(u32 vertex_stride) override; void UploadUniforms() override; void UpdateVertexShaderConstants(); diff --git a/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp b/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp index c5382cf358..614d066a5b 100644 --- a/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp +++ b/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp @@ -177,7 +177,6 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in *out_base_vertex = vertex_stride > 0 ? (m_vertex_buffer->GetCurrentOffset() / vertex_stride) : 0; *out_base_index = m_index_buffer->GetCurrentOffset() / sizeof(u16); - CheckBufferBinding(); m_vertex_buffer->Unmap(vertex_data_size); m_index_buffer->Unmap(index_data_size); @@ -185,6 +184,11 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in ADDSTAT(g_stats.this_frame.bytes_index_streamed, index_data_size); } +void VertexManager::BindCommittedBuffer(u32 /*vertex_stride*/) +{ + CheckBufferBinding(); +} + void VertexManager::UploadUniforms() { ProgramShaderCache::UploadConstants(); diff --git a/Source/Core/VideoBackends/OGL/OGLVertexManager.h b/Source/Core/VideoBackends/OGL/OGLVertexManager.h index 55a3ef14ad..14111693f4 100644 --- a/Source/Core/VideoBackends/OGL/OGLVertexManager.h +++ b/Source/Core/VideoBackends/OGL/OGLVertexManager.h @@ -47,6 +47,7 @@ protected: void ResetBuffer(u32 vertex_stride) override; void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) override; + void BindCommittedBuffer(u32 vertex_stride) override; void UploadUniforms() override; private: diff --git a/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp b/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp index 18c5ad560c..ea8a1d090a 100644 --- a/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp @@ -184,7 +184,10 @@ void VertexManager::CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_in ADDSTAT(g_stats.this_frame.bytes_vertex_streamed, static_cast<int>(vertex_data_size)); ADDSTAT(g_stats.this_frame.bytes_index_streamed, static_cast<int>(index_data_size)); +} +void VertexManager::BindCommittedBuffer(u32 /*vertex_stride*/) +{ StateTracker::GetInstance()->SetVertexBuffer(m_vertex_stream_buffer->GetBuffer(), 0, VERTEX_STREAM_BUFFER_SIZE); StateTracker::GetInstance()->SetIndexBuffer(m_index_stream_buffer->GetBuffer(), 0, diff --git a/Source/Core/VideoBackends/Vulkan/VKVertexManager.h b/Source/Core/VideoBackends/Vulkan/VKVertexManager.h index 75d35c0d32..f00ac47e93 100644 --- a/Source/Core/VideoBackends/Vulkan/VKVertexManager.h +++ b/Source/Core/VideoBackends/Vulkan/VKVertexManager.h @@ -33,6 +33,7 @@ protected: void ResetBuffer(u32 vertex_stride) override; void CommitBuffer(u32 num_vertices, u32 vertex_stride, u32 num_indices, u32* out_base_vertex, u32* out_base_index) override; + void BindCommittedBuffer(u32 vertex_stride) override; void UploadUniforms() override; void DestroyTexelBufferViews(); |
