Effectively revert 710b1d2e665ed654fb8d52b146fa22469e1dc3a7. This function was created to perform the ASTC void-extent workaround. Now that the workaround is handled prior to sampling, this function is no longer necessary. --- src/mesa/drivers/dri/i965/intel_tex_image.c | 87 --------------------- 1 file changed, 87 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index 9775f788788..31ff08217ac 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -843,98 +843,11 @@ intel_get_tex_sub_image(struct gl_context *ctx, DBG("%s - DONE\n", __func__); } -static void -flush_astc_denorms(struct gl_context *ctx, GLuint dims, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth) -{ - struct compressed_pixelstore store; - _mesa_compute_compressed_pixelstore(dims, texImage->TexFormat, - width, height, depth, - &ctx->Unpack, &store); - - for (int slice = 0; slice < store.CopySlices; slice++) { - - /* Map dest texture buffer */ - GLubyte *dstMap; - GLint dstRowStride; - ctx->Driver.MapTextureImage(ctx, texImage, slice + zoffset, - xoffset, yoffset, width, height, - GL_MAP_READ_BIT | GL_MAP_WRITE_BIT, - &dstMap, &dstRowStride); - if (!dstMap) - continue; - - for (int i = 0; i < store.CopyRowsPerSlice; i++) { - - /* An ASTC block is stored in little endian mode. The byte that - * contains bits 0..7 is stored at the lower address in memory. - */ - struct astc_void_extent { - uint16_t header : 12; - uint16_t dontcare[3]; - uint16_t R; - uint16_t G; - uint16_t B; - uint16_t A; - } *blocks = (struct astc_void_extent*) dstMap; - - /* Iterate over every copied block in the row */ - for (int j = 0; j < store.CopyBytesPerRow / 16; j++) { - - /* Check if the header matches that of an LDR void-extent block */ - if (blocks[j].header == 0xDFC) { - - /* Flush UNORM16 values that would be denormalized */ - if (blocks[j].A < 4) blocks[j].A = 0; - if (blocks[j].B < 4) blocks[j].B = 0; - if (blocks[j].G < 4) blocks[j].G = 0; - if (blocks[j].R < 4) blocks[j].R = 0; - } - } - - dstMap += dstRowStride; - } - - ctx->Driver.UnmapTextureImage(ctx, texImage, slice + zoffset); - } -} - - -static void -intelCompressedTexSubImage(struct gl_context *ctx, GLuint dims, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, - GLsizei imageSize, const GLvoid *data) -{ - /* Upload the compressed data blocks */ - _mesa_store_compressed_texsubimage(ctx, dims, texImage, - xoffset, yoffset, zoffset, - width, height, depth, - format, imageSize, data); - - /* Fix up copied ASTC blocks if necessary */ - GLenum gl_format = _mesa_compressed_format_to_glenum(ctx, - texImage->TexFormat); - bool is_linear_astc = _mesa_is_astc_format(gl_format) && - !_mesa_is_srgb_format(gl_format); - struct brw_context *brw = (struct brw_context*) ctx; - const struct gen_device_info *devinfo = &brw->screen->devinfo; - if (devinfo->gen == 9 && !gen_device_info_is_9lp(devinfo) && is_linear_astc) - flush_astc_denorms(ctx, dims, texImage, - xoffset, yoffset, zoffset, - width, height, depth); -} - void intelInitTextureImageFuncs(struct dd_function_table *functions) { functions->TexImage = intelTexImage; functions->TexSubImage = intelTexSubImage; - functions->CompressedTexSubImage = intelCompressedTexSubImage; functions->EGLImageTargetTexture2D = intel_image_target_texture_2d; functions->BindRenderbufferTexImage = intel_bind_renderbuffer_tex_image; functions->GetTexSubImage = intel_get_tex_sub_image; -- 2.19.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev