[Mesa-dev] [PATCH 1/4] xa: handle solid-fill src/mask
Rob Clark
robdclark at gmail.com
Tue Apr 8 15:05:31 PDT 2014
On Tue, Apr 8, 2014 at 5:41 PM, Roland Scheidegger <sroland at vmware.com> wrote:
> Am 08.04.2014 13:49, schrieb Rob Clark:
>> btw, I think I've tracked down at least one of the rendercheck issues
>> I was having. Which seems to be a pre-existing condition. The
>> problem is a composite operation with xrgb src and a8 dst. Ends up
>> generating a shader along the lines of:
>>
>> 0: TEX TEMP[0], IN[0], SAMP[0], 2D
>> 1: MOV TEMP[0].w, IMM[..]
>> 2: MOV OUT[0], TEMP[0].wwww
>> 3: END
>>
>> in this case, my compiler optimizes out the texture fetch. But that
>> causes a bit of confusion in freedreno because half the driver thinks
>> there is a texture and sets things up accordingly.
>>
>> I'm not entirely sure if XA should detect this.. or if that should be
>> fixed in the driver..
> I think the driver should handle that correctly in any case - I could easily
> see such shaders being generated in other places too. Obviously, a
> driver can optimize away the tex instruction but is not required to do
> so (though it would be better if it did...), the shader is perfectly
> valid (but needs the sampler to be set up correctly).
> If the state tracker should avoid it in the first place, I'm not
> certain. If it doesn't add too much complexity, sounds like a good idea.
> But just relying on dead code elimination in the drivers doesn't sound
> too unreasonable to me neither.
fwiw, the patch to avoid this in XA turned out to not be too bad (I
included it in the series I sent earlier today). I also fixed it in
freedreno, because the same issue could happen with binning pass
shaders (basically a simplified version of vertex shader used for
binning pass). But for more conventional gpus I think avoiding
binding textures is probably a nice thing.
BR,
-R
> Roland
More information about the mesa-dev
mailing list