Revert "In D3D, cache static vertex buffers to prevent wasteful recreation"

Perf bisect traced performance regression to this CL:

8.1% regression in angle_perftests/DrawCallPerf_d3d9_null/score
6.2% regression in angle_perftests/DrawCallPerf_d3d11_null/score

BUG=angleproject:197

This reverts commit 868651d334d060458af13c7ff9211c2f72be0cad.

Change-Id: Iaba7eb4e574eb886496361e61fd5fe78ca14dcb8
Reviewed-on: https://chromium-review.googlesource.com/311150
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/VertexDataManager.cpp b/src/libANGLE/renderer/d3d/VertexDataManager.cpp
index 7f87fb8..559e633 100644
--- a/src/libANGLE/renderer/d3d/VertexDataManager.cpp
+++ b/src/libANGLE/renderer/d3d/VertexDataManager.cpp
@@ -88,8 +88,7 @@
     {
         gl::Buffer *buffer = translated->attribute->buffer.get();
         BufferD3D *storage = buffer ? GetImplAs<BufferD3D>(buffer) : nullptr;
-        StaticVertexBufferInterface *staticBuffer =
-            storage ? storage->getStaticVertexBuffer(*translated->attribute) : nullptr;
+        StaticVertexBufferInterface *staticBuffer = storage ? storage->getStaticVertexBuffer() : nullptr;
 
         if (staticBuffer)
         {
@@ -198,22 +197,6 @@
         }
     }
 
-    // Commit all the static vertex buffers. This fixes them in size/contents, and forces ANGLE
-    // to use a new static buffer (or recreate the static buffers) next time
-    for (const TranslatedAttribute *activeAttrib : mActiveEnabledAttributes)
-    {
-        const gl::VertexAttribute &attrib = *activeAttrib->attribute;
-        gl::Buffer *buffer                = attrib.buffer.get();
-        BufferD3D *storage = buffer ? GetImplAs<BufferD3D>(buffer) : nullptr;
-        StaticVertexBufferInterface *staticBuffer =
-            storage ? storage->getStaticVertexBuffer(attrib) : nullptr;
-
-        if (staticBuffer)
-        {
-            staticBuffer->commit();
-        }
-    }
-
     // Hint to unmap all the resources
     hintUnmapAllResources(vertexAttributes);
 
@@ -240,15 +223,14 @@
     if (buffer)
     {
         BufferD3D *bufferImpl = GetImplAs<BufferD3D>(buffer);
-        StaticVertexBufferInterface *staticBuffer = bufferImpl->getStaticVertexBuffer(attrib);
+        StaticVertexBufferInterface *staticBuffer = bufferImpl->getStaticVertexBuffer();
 
         if (staticBuffer &&
             staticBuffer->getBufferSize() > 0 &&
             !staticBuffer->lookupAttribute(attrib, NULL) &&
             !staticBuffer->directStoragePossible(attrib, currentValue.Type))
         {
-            // This must be the default static vertex buffer, and we must invalidate it
-            bufferImpl->invalidateStaticData(false);
+            bufferImpl->invalidateStaticData();
         }
     }
 }
@@ -260,8 +242,7 @@
     const gl::VertexAttribute &attrib = *translatedAttrib.attribute;
     gl::Buffer *buffer = attrib.buffer.get();
     BufferD3D *bufferImpl = buffer ? GetImplAs<BufferD3D>(buffer) : NULL;
-    StaticVertexBufferInterface *staticBuffer =
-        bufferImpl ? bufferImpl->getStaticVertexBuffer(attrib) : NULL;
+    StaticVertexBufferInterface *staticBuffer = bufferImpl ? bufferImpl->getStaticVertexBuffer() : NULL;
     VertexBufferInterface *vertexBuffer = staticBuffer ? staticBuffer : static_cast<VertexBufferInterface*>(mStreamingBuffer);
 
     if (!vertexBuffer->directStoragePossible(attrib, translatedAttrib.currentValueType))
@@ -310,8 +291,7 @@
     ASSERT(attrib.enabled);
 
     BufferD3D *storage = buffer ? GetImplAs<BufferD3D>(buffer) : NULL;
-    StaticVertexBufferInterface *staticBuffer =
-        storage ? storage->getStaticVertexBuffer(attrib) : NULL;
+    StaticVertexBufferInterface *staticBuffer = storage ? storage->getStaticVertexBuffer() : NULL;
     VertexBufferInterface *vertexBuffer = staticBuffer ? staticBuffer : static_cast<VertexBufferInterface*>(mStreamingBuffer);
     bool directStorage = vertexBuffer->directStoragePossible(attrib, translated->currentValueType);