glsl: TCS outputs can not be transform feedback candidates on GLES
Avoids regression on: KHR-GLES*.core.tessellation_shader.single.xfb_captures_data_from_correct_stage that is uncovered by the following patch. "glsl: fix recording of variables for XFB in TCS shaders" v2: Rebased over glsl: fix recording of variables for XFB in TCS shaders v3: Move this patch before "glsl: fix recording of variables for XFB in TCS shaders" to avoid temporal regressions. (Illia Mirkin) Cc: 19.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -2504,7 +2504,27 @@ assign_varying_locations(struct gl_context *ctx,
|
||||
|
||||
if (num_tfeedback_decls > 0) {
|
||||
tfeedback_candidate_generator g(mem_ctx, tfeedback_candidates);
|
||||
g.process(output_var);
|
||||
/* From OpenGL 4.6 (Core Profile) spec, section 11.1.2.1
|
||||
* ("Vertex Shader Variables / Output Variables")
|
||||
*
|
||||
* "Each program object can specify a set of output variables from
|
||||
* one shader to be recorded in transform feedback mode (see
|
||||
* section 13.3). The variables that can be recorded are those
|
||||
* emitted by the first active shader, in order, from the
|
||||
* following list:
|
||||
*
|
||||
* * geometry shader
|
||||
* * tessellation evaluation shader
|
||||
* * tessellation control shader
|
||||
* * vertex shader"
|
||||
*
|
||||
* But on OpenGL ES 3.2, section 11.1.2.1 ("Vertex Shader
|
||||
* Variables / Output Variables") tessellation control shader is
|
||||
* not included in the stages list.
|
||||
*/
|
||||
if (!prog->IsES || producer->Stage != MESA_SHADER_TESS_CTRL) {
|
||||
g.process(output_var);
|
||||
}
|
||||
}
|
||||
|
||||
ir_variable *const input_var =
|
||||
|
Reference in New Issue
Block a user