v3d: disable lowering of indirect inputs
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 5 Nov 2019 11:25:35 +0000 (12:25 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Mon, 16 Dec 2019 07:42:37 +0000 (08:42 +0100)
V3D can do indirect inputs so we don't need it. Also, the lowering
produces horrible if-ladder code that is particularly bad for geometry
shaders where inputs are always arrays and shader bodies usually have
a loop indexing into them.

This fixes a couple of geometry shader tests in CTS that would fail to
register allocate otherwise.

There are no changes in shader-db.

Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
src/gallium/drivers/v3d/v3d_screen.c

index 935f320723919695d516a9f346f4a2886d49c2b5..a3eef791a42a86c02f4f317f074bdde49e92a946 100644 (file)
@@ -334,6 +334,7 @@ v3d_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
         case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
                 return 0;
         case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
+                return 1;
         case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
                 return 0;
         case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: