Refactor direct buffer storage to only create two backing buffers, for constant buffers and all other bindings.

This simplifies the logic used in retrieving the ID3D11Buffer.

TRAC #23844

Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods


diff --git a/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
index 8721333..18ba51f 100644
--- a/src/libGLESv2/renderer/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
@@ -621,7 +621,7 @@
         if (uniformBuffer)
         {
             BufferStorage11 *bufferStorage = BufferStorage11::makeBufferStorage11(uniformBuffer->getStorage());
-            ID3D11Buffer *constantBuffer = bufferStorage->getBuffer(GL_UNIFORM_BUFFER);
+            ID3D11Buffer *constantBuffer = bufferStorage->getBuffer(true);
 
             if (!constantBuffer)
             {
@@ -643,7 +643,7 @@
         if (uniformBuffer)
         {
             BufferStorage11 *bufferStorage = BufferStorage11::makeBufferStorage11(uniformBuffer->getStorage());
-            ID3D11Buffer *constantBuffer = bufferStorage->getBuffer(GL_UNIFORM_BUFFER);
+            ID3D11Buffer *constantBuffer = bufferStorage->getBuffer(true);
 
             if (!constantBuffer)
             {
@@ -1071,7 +1071,7 @@
                 BufferStorage11 *storage = BufferStorage11::makeBufferStorage11(indexInfo->storage);
                 IndexBuffer11* indexBuffer = IndexBuffer11::makeIndexBuffer11(indexInfo->indexBuffer);
 
-                mDeviceContext->IASetIndexBuffer(storage->getBuffer(GL_ELEMENT_ARRAY_BUFFER), indexBuffer->getIndexFormat(), indexInfo->startOffset);
+                mDeviceContext->IASetIndexBuffer(storage->getBuffer(false), indexBuffer->getIndexFormat(), indexInfo->startOffset);
 
                 mAppliedIBSerial = 0;
                 mAppliedStorageIBSerial = storage->getSerial();