[Mesa-dev] [PATCH 00/12] i965+nir: Do pack/unpack lowering in NIR
Iago Toral
itoral at igalia.com
Tue Jan 26 07:33:04 PST 2016
Patches 1 to 4 are,
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
I intend to review the remaining patches tomorrow as well if nobody else
beats me to it.
Iago
On Mon, 2016-01-25 at 15:18 -0800, Matt Turner wrote:
> This series adds NIR support for lowering pack/unpack opcodes and
> switches i965 over to using that. The only place we still use the
> GLSL IR lower_packing_builtins.cpp is for the half-precision functions
> on Sandybridge.
>
> As a result, I get to remove the ir_unop_unpack_half_2x16_split_x/y opcodes
> from GLSL IR, since i965 was the only consumer. A follow-on project I plan to
> do is to remove these opcodes from NIR as well and just emit the appropriate
> code directly in i965/fs, because again it's the only consumer.
>
> I add 6 new operations to NIR:
>
> extract_ibyte - extract byte from dword and sign extend
> extract_ubyte - extract byte from dword and zero extend
> extract_iword - extract word from dword and sign extend
> extract_uword - extract word from dword and zero extend
> pack_uvec4_to_uint - packs the low 8-bits of src0.xyzw into a uint
> pack_uvec2_to_uint - packs the low 16-bits of src0.xy into a uint
>
> The last two opcodes are used in lowering the pack operations. They're mostly
> useful because nir_opt_algebraic isn't capable of handling swizzles. I look
> forward to getting rid of them.
>
> I sent an RFC patch in December [1] that optimized some Unigine shaders with
> extract_byte. Eric asked whether we should add new opcodes (extract_*) or use
> bitfield_extract and recognize special cases in the driver backends. I've opted
> to add new operations because of the simplicity of recognition with
> nir_opt_algebraic.
>
> I'm planning to rebase that optimization on this series and send it separately.
>
> [1] http://lists.freedesktop.org/archives/mesa-dev/2015-December/102264.html
>
> _______________________________________________
> 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