[Mesa-dev] [PATCH 10/25] i965: Use separate enums for register vs immediate types
Matt Turner
mattst88 at gmail.com
Wed Aug 9 18:12:47 UTC 2017
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!
More information about the mesa-dev
mailing list