glsl: add GL_OES_sample_variables support
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -879,7 +879,8 @@ builtin_variable_generator::generate_constants()
|
||||
add_const("gl_MaxTessEvaluationUniformComponents", state->Const.MaxTessEvaluationUniformComponents);
|
||||
}
|
||||
|
||||
if (state->is_version(450, 320))
|
||||
if (state->is_version(450, 320) ||
|
||||
state->OES_sample_variables_enable)
|
||||
add_const("gl_MaxSamples", state->Const.MaxSamples);
|
||||
}
|
||||
|
||||
@@ -890,7 +891,9 @@ builtin_variable_generator::generate_constants()
|
||||
void
|
||||
builtin_variable_generator::generate_uniforms()
|
||||
{
|
||||
if (state->is_version(400, 0) || state->ARB_sample_shading_enable)
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_sample_shading_enable ||
|
||||
state->OES_sample_variables_enable)
|
||||
add_uniform(int_t, "gl_NumSamples");
|
||||
add_uniform(type("gl_DepthRangeParameters"), "gl_DepthRange");
|
||||
add_uniform(array(vec4_t, VERT_ATTRIB_MAX), "gl_CurrentAttribVertMESA");
|
||||
@@ -1143,7 +1146,9 @@ builtin_variable_generator::generate_fs_special_vars()
|
||||
var->enable_extension_warning("GL_AMD_shader_stencil_export");
|
||||
}
|
||||
|
||||
if (state->is_version(400, 0) || state->ARB_sample_shading_enable) {
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_sample_shading_enable ||
|
||||
state->OES_sample_variables_enable) {
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_ID, int_t, "gl_SampleID");
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_POS, vec2_t, "gl_SamplePosition");
|
||||
/* From the ARB_sample_shading specification:
|
||||
@@ -1156,7 +1161,9 @@ builtin_variable_generator::generate_fs_special_vars()
|
||||
add_output(FRAG_RESULT_SAMPLE_MASK, array(int_t, 1), "gl_SampleMask");
|
||||
}
|
||||
|
||||
if (state->is_version(400, 0) || state->ARB_gpu_shader5_enable) {
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_gpu_shader5_enable ||
|
||||
state->OES_sample_variables_enable) {
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_MASK_IN, array(int_t, 1), "gl_SampleMaskIn");
|
||||
}
|
||||
|
||||
|
@@ -2371,6 +2371,8 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
|
||||
if (extensions != NULL) {
|
||||
if (extensions->OES_EGL_image_external)
|
||||
add_builtin_define(parser, "GL_OES_EGL_image_external", 1);
|
||||
if (extensions->OES_sample_variables)
|
||||
add_builtin_define(parser, "GL_OES_sample_variables", 1);
|
||||
if (extensions->OES_standard_derivatives)
|
||||
add_builtin_define(parser, "GL_OES_standard_derivatives", 1);
|
||||
if (extensions->ARB_texture_multisample)
|
||||
|
@@ -615,6 +615,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||
EXT(OES_geometry_point_size, false, true, OES_geometry_shader),
|
||||
EXT(OES_geometry_shader, false, true, OES_geometry_shader),
|
||||
EXT(OES_gpu_shader5, false, true, ARB_gpu_shader5),
|
||||
EXT(OES_sample_variables, false, true, OES_sample_variables),
|
||||
EXT(OES_shader_image_atomic, false, true, ARB_shader_image_load_store),
|
||||
EXT(OES_standard_derivatives, false, true, OES_standard_derivatives),
|
||||
EXT(OES_texture_3D, false, true, dummy_true),
|
||||
|
@@ -604,6 +604,8 @@ struct _mesa_glsl_parse_state {
|
||||
bool OES_geometry_shader_warn;
|
||||
bool OES_gpu_shader5_enable;
|
||||
bool OES_gpu_shader5_warn;
|
||||
bool OES_sample_variables_enable;
|
||||
bool OES_sample_variables_warn;
|
||||
bool OES_shader_image_atomic_enable;
|
||||
bool OES_shader_image_atomic_warn;
|
||||
bool OES_standard_derivatives_enable;
|
||||
|
Reference in New Issue
Block a user