[Mesa-dev] [PATCH 15/17] intel/compiler: Add instruction compaction support on Gen11
Kenneth Graunke
kenneth at whitecape.org
Sat Feb 24 00:30:42 UTC 2018
On Tuesday, February 20, 2018 9:15:22 PM PST Matt Turner wrote:
> Gen11 only differs from SKL+ in that it uses a new datatype index table.
> ---
> src/intel/compiler/brw_eu_compact.c | 42 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/src/intel/compiler/brw_eu_compact.c b/src/intel/compiler/brw_eu_compact.c
> index 8d33e2adffc..ae14ef10ec0 100644
> --- a/src/intel/compiler/brw_eu_compact.c
> +++ b/src/intel/compiler/brw_eu_compact.c
> @@ -637,6 +637,41 @@ static const uint16_t gen8_src_index_table[32] = {
> 0b010110001000
> };
>
> +static const uint32_t gen11_datatype_table[32] = {
> + 0b001000000000000000001,
> + 0b001000000000001000000,
> + 0b001000000000001000001,
> + 0b001000000000011000001,
> + 0b001000000000101100101,
> + 0b001000000101111100101,
> + 0b001000000100101000001,
> + 0b001000000100101000101,
> + 0b001000000100101100101,
> + 0b001000001000001000001,
> + 0b001000011000001000000,
> + 0b001000011000001000001,
> + 0b001000101000101000101,
> + 0b001000111000101000100,
> + 0b001000111000101000101,
> + 0b001100100100101100101,
> + 0b001100101100100100101,
> + 0b001100101100101100100,
> + 0b001100101100101100101,
> + 0b001100111100101100100,
> + 0b000000000010000001100,
> + 0b001000000000001100101,
> + 0b001000000000101000101,
> + 0b001000001000001000000,
> + 0b001000101000101000100,
> + 0b001000111000100000100,
> + 0b001001001001000001001,
> + 0b001101111100101100101,
> + 0b001100111100101100101,
> + 0b001001111001101001100,
> + 0b001001001001001001000,
> + 0b001001011001001001000,
> +};
> +
> /* This is actually the control index table for Cherryview (26 bits), but the
> * only difference from Broadwell (24 bits) is that it has two extra 0-bits at
> * the start.
> @@ -1450,8 +1485,15 @@ brw_init_compaction_tables(const struct gen_device_info *devinfo)
> assert(gen8_datatype_table[ARRAY_SIZE(gen8_datatype_table) - 1] != 0);
> assert(gen8_subreg_table[ARRAY_SIZE(gen8_subreg_table) - 1] != 0);
> assert(gen8_src_index_table[ARRAY_SIZE(gen8_src_index_table) - 1] != 0);
> + assert(gen11_datatype_table[ARRAY_SIZE(gen11_datatype_table) - 1] != 0);
>
> switch (devinfo->gen) {
> + case 11:
> + control_index_table = gen8_control_index_table;
> + datatype_table = gen11_datatype_table;
> + subreg_table = gen8_subreg_table;
> + src_index_table = gen8_src_index_table;
> + break;
> case 10:
> case 9:
> case 8:
>
This looks right to me.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180223/9595c6a0/attachment.sig>
More information about the mesa-dev
mailing list