summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc4/vc4_resource.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2014-08-19 23:14:51 -0700
committerEric Anholt <[email protected]>2014-08-22 10:16:57 -0700
commitb064c9103d8fc0bb4ae8fe597b4d9de82a274638 (patch)
tree87bc8bcbe21c01bcbf55ac9063da5f622c20185e /src/gallium/drivers/vc4/vc4_resource.c
parent3a1efcc7f9f99d42cda191ded1eb78140366c708 (diff)
vc4: Add support for all the texture and FBO formats we can.
Now that tiling is in place, we can expose the other formats. Depth is still broken (need to make changes in the shader), but if you don't expose it things crash all over. SNORM is dropped, but we could re-add it later with some shader fixes to handle converting between [0,1] and [-1,1].
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_resource.c')
-rw-r--r--src/gallium/drivers/vc4/vc4_resource.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/vc4/vc4_resource.c b/src/gallium/drivers/vc4/vc4_resource.c
index fb46be3916b..3048b23eec3 100644
--- a/src/gallium/drivers/vc4/vc4_resource.c
+++ b/src/gallium/drivers/vc4/vc4_resource.c
@@ -267,11 +267,14 @@ static enum vc4_texture_data_type
get_resource_texture_format(struct pipe_resource *prsc)
{
struct vc4_resource *rsc = vc4_resource(prsc);
+ uint8_t format = vc4_get_tex_format(prsc->format);
- if (rsc->tiled)
- return VC4_TEXTURE_TYPE_RGBA8888;
- else
+ if (!rsc->tiled) {
+ assert(format == VC4_TEXTURE_TYPE_RGBA8888);
return VC4_TEXTURE_TYPE_RGBA32R;
+ }
+
+ return format;
}
static struct pipe_resource *