[Mesa-dev] [PATCH] st/va:Aligned image width and height to 16.

Sharma, Deepak Deepak.Sharma at amd.com
Wed Oct 3 16:43:07 UTC 2018


I understand the problem with vlVaGetImage not respecting  parameter and that has to be fixed.
Christian, could you please provide some more input on addrlib  alignment for fixing this.

Thanks,
Deepak

-----Original Message-----
From: Ilia Mirkin <imirkin at alum.mit.edu> 
Sent: Wednesday, October 3, 2018 8:03 AM
To: Koenig, Christian <Christian.Koenig at amd.com>
Cc: Sharma, Deepak <Deepak.Sharma at amd.com>; ML Mesa-dev <mesa-dev at lists.freedesktop.org>; Guttula, Suresh <Suresh.Guttula at amd.com>
Subject: Re: [Mesa-dev] [PATCH] st/va:Aligned image width and height to 16.

On Wed, Oct 3, 2018 at 10:59 AM Koenig, Christian <Christian.Koenig at amd.com> wrote:
>
> Am 03.10.2018 um 16:56 schrieb Ilia Mirkin:
> > On Wed, Oct 3, 2018 at 9:36 AM Christian König 
> > <ckoenig.leichtzumerken at gmail.com> wrote:
> >> What the heck are you talking about? As far as I can see this patch 
> >> is about adding hw specific alignment to vlVaCreateImage which is a 
> >> state tracker function.
> >>
> >> Completely agree that vlVaGetImage should respect the parameters 
> >> given instead of using the one from the surface, but that sounds 
> >> like a different problem.
> >>
> >> Maybe mixing mail threads?
> > The stated reason (when I originally asked why this was being done) 
> > was that vlVaGetImage would overwrite bits past the image created 
> > with vlVaCreateImage (because it uses the full surface size, rather 
> > than the x/y/width/height clipped to both the image and the 
> > surface). My comment was that the fix needs to go into vlVaGetImage, 
> > not into vlVaCreateImage.
>
> Ah! Yeah, as I said that is a problem on it's own.
>
> But what Deepak is trying to address here really sounds like a problem 
> in a deeper layer. addrlib is really not aligning the resulting 
> texture correctly when we see problems like that.

That was not my understanding. vlVaCreateImage creates a linear image, not a render surface. vlVaGetImage then writes data to it, and goes way over because the underlying surface's dimensions are larger than the image's (because the underlying surface *does* have the proper alignment).

But perhaps I misunderstood. Either way, I think we're in agreement that vlVaGetImage needs fixing :)

  -ilia


More information about the mesa-dev mailing list