mesa/sso: Add support for GL_PROGRAM_SEPARABLE query
This was originally included in another patch, but it was split out by Ian Romanick. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
committed by
Ian Romanick
parent
4177d39c1e
commit
8ed8592fd6
@@ -2586,6 +2586,12 @@ struct gl_shader_program
|
||||
*/
|
||||
GLboolean InternalSeparateShader;
|
||||
|
||||
/**
|
||||
* Indicates whether program can be bound for individual pipeline stages
|
||||
* using UseProgramStages after it is next linked.
|
||||
*/
|
||||
GLboolean SeparateShader;
|
||||
|
||||
GLuint NumShaders; /**< number of attached shaders */
|
||||
struct gl_shader **Shaders; /**< List of attached the shaders */
|
||||
|
||||
|
||||
@@ -696,6 +696,12 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *param
|
||||
params[i] = shProg->Comp.LocalSize[i];
|
||||
return;
|
||||
}
|
||||
case GL_PROGRAM_SEPARABLE:
|
||||
if (!ctx->Extensions.ARB_separate_shader_objects)
|
||||
break;
|
||||
|
||||
*params = shProg->SeparateShader;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1736,6 +1742,25 @@ _mesa_ProgramParameteri(GLuint program, GLenum pname, GLint value)
|
||||
*/
|
||||
shProg->BinaryRetreivableHint = value;
|
||||
return;
|
||||
|
||||
case GL_PROGRAM_SEPARABLE:
|
||||
if (!ctx->Extensions.ARB_separate_shader_objects)
|
||||
break;
|
||||
|
||||
/* Spec imply that the behavior is the same as ARB_get_program_binary
|
||||
* Chapter 7.3 Program Objects
|
||||
*/
|
||||
if (value != GL_TRUE && value != GL_FALSE) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE,
|
||||
"glProgramParameteri(pname=%s, value=%d): "
|
||||
"value must be 0 or 1.",
|
||||
_mesa_lookup_enum_by_nr(pname),
|
||||
value);
|
||||
return;
|
||||
}
|
||||
shProg->SeparateShader = value;
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user