i965/formatquery: Add support for INTERNALFORMAT_PREFERRED query
authorEduardo Lima Mitev <elima@igalia.com>
Tue, 22 Dec 2015 16:16:50 +0000 (17:16 +0100)
committerEduardo Lima Mitev <elima@igalia.com>
Thu, 3 Mar 2016 14:14:08 +0000 (15:14 +0100)
commitcbbdf8612d784faa0928208fd6599c6add2d0e48
treeac51340b9d9973191b4bc2019aaa3319cf46c93c
parente064f43485b63053f5786f680407f15bc203763f
i965/formatquery: Add support for INTERNALFORMAT_PREFERRED query

This pname is tricky. The spec states that an internal format should be
returned, that is compatible with the passed internal format, and has
at least the same precision. There is no clear API to resolve this.

The closest we have (and what other drivers (i.e, NVidia proprietary) do,
is to return the same internal format given as parameter. But we validate
first that the passed internal format is supported by i965.

To check for support, we have the TextureFormatSupported map'. But
this map expects a 'mesa_format', which takes a format+typen. So, we must
first "come up" with a generic type that is suited for this internal format,
then get a mesa_format, and then do the validation.

The cleanest solution here is to add a method that does exactly what
the spec wants: a driver's preferred internal format from a given
internal format. But at this point we lack a clear view of what
defines this preference, and also there seems to be no API for it.

Reviewed-by: Dave Airlie <airlied@redhat.com>
src/mesa/drivers/dri/i965/brw_formatquery.c