[Mesa-dev] [PATCH 2/2] i965/fs: Use inst->eot rather than opcodes in register allocation.

Jordan Justen jordan.l.justen at intel.com
Thu Feb 5 09:05:06 PST 2015


Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On 2015-02-05 00:32:42, Kenneth Graunke wrote:
> Previously, we special cased FB writes and URB writes in the register
> allocation code.  What we really wanted was to handle any message with
> EOT set.
> 
> This saves us from extending the list with new opcodes in the future.
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
> index 8a14ce4..bcd657b 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
> @@ -385,17 +385,6 @@ fs_visitor::setup_payload_interference(struct ra_graph *g,
>  
>        /* Special case instructions which have extra implied registers used. */
>        switch (inst->opcode) {
> -      case SHADER_OPCODE_URB_WRITE_SIMD8:
> -      case FS_OPCODE_FB_WRITE:
> -         /* We could omit this for the !inst->header_present case, except that
> -          * the simulator apparently incorrectly reads from g0/g1 instead of
> -          * sideband.  It also really freaks out driver developers to see g0
> -          * used in unusual places, so just always reserve it.
> -          */
> -         payload_last_use_ip[0] = use_ip;
> -         payload_last_use_ip[1] = use_ip;
> -         break;
> -
>        case FS_OPCODE_LINTERP:
>           /* On gen6+ in SIMD16, there are 4 adjacent registers used by
>            * PLN's sourcing of the deltas, while we list only the first one
> @@ -417,6 +406,16 @@ fs_visitor::setup_payload_interference(struct ra_graph *g,
>           break;
>  
>        default:
> +         if (inst->eot) {
> +            /* We could omit this for the !inst->header_present case, except
> +             * that the simulator apparently incorrectly reads from g0/g1
> +             * instead of sideband.  It also really freaks out driver
> +             * developers to see g0 used in unusual places, so just always
> +             * reserve it.
> +             */
> +            payload_last_use_ip[0] = use_ip;
> +            payload_last_use_ip[1] = use_ip;
> +         }
>           break;
>        }
>  
> -- 
> 2.2.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