On 03/28/2014 09:56 PM, Chris Forbes wrote:
The case for this was in the wrong function, and this format's store
func was not set in the table at all.

Signed-off-by: Chris Forbes <[email protected]>
---
  src/mesa/main/texstore.c | 10 ++++++----
  1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index b68ba60..fe3b072 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -3260,12 +3260,16 @@ _mesa_texstore_srgba8(TEXSTORE_PARAMS)
     GLboolean k;

     ASSERT(dstFormat == MESA_FORMAT_A8B8G8R8_SRGB ||
-          dstFormat == MESA_FORMAT_R8G8B8X8_SRGB);
+          dstFormat == MESA_FORMAT_R8G8B8X8_SRGB ||
+          dstFormat == MESA_FORMAT_R8G8B8A8_SRGB);

     /* reuse normal rgba texstore code */
     if (dstFormat == MESA_FORMAT_A8B8G8R8_SRGB) {
        newDstFormat = MESA_FORMAT_A8B8G8R8_UNORM;
     }
+   else if (dstFormat == MESA_FORMAT_R8G8B8A8_SRGB) {
+      newDstFormat = MESA_FORMAT_R8G8B8A8_UNORM;
+   }
     else if (dstFormat == MESA_FORMAT_R8G8B8X8_SRGB) {
        newDstFormat = MESA_FORMAT_R8G8B8X8_UNORM;
     }

BTW, this else/if block could be replaced by a call to _mesa_get_srgb_format_linear().


@@ -3294,9 +3298,6 @@ _mesa_texstore_sargb8(TEXSTORE_PARAMS)
     case MESA_FORMAT_B8G8R8A8_SRGB:
        newDstFormat = MESA_FORMAT_B8G8R8A8_UNORM;
        break;
-   case MESA_FORMAT_R8G8B8A8_SRGB:
-      newDstFormat = MESA_FORMAT_R8G8B8A8_UNORM;
-      break;
     case MESA_FORMAT_B8G8R8X8_SRGB:
        newDstFormat = MESA_FORMAT_B8G8R8X8_UNORM;
        break;

_mesa_get_srgb_format_linear() here too.


@@ -3852,6 +3853,7 @@ _mesa_get_texstore_func(mesa_format format)
        table[MESA_FORMAT_B5G5R5X1_UNORM] = store_ubyte_texture;
        table[MESA_FORMAT_R8G8B8X8_SNORM] = _mesa_texstore_signed_rgbx8888;
        table[MESA_FORMAT_R8G8B8X8_SRGB] = _mesa_texstore_srgba8;
+      table[MESA_FORMAT_R8G8B8A8_SRGB] = _mesa_texstore_srgba8;
        table[MESA_FORMAT_RGBX_UINT8] = _mesa_texstore_rgba_uint8;
        table[MESA_FORMAT_RGBX_SINT8] = _mesa_texstore_rgba_int8;
        table[MESA_FORMAT_B10G10R10X2_UNORM] = _mesa_texstore_argb2101010;


Reviewed-by: Brian Paul <[email protected]>

Feel free to make the _mesa_get_srgb_format_linear() change in a follow-on commit.

-Brian

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to