intel/fs: Disable opt_sampler_eot() in 32-wide dispatch.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Francisco Jerez
2016-04-25 17:08:42 -07:00
committed by Jason Ekstrand
parent db6ca13efc
commit 2d7d652d5c
2 changed files with 6 additions and 1 deletions

View File

@@ -2666,7 +2666,7 @@ fs_visitor::opt_sampler_eot()
{
brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
if (stage != MESA_SHADER_FRAGMENT)
if (stage != MESA_SHADER_FRAGMENT || dispatch_width > 16)
return false;
if (devinfo->gen != 9 && !devinfo->is_cherryview)

View File

@@ -887,6 +887,11 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
uint32_t return_format;
bool is_combined_send = inst->eot;
/* Sampler EOT message of less than the dispatch width would kill the
* thread prematurely.
*/
assert(!is_combined_send || inst->exec_size == dispatch_width);
switch (dst.type) {
case BRW_REGISTER_TYPE_D:
return_format = BRW_SAMPLER_RETURN_FORMAT_SINT32;