glsl: Implement the GL_ARB_conservative_depth extension.
It's the same as GL_AMD_conservative_depth. The specs have slight differences in wording, but don't differ in content or behavior. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -123,7 +123,7 @@ GL_ARB_texture_storage not started
|
||||
GL_ARB_transform_feedback_instanced not started
|
||||
GL_ARB_base_instance not started
|
||||
GL_ARB_shader_image_load_store not started
|
||||
GL_ARB_conservative_depth not started (may be close to AMD_conservative_depth though)
|
||||
GL_ARB_conservative_depth DONE (compiler)
|
||||
GL_ARB_shading_language_420pack not started
|
||||
GL_ARB_internalformat_query not started
|
||||
GL_ARB_map_buffer_alignment not started
|
||||
|
@@ -1111,7 +1111,7 @@ layout_qualifier_id:
|
||||
}
|
||||
}
|
||||
|
||||
/* Layout qualifiers for AMD_conservative_depth. */
|
||||
/* Layout qualifiers for AMD/ARB_conservative_depth. */
|
||||
if (!got_one && state->AMD_conservative_depth_enable) {
|
||||
if (strcmp($1, "depth_any") == 0) {
|
||||
got_one = true;
|
||||
@@ -1129,7 +1129,7 @@ layout_qualifier_id:
|
||||
|
||||
if (got_one && state->AMD_conservative_depth_warn) {
|
||||
_mesa_glsl_warning(& @1, state,
|
||||
"GL_AMD_conservative_depth "
|
||||
"GL_ARB_conservative_depth "
|
||||
"layout qualifier `%s' is used\n", $1);
|
||||
}
|
||||
}
|
||||
|
@@ -253,6 +253,7 @@ struct _mesa_glsl_extension {
|
||||
static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||
/* target availability API availability */
|
||||
/* name VS GS FS GL ES supported flag */
|
||||
EXT(ARB_conservative_depth, true, false, true, true, false, AMD_conservative_depth),
|
||||
EXT(ARB_draw_buffers, false, false, true, true, false, dummy_true),
|
||||
EXT(ARB_draw_instanced, true, false, false, true, false, ARB_draw_instanced),
|
||||
EXT(ARB_explicit_attrib_location, true, false, true, true, false, ARB_explicit_attrib_location),
|
||||
|
@@ -180,6 +180,8 @@ struct _mesa_glsl_parse_state {
|
||||
bool ARB_shader_stencil_export_warn;
|
||||
bool AMD_conservative_depth_enable;
|
||||
bool AMD_conservative_depth_warn;
|
||||
bool ARB_conservative_depth_enable;
|
||||
bool ARB_conservative_depth_warn;
|
||||
bool AMD_shader_stencil_export_enable;
|
||||
bool AMD_shader_stencil_export_warn;
|
||||
bool OES_texture_3D_enable;
|
||||
|
@@ -236,7 +236,7 @@ enum ir_variable_interpolation {
|
||||
/**
|
||||
* \brief Layout qualifiers for gl_FragDepth.
|
||||
*
|
||||
* The AMD_conservative_depth extension allows gl_FragDepth to be redeclared
|
||||
* The AMD/ARB_conservative_depth extensions allow gl_FragDepth to be redeclared
|
||||
* with a layout qualifier.
|
||||
*/
|
||||
enum ir_depth_layout {
|
||||
|
@@ -395,7 +395,7 @@ cross_validate_globals(struct gl_shader_program *prog,
|
||||
|
||||
/* Validate layout qualifiers for gl_FragDepth.
|
||||
*
|
||||
* From the AMD_conservative_depth spec:
|
||||
* From the AMD/ARB_conservative_depth specs:
|
||||
* "If gl_FragDepth is redeclared in any fragment shader in
|
||||
* a program, it must be redeclared in all fragment shaders in that
|
||||
* program that have static assignments to gl_FragDepth. All
|
||||
|
@@ -81,6 +81,7 @@ static const struct extension extension_table[] = {
|
||||
{ "GL_ARB_blend_func_extended", o(ARB_blend_func_extended), GL, 2009 },
|
||||
{ "GL_ARB_color_buffer_float", o(ARB_color_buffer_float), GL, 2004 },
|
||||
{ "GL_ARB_copy_buffer", o(ARB_copy_buffer), GL, 2008 },
|
||||
{ "GL_ARB_conservative_depth", o(AMD_conservative_depth), GL, 2011 },
|
||||
{ "GL_ARB_depth_buffer_float", o(ARB_depth_buffer_float), GL, 2008 },
|
||||
{ "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 },
|
||||
{ "GL_ARB_depth_texture", o(ARB_depth_texture), GL, 2001 },
|
||||
|
Reference in New Issue
Block a user