[Mesa-dev] [PATCH 09/14] intel/compiler: Use shuffle_from_32bit_read at VS load_input
Chema Casanova
jmcasanova at igalia.com
Fri Jun 15 01:09:13 UTC 2018
I've forgot to Cc: the mailing list.
On 15/06/18 01:54, Chema Casanova wrote:
> On 14/06/18 03:36, Jason Ekstrand wrote:
>> On Sat, Jun 9, 2018 at 4:13 AM, Jose Maria Casanova Crespo
>> <jmcasanova at igalia.com <mailto:jmcasanova at igalia.com>> wrote:
>>
>> shuffle_from_32bit_read manages 32-bit reads to 32-bit destination
>> in the same way that the previous loop so now we just call the new
>> function for all bitsizes, simplifying also the 64-bit load_input.
>> ---
>> src/intel/compiler/brw_fs_nir.cpp | 12 ++----------
>> 1 file changed, 2 insertions(+), 10 deletions(-)
>>
>> diff --git a/src/intel/compiler/brw_fs_nir.cpp
>> b/src/intel/compiler/brw_fs_nir.cpp
>> index 6abc7c0174d..fedf3bf5a83 100644
>> --- a/src/intel/compiler/brw_fs_nir.cpp
>> +++ b/src/intel/compiler/brw_fs_nir.cpp
>> @@ -2483,16 +2483,8 @@ fs_visitor::nir_emit_vs_intrinsic(const
>> fs_builder &bld,
>> if (type_sz(dest.type) == 8)
>> first_component /= 2;
>>
>> - for (unsigned j = 0; j < num_components; j++) {
>> - bld.MOV(offset(dest, bld, j), offset(src, bld, j +
>> first_component));
>> - }
>> -
>> - if (type_sz(dest.type) == 8) {
>> - shuffle_32bit_load_result_to_64bit_data(bld,
>> - dest,
>> - retype(dest,
>> BRW_REGISTER_TYPE_F),
>> -
>> instr->num_components);
>> - }
>> + shuffle_from_32bit_read(bld, dest, retype(src,
>> BRW_REGISTER_TYPE_D),
>> + first_component, num_components);
>>
>>
>> I think this is ok. It makes me a bit nervous to use
>> shuffle_from_32bit_read on the address register file However, since
>> we're only doing it when type_sz(dst.type) >= 4, it should be ok.
>
> And as I am going to implement same size shuffle to the same code of
> MOVs we are removing here it would be as safe at is now.
>
>> If we want 16-bit attributes (Yeah, I know, I need to review that...) then we
>> may need to first copy from the ATTR file into a temp. Maybe drop a
>> comment to that effect?
>
> All the logic from "i965/fs: Unpack 16-bit from 32-bit components in VS
> load_input" [1] is already implemented here with the new shuffle, so
> 16-bit VS load_input changes would be already implemented with the
> refactoring, (there are 4 other patches needed to solve the issues about
> the vertex buffer format, padding, etc).
>
> [1] https://patchwork.freedesktop.org/patch/206476/
>
> I'm including the following comment:
>
> /* For 16-bit support maybe a temporary is needed to copy from the ATTR
> file */
>
> I would need to find a test case that can expose this problem...
>
> Whenever you feel with energy for reviewing 16-bit inputs outputs let me
> know and I'll send an updated/rebased version. But I'm have also pending
> the review of "i965/fs: Register allocator shouldn't use grf127 for
> sends dest (v2)" [2] :-)
>
> [2] https://patchwork.freedesktop.org/patch/217811/
>
> Thanks for the review,
>
> Chema
>
>> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net
>> <mailto:jason at jlekstrand.net>>
>>
>>
>> break;
>> }
>>
>> --
>> 2.17.1
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>>
>>
>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
More information about the mesa-dev
mailing list