[Mesa-dev] [PATCH 1/4] i965/fs: Add no_dd_{clear, check} fields to fs_inst.

Kristian Høgsberg hoegsberg at gmail.com
Mon Jun 30 09:10:07 PDT 2014


On Sun, Jun 29, 2014 at 11:18:14PM -0700, Matt Turner wrote:
> And plumb them through. Also make the assert in the generator look like
> the vec4 one.
> ---
>  src/mesa/drivers/dri/i965/brw_fs.h             |  2 ++
>  src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 14 ++++++++------
>  2 files changed, 10 insertions(+), 6 deletions(-)

Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>

> diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
> index 3d0da23..58e7175 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.h
> +++ b/src/mesa/drivers/dri/i965/brw_fs.h
> @@ -239,6 +239,8 @@ public:
>     bool force_uncompressed:1;
>     bool force_sechalf:1;
>     bool force_writemask_all:1;
> +   bool no_dd_clear:1;
> +   bool no_dd_check:1;
>  };
>  
>  /**
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
> index 871fc95..8c5fe07 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
> @@ -1753,14 +1753,16 @@ fs_generator::generate_code(exec_list *instructions)
>           break;
>        }
>  
> -      if (inst->conditional_mod) {
> -         /* Set the conditional modifier on the last instruction we generated.
> -          * Also, make sure we only emitted one instruction - anything else
> -          * doesn't make sense.
> -          */
> -         assert(p->next_insn_offset == last_insn_offset + 16);
> +      if (inst->no_dd_clear || inst->no_dd_check || inst->conditional_mod) {
> +         assert(p->next_insn_offset == last_insn_offset + 16 ||
> +                !"conditional_mod, no_dd_check, or no_dd_clear set for IR "
> +                 "emitting more than 1 instruction");
> +
>           brw_inst *last = &p->store[last_insn_offset / 16];
> +
>           brw_inst_set_cond_modifier(brw, last, inst->conditional_mod);
> +         brw_inst_set_no_dd_clear(brw, last, inst->no_dd_clear);
> +         brw_inst_set_no_dd_check(brw, last, inst->no_dd_check);
>        }
>     }
>  
> -- 
> 1.8.3.2
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list