[Mesa-dev] [PATCH 5/6] radeonsi: fix TEX writemask

Christian König deathsimple at vodafone.de
Thu Aug 2 02:05:09 PDT 2012


On 02.08.2012 07:51, Michel Dänzer wrote:
> On Mit, 2012-08-01 at 23:28 +0200, Christian König wrote:
>> Using the writemask in the sampler results in packet
>> VGPRS.
> What does that mean?

The instructions with a destination mask are packing their results, e.g. 
when you sample RGBA you get:
R in VGPR0
G in VGPR1
B in VGPR2
A in VGPR3

But when you for example mask G&B you get:
R in VGPR0
G masked
B masked
A in VGPR1

So your image sample instruction is only writing 2 VGPRS then.

> [SNIP]
> Couldn't this incorrectly clobber components of the destination which
> were supposed to be masked?

No cause it is just an optimization of not fetching unwanted components, 
and not masking anything.

We need to teach LLVM that IMAGE_SAMPLE instructions can return anything 
between 1 and 4 components and mask the unwanted and unused ones. 
Unfortunately I have not the slightest idea how to do that.

Christian.


More information about the mesa-dev mailing list