u_vbuf: Add a few more format fallbacks.

Fixes piglit draw-vertices and gl-2.0-vertexattribpointer on vc4, where
I'm only advertising R32F to RGBA32F support so far.

Note: regresses gl-1.5-normal3b3s-invariance due to introduced flushes and
missing depth buffer load/store support in the driver.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Eric Anholt 2014-08-22 10:50:15 -07:00
parent bbbe3b65ad
commit e2f66315cb
1 changed files with 32 additions and 0 deletions

View File

@ -222,6 +222,38 @@ static const struct {
{ PIPE_FORMAT_R32G32_SSCALED, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R32G32B32_SSCALED, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R32G32B32A32_SSCALED, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R16_UNORM, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R16G16_UNORM, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R16G16B16_UNORM, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R16G16B16A16_UNORM, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R16_SNORM, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R16G16_SNORM, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R16G16B16_SNORM, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R16G16B16A16_SNORM, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R16_USCALED, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R16G16_USCALED, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R16G16B16_USCALED, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R16G16B16A16_USCALED, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R16_SSCALED, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R16G16_SSCALED, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R16G16B16_SSCALED, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R16G16B16A16_SSCALED, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R8_UNORM, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R8G8_UNORM, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R8G8B8_UNORM, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R8G8B8A8_UNORM, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R8_SNORM, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R8G8_SNORM, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R8G8B8_SNORM, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R8G8B8A8_SNORM, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R8_USCALED, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R8G8_USCALED, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R8G8B8_USCALED, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R8G8B8A8_USCALED, PIPE_FORMAT_R32G32B32A32_FLOAT },
{ PIPE_FORMAT_R8_SSCALED, PIPE_FORMAT_R32_FLOAT },
{ PIPE_FORMAT_R8G8_SSCALED, PIPE_FORMAT_R32G32_FLOAT },
{ PIPE_FORMAT_R8G8B8_SSCALED, PIPE_FORMAT_R32G32B32_FLOAT },
{ PIPE_FORMAT_R8G8B8A8_SSCALED, PIPE_FORMAT_R32G32B32A32_FLOAT },
};
boolean u_vbuf_get_caps(struct pipe_screen *screen, struct u_vbuf_caps *caps)