r300g: do not advertise half_float_vertex on rv3x0
authorMarek Olšák <maraeo@gmail.com>
Tue, 13 Jul 2010 02:29:53 +0000 (04:29 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 13 Jul 2010 04:31:36 +0000 (06:31 +0200)
rv3x0 can't do it.

src/gallium/drivers/r300/r300_screen.c

index cad99ca8453abe756419d7a14a6e10c717603322..a3b08555cded689ea8cf8ccee38d2d5d36bb9315 100644 (file)
@@ -256,7 +256,6 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
     uint32_t retval = 0;
     boolean is_r500 = r300_screen(screen)->caps.is_r500;
     boolean is_r400 = r300_screen(screen)->caps.is_r400;
-    boolean is_rv350 = r300_screen(screen)->caps.is_rv350;
     boolean is_z24 = format == PIPE_FORMAT_X8Z24_UNORM ||
                      format == PIPE_FORMAT_S8_USCALED_Z24_UNORM;
     boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM ||
@@ -272,6 +271,7 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
                             format == PIPE_FORMAT_R16G16B16_FLOAT ||
                             format == PIPE_FORMAT_R16G16B16A16_FLOAT;
 
+    /* Check multisampling support. */
     switch (sample_count) {
         case 0:
         case 1:
@@ -326,7 +326,7 @@ static boolean r300_is_format_supported(struct pipe_screen* screen,
     /* Check vertex buffer format support. */
     if (usage & PIPE_BIND_VERTEX_BUFFER &&
         /* Half float is supported on >= RV350. */
-        (is_rv350 || !is_half_float) &&
+        (is_r400 || is_r500 || !is_half_float) &&
         r300_translate_vertex_data_type(format) != R300_INVALID_FORMAT) {
         retval |= PIPE_BIND_VERTEX_BUFFER;
     }