glsl: Disallow transform feedback varyings with compute shaders.
If the only stage is MESA_SHADER_COMPUTE, we should complain that there's nothing coming out of the geometry shader stage just as we would if the first stage were MESA_SHADER_FRAGMENT. Also, it's valid for tessellation shaders to be the stage producing transform feedback varyings, so mention those in the compiler error. Found by inspection. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
@@ -4446,9 +4446,10 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||||||
* non-zero, but the program object has no vertex or geometry
|
* non-zero, but the program object has no vertex or geometry
|
||||||
* shader;
|
* shader;
|
||||||
*/
|
*/
|
||||||
if (first == MESA_SHADER_FRAGMENT) {
|
if (first >= MESA_SHADER_FRAGMENT) {
|
||||||
linker_error(prog, "Transform feedback varyings specified, but "
|
linker_error(prog, "Transform feedback varyings specified, but "
|
||||||
"no vertex or geometry shader is present.\n");
|
"no vertex, tessellation, or geometry shader is "
|
||||||
|
"present.\n");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user