Increase DX11 uniform count to 1024.

TRAC #22243
Signed-off-by: Jamie Madill
Signed-off-by: Daniel Koch
Author: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1774 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index fbf0c99..fe19655 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -1872,12 +1872,16 @@
 
 int Renderer11::getMaxVertexUniformVectors() const
 {
-    return gl::MAX_VERTEX_UNIFORM_VECTORS;
+    META_ASSERT(MAX_VERTEX_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
+    ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
+    return MAX_VERTEX_UNIFORM_VECTORS_D3D11;
 }
 
 int Renderer11::getMaxFragmentUniformVectors() const
 {
-    return getMajorShaderModel() >= 3 ? gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
+    META_ASSERT(MAX_FRAGMENT_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
+    ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
+    return MAX_FRAGMENT_UNIFORM_VECTORS_D3D11;
 }
 
 bool Renderer11::getNonPower2TextureSupport() const
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index 756694c..8f37e6e 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -33,6 +33,12 @@
 class IndexDataManager;
 class StreamingIndexBufferInterface;
 
+enum
+{
+    MAX_VERTEX_UNIFORM_VECTORS_D3D11 = 1024,
+    MAX_FRAGMENT_UNIFORM_VECTORS_D3D11 = 1024
+};
+
 class Renderer11 : public Renderer
 {
   public:
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index f3c949e..107d8f2 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -1658,11 +1658,11 @@
 
 void Renderer9::applyUniformnbv(gl::Uniform *targetUniform, GLsizei count, int width, const GLboolean *v)
 {
-    float vector[gl::D3D9_MAX_FLOAT_CONSTANTS * 4];
+    float vector[D3D9_MAX_FLOAT_CONSTANTS * 4];
 
     if (targetUniform->psRegisterIndex >= 0 || targetUniform->vsRegisterIndex >= 0)
     {
-        ASSERT(count <= gl::D3D9_MAX_FLOAT_CONSTANTS);
+        ASSERT(count <= D3D9_MAX_FLOAT_CONSTANTS);
         for (int i = 0; i < count; i++)
         {
             for (int j = 0; j < 4; j++)
@@ -1697,8 +1697,8 @@
 
 void Renderer9::applyUniform1iv(gl::Uniform *targetUniform, GLsizei count, const GLint *v)
 {
-    ASSERT(count <= gl::D3D9_MAX_FLOAT_CONSTANTS);
-    gl::Vector4 vector[gl::D3D9_MAX_FLOAT_CONSTANTS];
+    ASSERT(count <= D3D9_MAX_FLOAT_CONSTANTS);
+    gl::Vector4 vector[D3D9_MAX_FLOAT_CONSTANTS];
 
     for (int i = 0; i < count; i++)
     {
@@ -1710,8 +1710,8 @@
 
 void Renderer9::applyUniform2iv(gl::Uniform *targetUniform, GLsizei count, const GLint *v)
 {
-    ASSERT(count <= gl::D3D9_MAX_FLOAT_CONSTANTS);
-    gl::Vector4 vector[gl::D3D9_MAX_FLOAT_CONSTANTS];
+    ASSERT(count <= D3D9_MAX_FLOAT_CONSTANTS);
+    gl::Vector4 vector[D3D9_MAX_FLOAT_CONSTANTS];
 
     for (int i = 0; i < count; i++)
     {
@@ -1725,8 +1725,8 @@
 
 void Renderer9::applyUniform3iv(gl::Uniform *targetUniform, GLsizei count, const GLint *v)
 {
-    ASSERT(count <= gl::D3D9_MAX_FLOAT_CONSTANTS);
-    gl::Vector4 vector[gl::D3D9_MAX_FLOAT_CONSTANTS];
+    ASSERT(count <= D3D9_MAX_FLOAT_CONSTANTS);
+    gl::Vector4 vector[D3D9_MAX_FLOAT_CONSTANTS];
 
     for (int i = 0; i < count; i++)
     {
@@ -1740,8 +1740,8 @@
 
 void Renderer9::applyUniform4iv(gl::Uniform *targetUniform, GLsizei count, const GLint *v)
 {
-    ASSERT(count <= gl::D3D9_MAX_FLOAT_CONSTANTS);
-    gl::Vector4 vector[gl::D3D9_MAX_FLOAT_CONSTANTS];
+    ASSERT(count <= D3D9_MAX_FLOAT_CONSTANTS);
+    gl::Vector4 vector[D3D9_MAX_FLOAT_CONSTANTS];
 
     for (int i = 0; i < count; i++)
     {
@@ -2242,12 +2242,12 @@
 
 int Renderer9::getMaxVertexUniformVectors() const
 {
-    return gl::MAX_VERTEX_UNIFORM_VECTORS;
+    return MAX_VERTEX_UNIFORM_VECTORS;
 }
 
 int Renderer9::getMaxFragmentUniformVectors() const
 {
-    return getMajorShaderModel() >= 3 ? gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
+    return getMajorShaderModel() >= 3 ? MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
 }
 
 bool Renderer9::getNonPower2TextureSupport() const
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index 4eb582e..df026bf 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -35,6 +35,14 @@
 class StreamingIndexBufferInterface;
 struct TranslatedAttribute;
 
+enum
+{
+    D3D9_MAX_FLOAT_CONSTANTS = 256,
+    MAX_VERTEX_UNIFORM_VECTORS = D3D9_MAX_FLOAT_CONSTANTS - 2,   // Reserve space for dx_HalfPixelSize and dx_DepthRange.
+    MAX_FRAGMENT_UNIFORM_VECTORS_SM2 = 32 - 3,    // Reserve space for dx_Coord, dx_DepthFront and dx_DepthRange.
+    MAX_FRAGMENT_UNIFORM_VECTORS_SM3 = 224 - 3,
+};
+
 class Renderer9 : public Renderer
 {
   public: