diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp
index 99b8744..6e287bd 100644
--- a/tests/render_tests.cpp
+++ b/tests/render_tests.cpp
@@ -787,7 +787,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,2);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BIND_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
     ASSERT_VK_SUCCESS(BeginCommandBuffer());
@@ -863,7 +862,6 @@
 
     pipelineobj.AddVertexInputAttribs(&vi_attrib, 1);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BUF_ID);
 
     VkDescriptorSetObj descriptorSet(m_device);
 
@@ -1066,7 +1064,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,1);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer,MESH_BIND_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1155,7 +1152,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,1);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer,MESH_BIND_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
     ASSERT_VK_SUCCESS(BeginCommandBuffer());
@@ -1254,7 +1250,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,1);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer,MESH_BIND_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1344,7 +1339,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,1);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer,MESH_BIND_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1586,7 +1580,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs, 2);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BUF_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1690,7 +1683,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs, 2);
     pipelineobj.AddVertexInputBindings(&vi_binding, 1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BUF_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1784,7 +1776,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs, 2);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BUF_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget());
 
@@ -1902,7 +1893,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs, 2);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BUF_ID);
 
     ASSERT_NO_FATAL_FAILURE(InitRenderTarget(m_depthStencil->BindInfo()));
 
@@ -2778,7 +2768,6 @@
 
     pipelineobj.AddVertexInputAttribs(vi_attribs,2);
     pipelineobj.AddVertexInputBindings(&vi_binding,1);
-    pipelineobj.AddVertexDataBuffer(&meshBuffer, MESH_BIND_ID);
 
     VkPipelineDepthStencilStateCreateInfo ds_state;
     ds_state.depthTestEnable = VK_TRUE;
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index a199c19..ebb2117 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1233,13 +1233,6 @@
     m_vi_state.bindingCount = count;
 }
 
-void VkPipelineObj::AddVertexDataBuffer(VkConstantBufferObj* vertexDataBuffer, int binding)
-{
-    m_vertexBufferObjs.push_back(vertexDataBuffer);
-    m_vertexBufferBindings.push_back(binding);
-    m_vertexBufferCount++;
-}
-
 void VkPipelineObj::AddColorAttachment(uint32_t binding, const VkPipelineColorBlendAttachmentState *att)
 {
     if (binding+1 > m_colorAttachments.size())
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index f0f5c11..d6e3eef 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -410,7 +410,6 @@
     void AddShader(VkShaderObj* shaderObj);
     void AddVertexInputAttribs(VkVertexInputAttributeDescription* vi_attrib, int count);
     void AddVertexInputBindings(VkVertexInputBindingDescription* vi_binding, int count);
-    void AddVertexDataBuffer(VkConstantBufferObj* vertexDataBuffer, int binding);
     void AddColorAttachment(uint32_t binding, const VkPipelineColorBlendAttachmentState *att);
 
     void AddColorAttachment()
@@ -435,7 +434,6 @@
     VkPipelineMultisampleStateCreateInfo          m_ms_state;
     VkDeviceObj                                  *m_device;
     vector<VkShaderObj*>                          m_shaderObjs;
-    vector<VkConstantBufferObj*>                  m_vertexBufferObjs;
     vector<int>                                   m_vertexBufferBindings;
     vector<VkPipelineColorBlendAttachmentState>   m_colorAttachments;
     int                                           m_vertexBufferCount;
