OSDN Git Service

i965: Disable compaction for EOT send messages
authorBen Widawsky <benjamin.widawsky@intel.com>
Mon, 8 Jun 2015 18:18:35 +0000 (11:18 -0700)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 18 Jun 2015 12:28:52 +0000 (13:28 +0100)
commit1812014fe8e7a6a0f74a73bd065fb76465e85003
treef4d20d297e1543d8cc45fc840d302e1a7537873f
parent631414a507a8a53cd82d6b50052fd2b631b9e0d3
i965: Disable compaction for EOT send messages

AFAICT, there is no real way to make sure a send message with EOT is properly
ignored from compact, nor can I see a way to actually encode EOT while
compacting. Before the single send optimization we'd always bail because we hit
the is_immediate && !is_compactable_immediate case. However, with single send,
is_immediate is not true, and so we end up trying to compact the un-compactible.

Without this, any compacting single send instruction will hang because the EOT
isn't there. I am not sure how I didn't hit this when I originally enabled the
optimization.  I didn't check if some surrounding code changed.

I know Neil and Matt were both looking into this. I did a quick search and
didn't see any patches out there to handle this. Please ignore if this has
already been sent by someone. (Direct me to it and I will review it).

Reported-by: Neil Roberts <neil@linux.intel.com>
Reported-by: Mark Janes <mark.a.janes@intel.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
(cherry picked from commit b307921c3ff3b36607752f881a180272366a79cf)
src/mesa/drivers/dri/i965/brw_eu_compact.c