mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
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:
parent
cc7173b438
commit
bf1f49482d
1 changed files with 21 additions and 1 deletions
|
|
@ -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 =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue