diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2019-02-14 14:43:48 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2019-03-01 10:45:24 +0300 |
commit | ff589c4b54b190bf8e8dce32b35e7f75715705c8 (patch) | |
tree | 74870dadc99173f1d1e849a934025a9bccfa5ca7 /drape/vertex_array_buffer.cpp | |
parent | d4dd122572599524f5841c04edb5c9de0d14ba7b (diff) |
[vulkan] Binding info optimization
Diffstat (limited to 'drape/vertex_array_buffer.cpp')
-rw-r--r-- | drape/vertex_array_buffer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drape/vertex_array_buffer.cpp b/drape/vertex_array_buffer.cpp index 4375b404c1..b77dce0389 100644 --- a/drape/vertex_array_buffer.cpp +++ b/drape/vertex_array_buffer.cpp @@ -217,8 +217,8 @@ void VertexArrayBuffer::Build(ref_ptr<GraphicsContext> context, ref_ptr<GpuProgr } else if (apiVersion == dp::ApiVersion::Vulkan) { - CHECK(!m_bindingInfo.empty(), ()); - m_impl = CreateImplForVulkan(context, make_ref(this), std::move(m_bindingInfo)); + CHECK_NOT_EQUAL(m_bindingInfoCount, 0, ()); + m_impl = CreateImplForVulkan(context, make_ref(this), std::move(m_bindingInfo), m_bindingInfoCount); } else { @@ -448,8 +448,9 @@ void VertexArrayBuffer::CollectBindingInfo(dp::BindingInfo const & bindingInfo) return; } - m_bindingInfo.push_back(bindingInfo); - std::sort(m_bindingInfo.begin(), m_bindingInfo.end(), + CHECK_LESS(m_bindingInfoCount, kMaxBindingInfo, ()); + m_bindingInfo[m_bindingInfoCount++] = bindingInfo; + std::sort(m_bindingInfo.begin(), m_bindingInfo.begin() + m_bindingInfoCount, [](dp::BindingInfo const & info1, dp::BindingInfo const & info2) { return info1.GetID() < info2.GetID(); |