Retrieve the maximum uniform register count from the renderer.

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@1773 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent c60c5215
...@@ -1268,12 +1268,12 @@ bool Context::getIntegerv(GLenum pname, GLint *params) ...@@ -1268,12 +1268,12 @@ bool Context::getIntegerv(GLenum pname, GLint *params)
switch (pname) switch (pname)
{ {
case GL_MAX_VERTEX_ATTRIBS: *params = gl::MAX_VERTEX_ATTRIBS; break; case GL_MAX_VERTEX_ATTRIBS: *params = gl::MAX_VERTEX_ATTRIBS; break;
case GL_MAX_VERTEX_UNIFORM_VECTORS: *params = gl::MAX_VERTEX_UNIFORM_VECTORS; break; case GL_MAX_VERTEX_UNIFORM_VECTORS: *params = mRenderer->getMaxVertexUniformVectors(); break;
case GL_MAX_VARYING_VECTORS: *params = getMaximumVaryingVectors(); break; case GL_MAX_VARYING_VECTORS: *params = getMaximumVaryingVectors(); break;
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: *params = getMaximumCombinedTextureImageUnits(); break; case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: *params = getMaximumCombinedTextureImageUnits(); break;
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: *params = mRenderer->getMaxVertexTextureImageUnits(); break; case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: *params = mRenderer->getMaxVertexTextureImageUnits(); break;
case GL_MAX_TEXTURE_IMAGE_UNITS: *params = gl::MAX_TEXTURE_IMAGE_UNITS; break; case GL_MAX_TEXTURE_IMAGE_UNITS: *params = gl::MAX_TEXTURE_IMAGE_UNITS; break;
case GL_MAX_FRAGMENT_UNIFORM_VECTORS: *params = getMaximumFragmentUniformVectors(); break; case GL_MAX_FRAGMENT_UNIFORM_VECTORS: *params = mRenderer->getMaxFragmentUniformVectors(); break;
case GL_MAX_RENDERBUFFER_SIZE: *params = getMaximumRenderbufferDimension(); break; case GL_MAX_RENDERBUFFER_SIZE: *params = getMaximumRenderbufferDimension(); break;
case GL_NUM_SHADER_BINARY_FORMATS: *params = 0; break; case GL_NUM_SHADER_BINARY_FORMATS: *params = 0; break;
case GL_SHADER_BINARY_FORMATS: /* no shader binary formats are supported */ break; case GL_SHADER_BINARY_FORMATS: /* no shader binary formats are supported */ break;
...@@ -2136,11 +2136,6 @@ unsigned int Context::getMaximumCombinedTextureImageUnits() const ...@@ -2136,11 +2136,6 @@ unsigned int Context::getMaximumCombinedTextureImageUnits() const
return MAX_TEXTURE_IMAGE_UNITS + mRenderer->getMaxVertexTextureImageUnits(); return MAX_TEXTURE_IMAGE_UNITS + mRenderer->getMaxVertexTextureImageUnits();
} }
int Context::getMaximumFragmentUniformVectors() const
{
return mMajorShaderModel >= 3 ? MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
}
int Context::getMaxSupportedSamples() const int Context::getMaxSupportedSamples() const
{ {
return mRenderer->getMaxSupportedSamples(); return mRenderer->getMaxSupportedSamples();
......
// //
// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -382,7 +382,6 @@ class Context ...@@ -382,7 +382,6 @@ class Context
float getMaximumPointSize() const; float getMaximumPointSize() const;
int getMaximumVaryingVectors() const; int getMaximumVaryingVectors() const;
unsigned int getMaximumCombinedTextureImageUnits() const; unsigned int getMaximumCombinedTextureImageUnits() const;
int getMaximumFragmentUniformVectors() const;
int getMaximumRenderbufferDimension() const; int getMaximumRenderbufferDimension() const;
int getMaximumTextureDimension() const; int getMaximumTextureDimension() const;
int getMaximumCubeTextureDimension() const; int getMaximumCubeTextureDimension() const;
......
...@@ -241,7 +241,7 @@ void Shader::initializeCompiler() ...@@ -241,7 +241,7 @@ void Shader::initializeCompiler()
resources.MaxVertexTextureImageUnits = mRenderer->getMaxVertexTextureImageUnits(); resources.MaxVertexTextureImageUnits = mRenderer->getMaxVertexTextureImageUnits();
resources.MaxCombinedTextureImageUnits = context->getMaximumCombinedTextureImageUnits(); resources.MaxCombinedTextureImageUnits = context->getMaximumCombinedTextureImageUnits();
resources.MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS; resources.MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
resources.MaxFragmentUniformVectors = context->getMaximumFragmentUniformVectors(); resources.MaxFragmentUniformVectors = mRenderer->getMaxFragmentUniformVectors();
resources.MaxDrawBuffers = MAX_DRAW_BUFFERS; resources.MaxDrawBuffers = MAX_DRAW_BUFFERS;
resources.OES_standard_derivatives = context->supportsDerivativeInstructions() ? 1 : 0; resources.OES_standard_derivatives = context->supportsDerivativeInstructions() ? 1 : 0;
// resources.OES_EGL_image_external = getDisplay()->getRenderer()->getShareHandleSupport() ? 1 : 0; // TODO: commented out until the extension is actually supported. // resources.OES_EGL_image_external = getDisplay()->getRenderer()->getShareHandleSupport() ? 1 : 0; // TODO: commented out until the extension is actually supported.
......
...@@ -145,6 +145,8 @@ class Renderer ...@@ -145,6 +145,8 @@ class Renderer
virtual bool getLuminanceAlphaTextureSupport() = 0; virtual bool getLuminanceAlphaTextureSupport() = 0;
bool getVertexTextureSupport() const { return getMaxVertexTextureImageUnits() > 0; } bool getVertexTextureSupport() const { return getMaxVertexTextureImageUnits() > 0; }
virtual unsigned int getMaxVertexTextureImageUnits() const = 0; virtual unsigned int getMaxVertexTextureImageUnits() const = 0;
virtual int getMaxVertexUniformVectors() const = 0;
virtual int getMaxFragmentUniformVectors() const = 0;
virtual bool getNonPower2TextureSupport() const = 0; virtual bool getNonPower2TextureSupport() const = 0;
virtual bool getDepthTextureSupport() const = 0; virtual bool getDepthTextureSupport() const = 0;
virtual bool getOcclusionQuerySupport() const = 0; virtual bool getOcclusionQuerySupport() const = 0;
......
...@@ -1870,6 +1870,16 @@ unsigned int Renderer11::getMaxVertexTextureImageUnits() const ...@@ -1870,6 +1870,16 @@ unsigned int Renderer11::getMaxVertexTextureImageUnits() const
} }
} }
int Renderer11::getMaxVertexUniformVectors() const
{
return gl::MAX_VERTEX_UNIFORM_VECTORS;
}
int Renderer11::getMaxFragmentUniformVectors() const
{
return getMajorShaderModel() >= 3 ? gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
}
bool Renderer11::getNonPower2TextureSupport() const bool Renderer11::getNonPower2TextureSupport() const
{ {
// TODO // TODO
......
...@@ -99,6 +99,8 @@ class Renderer11 : public Renderer ...@@ -99,6 +99,8 @@ class Renderer11 : public Renderer
virtual bool getLuminanceTextureSupport(); virtual bool getLuminanceTextureSupport();
virtual bool getLuminanceAlphaTextureSupport(); virtual bool getLuminanceAlphaTextureSupport();
virtual unsigned int getMaxVertexTextureImageUnits() const; virtual unsigned int getMaxVertexTextureImageUnits() const;
virtual int getMaxVertexUniformVectors() const;
virtual int getMaxFragmentUniformVectors() const;
virtual bool getNonPower2TextureSupport() const; virtual bool getNonPower2TextureSupport() const;
virtual bool getDepthTextureSupport() const; virtual bool getDepthTextureSupport() const;
virtual bool getOcclusionQuerySupport() const; virtual bool getOcclusionQuerySupport() const;
......
...@@ -2240,6 +2240,16 @@ unsigned int Renderer9::getMaxVertexTextureImageUnits() const ...@@ -2240,6 +2240,16 @@ unsigned int Renderer9::getMaxVertexTextureImageUnits() const
return mVertexTextureSupport ? MAX_TEXTURE_IMAGE_UNITS_VTF_SM3 : 0; return mVertexTextureSupport ? MAX_TEXTURE_IMAGE_UNITS_VTF_SM3 : 0;
} }
int Renderer9::getMaxVertexUniformVectors() const
{
return gl::MAX_VERTEX_UNIFORM_VECTORS;
}
int Renderer9::getMaxFragmentUniformVectors() const
{
return getMajorShaderModel() >= 3 ? gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM3 : gl::MAX_FRAGMENT_UNIFORM_VECTORS_SM2;
}
bool Renderer9::getNonPower2TextureSupport() const bool Renderer9::getNonPower2TextureSupport() const
{ {
return mSupportsNonPower2Textures; return mSupportsNonPower2Textures;
......
...@@ -124,6 +124,8 @@ class Renderer9 : public Renderer ...@@ -124,6 +124,8 @@ class Renderer9 : public Renderer
virtual bool getLuminanceTextureSupport(); virtual bool getLuminanceTextureSupport();
virtual bool getLuminanceAlphaTextureSupport(); virtual bool getLuminanceAlphaTextureSupport();
virtual unsigned int getMaxVertexTextureImageUnits() const; virtual unsigned int getMaxVertexTextureImageUnits() const;
virtual int getMaxVertexUniformVectors() const;
virtual int getMaxFragmentUniformVectors() const;
virtual bool getNonPower2TextureSupport() const; virtual bool getNonPower2TextureSupport() const;
virtual bool getDepthTextureSupport() const; virtual bool getDepthTextureSupport() const;
virtual bool getOcclusionQuerySupport() 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