summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/panfrost/pan_cmdstream.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_cmdstream.c')
-rw-r--r--src/gallium/drivers/panfrost/pan_cmdstream.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c
index 0d96f842fa8..a6114f7cdc8 100644
--- a/src/gallium/drivers/panfrost/pan_cmdstream.c
+++ b/src/gallium/drivers/panfrost/pan_cmdstream.c
@@ -1689,19 +1689,6 @@ pan_get_so(struct pipe_stream_output_info *info, gl_varying_slot loc)
unreachable("Varying not captured");
}
-/* TODO: Integers */
-static enum mali_format
-pan_xfb_format(unsigned nr_components)
-{
- switch (nr_components) {
- case 1: return MALI_R32F;
- case 2: return MALI_RG32F;
- case 3: return MALI_RGB32F;
- case 4: return MALI_RGBA32F;
- default: unreachable("Invalid format");
- }
-}
-
void
panfrost_emit_varying_descriptor(struct panfrost_batch *batch,
unsigned vertex_count,
@@ -1887,9 +1874,9 @@ panfrost_emit_varying_descriptor(struct panfrost_batch *batch,
struct pipe_stream_output *o = pan_get_so(so, loc);
ovs[i].index = o->output_buffer;
- /* Set the type appropriately. TODO: Integer varyings XXX */
assert(o->stream == 0);
- ovs[i].format = pan_xfb_format(o->num_components);
+ ovs[i].format = (vs->varyings[i].format & ~MALI_NR_CHANNELS(4))
+ | MALI_NR_CHANNELS(o->num_components);
if (device->quirks & HAS_SWIZZLES)
ovs[i].swizzle = panfrost_get_default_swizzle(o->num_components);