[Mesa-dev] [PATCH 10/25] i965: Use separate enums for register vs immediate types

Scott D Phillips scott.d.phillips at intel.com
Wed Aug 9 18:30:47 UTC 2017

Matt Turner <mattst88 at gmail.com> writes:

> On Tue, Aug 8, 2017 at 4:25 PM, Scott D Phillips
> <scott.d.phillips at intel.com> wrote:
>>> +         [BRW_HW_IMM_TYPE_UV]  = 2,
>>> +         [BRW_HW_IMM_TYPE_VF]  = 4,
>>> +         [BRW_HW_IMM_TYPE_V]   = 2,
>> Is this right? I see it was there before, and perhaps I'm being dense,
>> but it seems like V and UV should be size 4 from the PRM.
> Yes. The encoded immediates themselves are 4 bytes, but this table
> captures the size of the individual components once expanded. That's
> admittedly a little weird.
> A V/UV immediate consists of 8x 4-bit integer values. A restriction
> documented in "Gen Graphics » BSpec » 3D and Compute Engine » 3D and
> GPGPU Programs » EU Overview » Registers and Register Regions »
> Immediate" states "When an immediate vector is used in an instruction,
> the destination must be 128-bit aligned with destination horizontal
> stride equivalent to a word for an immediate integer vector (v) and
> equivalent to a DWord for an immediate float vector (vf).".
> So we consider the individual components of the V/UV immediate to
> really be words, of size 2.
> Thanks for the good question!

Ah, I see. Thanks for the explanation.

Reviewed-by: Scott D Phillips <scott.d.phillips at intel.com>

More information about the mesa-dev mailing list