OSDN Git Service

mesa: add stricter checks for float formats in the texstore memcpy path
authorMarek Olšák <maraeo@gmail.com>
Fri, 22 Apr 2011 17:29:55 +0000 (19:29 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 25 Apr 2011 11:45:05 +0000 (13:45 +0200)
E.g. when the internal format was RGBA16F and the source was RG, it would use
memcpy.

src/mesa/main/texstore.c

index 9a69052..cf12241 100644 (file)
@@ -3551,6 +3551,7 @@ _mesa_texstore_rgba_float32(TEXSTORE_PARAMS)
    if (!ctx->_ImageTransferState &&
        !srcPacking->SwapBytes &&
        baseInternalFormat == srcFormat &&
+       baseInternalFormat == baseFormat &&
        srcType == GL_FLOAT) {
       /* simple memcpy path */
       memcpy_texture(ctx, dims,
@@ -3625,6 +3626,7 @@ _mesa_texstore_rgba_float16(TEXSTORE_PARAMS)
    if (!ctx->_ImageTransferState &&
        !srcPacking->SwapBytes &&
        baseInternalFormat == srcFormat &&
+       baseInternalFormat == baseFormat &&
        srcType == GL_HALF_FLOAT_ARB) {
       /* simple memcpy path */
       memcpy_texture(ctx, dims,