Mesa (master): svga: Don't advertise pixel shader addr register support.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Wed Feb 9 18:58:29 UTC 2011


Module: Mesa
Branch: master
Commit: 2d958853080d74da3abb4251fba75cd7df9cd879
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d958853080d74da3abb4251fba75cd7df9cd879

Author: José Fonseca <jfonseca at vmware.com>
Date:   Wed Dec  1 15:41:12 2010 +0000

svga: Don't advertise pixel shader addr register support.

It's not fully supported.

---

 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 d0f42c6..9b699ea 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:




More information about the mesa-commit mailing list