diff options
| author | José Fonseca <jfonseca@vmware.com> | 2010-05-12 14:10:23 +0100 | 
|---|---|---|
| committer | José Fonseca <jfonseca@vmware.com> | 2010-05-12 14:11:28 +0100 | 
| commit | a1b3ca6a142a2ad4f819de2b554872c9b8e8f237 (patch) | |
| tree | f94020847f6eda25c000687bbba645b1d7fd46e0 /src | |
| parent | 7b5931b313b8a38fd564435e69e644320fb3de5e (diff) | |
llvmpipe: Advertise (gallivm's) shader limits.
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_screen.c | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 226f7a145e..fadf24b30f 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -34,6 +34,7 @@  #include "pipe/p_defines.h"  #include "pipe/p_screen.h" +#include "gallivm/lp_bld_limits.h"  #include "lp_texture.h"  #include "lp_fence.h"  #include "lp_jit.h" @@ -133,7 +134,37 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)     case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:     case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:        return 0; +   case PIPE_CAP_MAX_VS_INSTRUCTIONS: +   case PIPE_CAP_MAX_FS_INSTRUCTIONS: +   case PIPE_CAP_MAX_VS_ALU_INSTRUCTIONS: +   case PIPE_CAP_MAX_FS_ALU_INSTRUCTIONS: +   case PIPE_CAP_MAX_VS_TEX_INSTRUCTIONS: +   case PIPE_CAP_MAX_FS_TEX_INSTRUCTIONS: +   case PIPE_CAP_MAX_VS_TEX_INDIRECTIONS: +   case PIPE_CAP_MAX_FS_TEX_INDIRECTIONS: +      /* There is no limit in number of instructions beyond available memory */ +      return 32768; +   case PIPE_CAP_MAX_VS_CONTROL_FLOW_DEPTH: +   case PIPE_CAP_MAX_FS_CONTROL_FLOW_DEPTH: +      return LP_MAX_TGSI_NESTING; +   case PIPE_CAP_MAX_VS_INPUTS: +   case PIPE_CAP_MAX_FS_INPUTS: +      return PIPE_MAX_ATTRIBS; +   case PIPE_CAP_MAX_FS_CONSTS: +   case PIPE_CAP_MAX_VS_CONSTS: +      /* There is no limit in number of constants beyond available memory */ +      return 32768; +   case PIPE_CAP_MAX_VS_TEMPS: +   case PIPE_CAP_MAX_FS_TEMPS: +      return LP_MAX_TGSI_TEMPS; +   case PIPE_CAP_MAX_VS_ADDRS: +   case PIPE_CAP_MAX_FS_ADDRS: +      return LP_MAX_TGSI_ADDRS; +   case PIPE_CAP_MAX_VS_PREDS: +   case PIPE_CAP_MAX_FS_PREDS: +      return LP_MAX_TGSI_PREDS;     default: +      assert(0);        return 0;     }  } @@ -156,6 +187,7 @@ llvmpipe_get_paramf(struct pipe_screen *screen, enum pipe_cap param)     case PIPE_CAP_MAX_TEXTURE_LOD_BIAS:        return 16.0; /* arbitrary */     default: +      assert(0);        return 0;     }  } | 
