iris: Update comment about 3-component formats and buffer textures
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 7 Oct 2019 23:03:14 +0000 (16:03 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 8 Oct 2019 06:11:45 +0000 (23:11 -0700)
You can't render to PIPE_BUFFER so there's no reason to prefer RGBX.
PBO upload would like to use proper RGB textures as source data.

src/gallium/drivers/iris/iris_formats.c

index 9daef41407aab9e1456fbed6a5a81fb581bd708e..94b89be84e0fc5937d7eb3d00389f15e50dfb091 100644 (file)
@@ -479,12 +479,14 @@ iris_is_format_supported(struct pipe_screen *pscreen,
       if (!is_integer)
          supported &= isl_format_supports_filtering(devinfo, format);
 
-      /* Don't advertise 3-component RGB formats.  This ensures that they
-       * are renderable from an API perspective since the state tracker will
-       * fall back to RGBA or RGBX, which are renderable.  We want to render
-       * internally for copies and blits, even if the application doesn't.
+      /* Don't advertise 3-component RGB formats for non-buffer textures.
+       * This ensures that they are renderable from an API perspective since
+       * the state tracker will fall back to RGBA or RGBX, which are
+       * renderable.  We want to render internally for copies and blits,
+       * even if the application doesn't.
        *
-       * We do need to advertise 32-bit RGB for texture buffers though.
+       * Buffer textures don't need to be renderable, so we support real RGB.
+       * This is useful for PBO upload, and 32-bit RGB support is mandatory.
        */
       if (target != PIPE_BUFFER)
          supported &= fmtl->bpb != 24 && fmtl->bpb != 48 && fmtl->bpb != 96;