glsl/es3.1: Allow explicit uniform locations in GLSL ES 3.10

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
Ian Romanick 2015-04-28 12:38:46 -07:00
parent 7038370bd1
commit 2dcc535300
1 changed files with 13 additions and 4 deletions

View File

@ -175,11 +175,15 @@ struct _mesa_glsl_parse_state {
const ir_variable *)
{
if (!this->has_explicit_attrib_location() ||
!this->ARB_explicit_uniform_location_enable) {
!this->has_explicit_uniform_location()) {
const char *const requirement = this->es_shader
? "GLSL ES 310"
: "GL_ARB_explicit_uniform_location and either "
"GL_ARB_explicit_attrib_location or GLSL 330.";
_mesa_glsl_error(locp, this,
"uniform explicit location requires "
"GL_ARB_explicit_uniform_location and either "
"GL_ARB_explicit_attrib_location or GLSL 330.");
"uniform explicit location requires %s",
requirement);
return false;
}
@ -201,6 +205,11 @@ struct _mesa_glsl_parse_state {
return ARB_explicit_attrib_location_enable || is_version(330, 300);
}
bool has_explicit_uniform_location() const
{
return ARB_explicit_uniform_location_enable || is_version(430, 310);
}
bool has_uniform_buffer_objects() const
{
return ARB_uniform_buffer_object_enable || is_version(140, 300);