From: Kenneth Graunke Date: Wed, 2 Dec 2015 01:52:58 +0000 (-0800) Subject: i965: Make fs_visitor::emit_urb_writes set EOT for TES as well. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=82455e5396753f034a946dc036443fabc8010464;p=mesa.git i965: Make fs_visitor::emit_urb_writes set EOT for TES as well. Tessellation evaluation shaders work almost identically to vertex shaders - we have a set of URB writes at the end of the program, and the last one should terminate it. Geometry shaders really are the special case, where multiple EmitVertex() calls trigger URB writes in the middle of the program. Signed-off-by: Kenneth Graunke Reviewed-by: Jason Ekstrand Reviewed-by: Kristian Høgsberg --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index a9a20aad352..0582e7831de 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -870,7 +870,7 @@ fs_visitor::emit_urb_writes(const fs_reg &gs_vertex_count) header_size); fs_inst *inst = abld.emit(opcode, reg_undef, payload); - inst->eot = last && stage == MESA_SHADER_VERTEX; + inst->eot = last && stage != MESA_SHADER_GEOMETRY; inst->mlen = length + header_size; inst->offset = urb_offset; urb_offset = starting_urb_offset + slot + 1;