glsl: Drop the ES requirement that VS outputs must be flat qualified.
Several conformance tests violate this requirement: ES31-CTS.core.tessellation_shader.max_patch_vertices ES31-CTS.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.data_pass_through I submitted a merge request to fix the conformance tests, but Khronos opted to drop this GLSL ES specific requirement in favor of making flat qualification of VS outputs optional, matching modern desktop GL. Note that there were 7 Piglit tests which enforce this rule: tests/spec/glsl-es-3.00/compiler/interpolation/qualifiers/*nonflat* but these were deleted in Piglit commit acc0a2fabbd714bc704c16f1675e7c0. Bugzilla: https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15465#c7 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
@@ -2986,14 +2986,10 @@ validate_interpolation_qualifier(struct _mesa_glsl_parse_state *state,
|
|||||||
if (state->is_version(130, 300)
|
if (state->is_version(130, 300)
|
||||||
&& var_type->contains_integer()
|
&& var_type->contains_integer()
|
||||||
&& interpolation != INTERP_MODE_FLAT
|
&& interpolation != INTERP_MODE_FLAT
|
||||||
&& ((state->stage == MESA_SHADER_FRAGMENT && mode == ir_var_shader_in)
|
&& state->stage == MESA_SHADER_FRAGMENT
|
||||||
|| (state->stage == MESA_SHADER_VERTEX && mode == ir_var_shader_out
|
&& mode == ir_var_shader_in) {
|
||||||
&& state->es_shader))) {
|
_mesa_glsl_error(loc, state, "if a fragment input is (or contains) "
|
||||||
const char *shader_var_type = (state->stage == MESA_SHADER_VERTEX) ?
|
"an integer, then it must be qualified with 'flat'");
|
||||||
"vertex output" : "fragment input";
|
|
||||||
_mesa_glsl_error(loc, state, "if a %s is (or contains) "
|
|
||||||
"an integer, then it must be qualified with 'flat'",
|
|
||||||
shader_var_type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Double fragment inputs must be qualified with 'flat'.
|
/* Double fragment inputs must be qualified with 'flat'.
|
||||||
|
Reference in New Issue
Block a user