mesa: restrict formats being supported by target type for formatquery
authorRoland Scheidegger <sroland@vmware.com>
Sat, 27 Jan 2018 00:25:26 +0000 (01:25 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 30 Jan 2018 00:28:47 +0000 (01:28 +0100)
commit21fe02d1d369d25021d0be7f558063e103e2dce7
treeaa1145a6a954312d581d676c5c8929567aabe3b9
parent272e7e1bd5c12a3ef36027f0071065b7ce04e9e9
mesa: restrict formats being supported by target type for formatquery

The code just considered all formats as being supported if they were either
a valid fbo or texture format.
This was quite awkward since then the query would return "supported" for
e.g. GL_RGB9E5 or compressed formats and target RENDERBUFFER (albeit the driver
could still refuse it in theory). However, when then querying for instance the
internalformat sizes, it would just return 0 (due to the checks being more
strict there).
It was also a problem for texture buffer targets, which have a more restricted
list of formats which are allowed (and again, it would return supported but
then querying sizes would return 0).
So only take validation of formats into account which make sense for a given
target.
Can also toss out some special checks for rgb9e5 later, since we'd never get
there if it wasn't supported in the first place.

Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
src/mesa/main/formatquery.c