Add and implement Renderer::getMaxUniformBufferSize(), returning the maximum…

Add and implement Renderer::getMaxUniformBufferSize(), returning the maximum uniform buffer/block size. TRAC #22852 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2289 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 29233b29
......@@ -166,6 +166,7 @@ class Renderer
virtual unsigned int getMaxVertexShaderUniformBuffers() const = 0;
virtual unsigned int getMaxFragmentShaderUniformBuffers() const = 0;
virtual unsigned int getMaxTransformFeedbackBuffers() const = 0;
virtual unsigned int getMaxUniformBufferSize() const = 0;
virtual bool getNonPower2TextureSupport() const = 0;
virtual bool getDepthTextureSupport() const = 0;
virtual bool getOcclusionQuerySupport() const = 0;
......
......@@ -2211,6 +2211,23 @@ unsigned int Renderer11::getMaxTransformFeedbackBuffers() const
}
}
unsigned int Renderer11::getMaxUniformBufferSize() const
{
// Each component is a 4-element vector of 4-byte units (floats)
const unsigned int bytesPerComponent = 4 * sizeof(float);
switch (mFeatureLevel)
{
case D3D_FEATURE_LEVEL_11_0:
return D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT * bytesPerComponent;
case D3D_FEATURE_LEVEL_10_1:
case D3D_FEATURE_LEVEL_10_0:
return D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT * bytesPerComponent;
default: UNREACHABLE();
return 0;
}
}
bool Renderer11::getNonPower2TextureSupport() const
{
switch (mFeatureLevel)
......
......@@ -111,6 +111,7 @@ class Renderer11 : public Renderer
virtual unsigned int getMaxVertexShaderUniformBuffers() const;
virtual unsigned int getMaxFragmentShaderUniformBuffers() const;
virtual unsigned int getMaxTransformFeedbackBuffers() const;
virtual unsigned int getMaxUniformBufferSize() const;
virtual bool getNonPower2TextureSupport() const;
virtual bool getDepthTextureSupport() const;
virtual bool getOcclusionQuerySupport() const;
......
......@@ -2314,6 +2314,11 @@ unsigned int Renderer9::getMaxTransformFeedbackBuffers() const
return 0;
}
unsigned int Renderer9::getMaxUniformBufferSize() const
{
return 0;
}
bool Renderer9::getNonPower2TextureSupport() const
{
return mSupportsNonPower2Textures;
......
......@@ -126,6 +126,7 @@ class Renderer9 : public Renderer
virtual unsigned int getMaxVertexShaderUniformBuffers() const;
virtual unsigned int getMaxFragmentShaderUniformBuffers() const;
virtual unsigned int getMaxTransformFeedbackBuffers() const;
virtual unsigned int getMaxUniformBufferSize() const;
virtual bool getNonPower2TextureSupport() const;
virtual bool getDepthTextureSupport() const;
virtual bool getOcclusionQuerySupport() const;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment