r300g: fill out CAPs for indirect addressing
authorMarek Olšák <maraeo@gmail.com>
Fri, 12 Nov 2010 02:05:37 +0000 (03:05 +0100)
committerMarek Olšák <maraeo@gmail.com>
Fri, 12 Nov 2010 02:13:22 +0000 (03:13 +0100)
To match shader model 2.0 (it's impossible to fully implement ARL
with shader model 3.0 relative addressing).

src/gallium/drivers/r300/r300_screen.c

index 1d59e38aac524588f59157d3a4d6108affc14c74..37563b5a940bf9824e16de2ce29d7588393ea865 100644 (file)
@@ -207,6 +207,11 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, unsigned shader, e
             return is_r500 ? 1 : 0;
         case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
             return 1;
+        case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
+        case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
+        case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
+        case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
+            return 0;
         }
         break;
     case PIPE_SHADER_VERTEX:
@@ -234,6 +239,12 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, unsigned shader, e
             return is_r500 ? 4 : 0; /* XXX guessed. */
         case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
             return 1;
+        case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
+        case PIPE_SHADER_CAP_INDIRECT_OUTPUT_ADDR:
+        case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR:
+            return 0;
+        case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR:
+            return 1;
         default:
             break;
         }