Re: [PATCH] drm/i915: Make sample_c messages go faster on Haswell.

Kenneth Graunke
2015-01-06T07:03:31Z

[-- Attachment #1.1: Type: text/plain, Size: 2453 bytes --]

On Tuesday, January 06, 2015 02:39:36 PM Xiang, Haihao wrote:
> On Mon, 2015-01-05 at 21:54 -0800, Kenneth Graunke wrote:
> > On Tuesday, January 06, 2015 01:11:53 PM Xiang, Haihao wrote:
> > >
> > > Hi Kenneth,
> > >
> > > How did you test OSD ? I can't reproduce the issue you mentioned, OSD
> > > works well for me when using mplayer-vaapi with the latest
> > > libva/libva-intel-driver master branch.
> > >
> > > I tried your patch, what surprised me is OSD still works well after
> > > applying your patch. It seems your patch didn't disable the palette.
> > >
> > > Thanks
> > > Haihao
> >
> > I ran:
> >
> > mplayer -osdlevel 3 -vo vaapi big_buck_bunny_720p_stereo.ogg
> >
> > For me, the OSD text is solid green, with hard edges.
>
> The OSD text is white for me when using mplayer -osdlevel 3 -vo vaapi
> xxx. If possible, could you update your mplayer ?

Huh. I'm using the Arch Linux package of mplayer-vaapi 36265-13,
which seems to be the most recent subversion commit ID. I've never seen
white text on my Haswell system - it seems to be consistently dark green.

> > If you use "-vo gl" or "-vo xv", the OSD is solid white text with a black
> > border around it. I presume that it's supposed to be white with vaapi as
> > well, but I guess I'm not entirely sure.
> >
> > It's possible that the optimization doesn't affect the palette as long as
> > you never use sample_c with the paletted textures.
>
> I verified the palette takes effect in the following way:
>
> 1. Only support P8A8 format in the driver
>
> 2. ran the above command and I saw white OSD text
>
> 3. Only support P4A4 format in the driver and don't use
> 3DSTATE_SAMPLER_PALETTE_LOAD0 to load the value to the texture palette,
> so the palette keeps unchanged.
>
> 4. ran the above command and I saw black OSD text.
>
> 5. Load the right value to the texture palette and ran the above command
> again, I saw white OSD text.
>
> Hence I think sample_c with the paletted textures is used in the driver.

That sounds like the palette is actually working, then. Great :)

I doubt that libva would use sample_c - sampling with a shadow comparison?
It looks like it just uses sample and sample+killpix.

I'm pretty sure the sample_c optimization just uses the palette memory as
storage for some stuff, so it's quite possible it just works if you're
only using sample and sample+killpix.

--Ken

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]