X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Ftexstore.c;h=615ba63362efe3012adc9a9fb58fc553652d4c20;hb=9f93afb9a5586cb90e127ba7d63de3b416d08821;hp=4b13c42ed746f9321e1e418aa4770280fdf3a342;hpb=cf405922eb2bd4d1dfae896caa9d58980875e7ec;p=mesa.git diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index 4b13c42ed74..615ba63362e 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -73,8 +73,8 @@ #include "enums.h" #include "glformats.h" #include "pixeltransfer.h" -#include "../../gallium/auxiliary/util/u_format_rgb9e5.h" -#include "../../gallium/auxiliary/util/u_format_r11g11b10f.h" +#include "util/format_rgb9e5.h" +#include "util/format_r11g11b10f.h" enum { @@ -87,9 +87,6 @@ enum { * Texture image storage function. */ typedef GLboolean (*StoreTexImageFunc)(TEXSTORE_PARAMS); -static const GLubyte map_identity[6] = { 0, 1, 2, 3, ZERO, ONE }; -static const GLubyte map_3210[6] = { 3, 2, 1, 0, ZERO, ONE }; -static const GLubyte map_1032[6] = { 1, 0, 3, 2, ZERO, ONE }; /** @@ -906,6 +903,8 @@ _mesa_texstore_memcpy(TEXSTORE_PARAMS) srcAddr, srcPacking); return GL_TRUE; } + + /** * Store user data into texture memory. * Called via glTex[Sub]Image1/2/3D() @@ -1244,11 +1243,11 @@ _mesa_store_compressed_teximage(struct gl_context *ctx, GLuint dims, return; } - _mesa_store_compressed_texsubimage(ctx, dims, texImage, - 0, 0, 0, - texImage->Width, texImage->Height, texImage->Depth, - texImage->TexFormat, - imageSize, data); + ctx->Driver.CompressedTexSubImage(ctx, dims, texImage, + 0, 0, 0, + texImage->Width, texImage->Height, texImage->Depth, + texImage->TexFormat, + imageSize, data); } @@ -1268,16 +1267,16 @@ _mesa_compute_compressed_pixelstore(GLuint dims, mesa_format texFormat, const struct gl_pixelstore_attrib *packing, struct compressed_pixelstore *store) { - GLuint bw, bh; + GLuint bw, bh, bd; - _mesa_get_format_block_size(texFormat, &bw, &bh); + _mesa_get_format_block_size_3d(texFormat, &bw, &bh, &bd); store->SkipBytes = 0; store->TotalBytesPerRow = store->CopyBytesPerRow = _mesa_format_row_stride(texFormat, width); store->TotalRowsPerSlice = store->CopyRowsPerSlice = (height + bh - 1) / bh; - store->CopySlices = depth; + store->CopySlices = (depth + bd - 1) / bd; if (packing->CompressedBlockWidth && packing->CompressedBlockSize) {