diff options
author | José Fonseca <[email protected]> | 2010-12-01 15:41:12 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2011-02-09 18:31:21 +0000 |
commit | 2d958853080d74da3abb4251fba75cd7df9cd879 (patch) | |
tree | f77cf332334321d8a79605a32a58cdcd589cb81d | |
parent | 04c5cc5b8bec1f34f2405b08fd0d9ed6bd70ea61 (diff) |
svga: Don't advertise pixel shader addr register support.
It's not fully supported.
-rw-r--r-- | src/gallium/drivers/svga/svga_screen.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index d0f42c614c9..9b699eadcc1 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -225,13 +225,18 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en return svgascreen->use_ps30 ? 32 : 12; return result.u; case PIPE_SHADER_CAP_MAX_ADDRS: - return svgascreen->use_ps30 ? 1 : 0; + case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR: + /* + * Although PS 3.0 has some addressing abilities it can only represent + * loops that can be statically determined and unrolled. Given we can + * only handle a subset of the cases that the state tracker already + * does it is better to defer loop unrolling to the state tracker. + */ + return 0; case PIPE_SHADER_CAP_MAX_PREDS: return svgascreen->use_ps30 ? 1 : 0; case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED: return 1; - case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR: - return svgascreen->use_ps30 ? 1 : 0; case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR: case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: |