From: Marek Olšák <[email protected]>

---
 src/gallium/drivers/radeonsi/si_pipe.c | 56 +++++++++++++++++-----------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index 900de9f..f0cd9ca 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -597,76 +597,76 @@ static int si_get_shader_param(struct pipe_screen* 
pscreen, unsigned shader, enu
                         * for this cap, we can return the same value we
                         * do for other shader types. */
                        break;
                }
                break;
        default:
                return 0;
        }
 
        switch (param) {
+       /* Shader limits. */
        case PIPE_SHADER_CAP_MAX_INSTRUCTIONS:
        case PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS:
        case PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS:
        case PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS:
        case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH:
                return 16384;
        case PIPE_SHADER_CAP_MAX_INPUTS:
                return shader == PIPE_SHADER_VERTEX ? SI_NUM_VERTEX_BUFFERS : 
32;
        case PIPE_SHADER_CAP_MAX_OUTPUTS:
                return shader == PIPE_SHADER_FRAGMENT ? 8 : 32;
        case PIPE_SHADER_CAP_MAX_TEMPS:
                return 256; /* Max native temporaries. */
        case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
                return 4096 * sizeof(float[4]); /* actually only memory limits 
this */
        case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
                return SI_NUM_CONST_BUFFERS;
-       case PIPE_SHADER_CAP_MAX_PREDS:
-               return 0; /* FIXME */
+       case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
+       case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
+               return SI_NUM_SAMPLERS;
+       case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
+               return HAVE_LLVM >= 0x0309 ? SI_NUM_SHADER_BUFFERS : 0;
+       case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
+               return HAVE_LLVM >= 0x0309 ? SI_NUM_IMAGES : 0;
+       case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
+               return 32;
+       case PIPE_SHADER_CAP_PREFERRED_IR:
+               return PIPE_SHADER_IR_TGSI;
+
+       /* Supported boolean features. */
        case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
-               return 1;
        case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED:
-               return 1;
-       case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
-               /* Indirection of geometry shader input dimension is not
-                * handled yet
-                */
-               return shader != PIPE_SHADER_GEOMETRY;
        case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
        case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
        case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
-               return 1;
        case PIPE_SHADER_CAP_INTEGERS:
+       case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
+       case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
                return 1;
-       case PIPE_SHADER_CAP_SUBROUTINES:
-               return 0;
-       case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
-       case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
-               return SI_NUM_SAMPLERS;
-       case PIPE_SHADER_CAP_PREFERRED_IR:
-               return PIPE_SHADER_IR_TGSI;
-       case PIPE_SHADER_CAP_SUPPORTED_IRS:
-               return 0;
+
        case PIPE_SHADER_CAP_DOUBLES:
                return HAVE_LLVM >= 0x0307;
+
+       case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
+               /* TODO: Indirection of geometry shader input dimension is not
+                * handled yet
+                */
+               return shader != PIPE_SHADER_GEOMETRY;
+
+       /* Unsupported boolean features. */
+       case PIPE_SHADER_CAP_MAX_PREDS:
+       case PIPE_SHADER_CAP_SUBROUTINES:
+       case PIPE_SHADER_CAP_SUPPORTED_IRS:
        case PIPE_SHADER_CAP_TGSI_DROUND_SUPPORTED:
        case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
                return 0;
-       case PIPE_SHADER_CAP_TGSI_FMA_SUPPORTED:
-       case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE:
-               return 1;
-       case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT:
-               return 32;
-       case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
-               return HAVE_LLVM >= 0x0309 ? SI_NUM_SHADER_BUFFERS : 0;
-       case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
-               return HAVE_LLVM >= 0x0309 ? SI_NUM_IMAGES : 0;
        }
        return 0;
 }
 
 static void si_destroy_screen(struct pipe_screen* pscreen)
 {
        struct si_screen *sscreen = (struct si_screen *)pscreen;
        struct si_shader_part *parts[] = {
                sscreen->vs_prologs,
                sscreen->vs_epilogs,
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to