--- src/mesa/drivers/dri/i965/brw_fallback.c | 16 +--------- src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 4 -- src/mesa/drivers/dri/intel/intel_tex.c | 12 ++----- src/mesa/drivers/dri/intel/intel_tex_image.c | 36 +++++----------------- src/mesa/drivers/dri/intel/intel_tex_validate.c | 7 ---- 5 files changed, 13 insertions(+), 62 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fallback.c b/src/mesa/drivers/dri/i965/brw_fallback.c index ae08cf5..fbaf418 100644 --- a/src/mesa/drivers/dri/i965/brw_fallback.c +++ b/src/mesa/drivers/dri/i965/brw_fallback.c @@ -56,20 +56,6 @@ static bool do_check_fallback(struct brw_context *brw) return true; } - /* _NEW_TEXTURE: - */ - for (i = 0; i < BRW_MAX_TEX_UNIT; i++) { - struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i]; - if (texUnit->_ReallyEnabled) { - struct gl_texture_object *tex_obj = texUnit->_Current; - struct gl_texture_image *texImage = tex_obj->Image[0][tex_obj->BaseLevel]; - if (texImage->Border) { - DBG("FALLBACK: texture border\n"); - return true; - } - } - } - return false; } @@ -80,7 +66,7 @@ static void check_fallback(struct brw_context *brw) const struct brw_tracked_state brw_check_fallback = { .dirty = { - .mesa = _NEW_RENDERMODE | _NEW_TEXTURE | _NEW_STENCIL, + .mesa = _NEW_RENDERMODE | _NEW_STENCIL, .brw = 0, .cache = 0 }, diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index 9eb81de..045de33 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -246,10 +246,6 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, GLuint level = intelImage->base.Base.Level; int width, height, depth; - /* Images with borders are never pulled into mipmap trees. */ - if (image->Border) - return false; - if (image->TexFormat != mt->format) return false; diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c index 5806659..bed93e6 100644 --- a/src/mesa/drivers/dri/intel/intel_tex.c +++ b/src/mesa/drivers/dri/intel/intel_tex.c @@ -61,6 +61,8 @@ intel_alloc_texture_image_buffer(struct gl_context *ctx, struct intel_texture_object *intel_texobj = intel_texture_object(texobj); GLuint slices; + assert(image->Border == 0); + /* Because the driver uses AllocTextureImageBuffer() internally, it may end * up mismatched with FreeTextureImageBuffer(), but that is safe to call * multiple times. @@ -93,8 +95,7 @@ intel_alloc_texture_image_buffer(struct gl_context *ctx, DBG("%s: alloc obj %p level %d %dx%dx%d using object's miptree %p\n", __FUNCTION__, texobj, image->Level, width, height, depth, intel_texobj->mt); - return true; - } else if (image->Border == 0) { + } else { intel_image->mt = intel_miptree_create_for_teximage(intel, intel_texobj, intel_image, false); @@ -114,14 +115,9 @@ intel_alloc_texture_image_buffer(struct gl_context *ctx, DBG("%s: alloc obj %p level %d %dx%dx%d using new miptree %p\n", __FUNCTION__, texobj, image->Level, width, height, depth, intel_image->mt); - return true; } - DBG("%s: alloc obj %p level %d %dx%dx%d using swrast\n", - __FUNCTION__, texobj, image->Level, width, height, depth); - - return _swrast_alloc_texture_image_buffer(ctx, image, format, - width, height, depth); + return true; } static void diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index d052684..eaf034a 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -26,24 +26,8 @@ #define FILE_DEBUG_FLAG DEBUG_TEXTURE -/* Functions to store texture images. Where possible, mipmap_tree's - * will be created or further instantiated with image data, otherwise - * images will be stored in malloc'd memory. A validation step is - * required to pull those images into a mipmap tree, or otherwise - * decide a fallback is required. - */ - - - -/* Otherwise, store it in memory if (Border != 0) or (any dimension == - * 1). - * - * Otherwise, if max_level >= level >= min_level, create tree with - * space for textures from min_level down to max_level. - * - * Otherwise, create tree with space for textures from (level - * 0)..(1x1). Consider pruning this tree at a validation if the - * saving is worth it. +/* Work back from the specified level of the image to the baselevel and create a + * miptree of that size. */ struct intel_mipmap_tree * intel_miptree_create_for_teximage(struct intel_context *intel, @@ -61,9 +45,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel, DBG("%s\n", __FUNCTION__); - if (intelImage->base.Base.Border) - return NULL; - if (intelImage->base.Base.Level > intelObj->base.BaseLevel && (width == 1 || (intelObj->base.Target != GL_TEXTURE_1D && height == 1) || @@ -350,14 +331,13 @@ intelTexImage(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, - GLint border, GLenum format, GLenum type, const void *pixels, const struct gl_pixelstore_attrib *unpack, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLsizei imageSize) { - DBG("%s target %s level %d %dx%dx%d border %d\n", __FUNCTION__, - _mesa_lookup_enum_by_nr(target), level, width, height, depth, border); + DBG("%s target %s level %d %dx%dx%d\n", __FUNCTION__, + _mesa_lookup_enum_by_nr(target), level, width, height, depth); /* Attempt to use the blitter for PBO image uploads. */ @@ -371,7 +351,7 @@ intelTexImage(struct gl_context * ctx, __FUNCTION__, width, height, depth, pixels); _mesa_store_teximage3d(ctx, target, level, internalFormat, - width, height, depth, border, + width, height, depth, 0, format, type, pixels, unpack, texObj, texImage); } @@ -389,7 +369,7 @@ intelTexImage3D(struct gl_context * ctx, struct gl_texture_image *texImage) { intelTexImage(ctx, 3, target, level, - internalFormat, width, height, depth, border, + internalFormat, width, height, depth, format, type, pixels, unpack, texObj, texImage, 0); } @@ -405,7 +385,7 @@ intelTexImage2D(struct gl_context * ctx, struct gl_texture_image *texImage) { intelTexImage(ctx, 2, target, level, - internalFormat, width, height, 1, border, + internalFormat, width, height, 1, format, type, pixels, unpack, texObj, texImage, 0); } @@ -421,7 +401,7 @@ intelTexImage1D(struct gl_context * ctx, struct gl_texture_image *texImage) { intelTexImage(ctx, 1, target, level, - internalFormat, width, 1, 1, border, + internalFormat, width, 1, 1, format, type, pixels, unpack, texObj, texImage, 0); } diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c index 6639de9..a657732 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_validate.c +++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c @@ -52,13 +52,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit) intel_update_max_level(intelObj, sampler); firstImage = intel_texture_image(tObj->Image[0][tObj->BaseLevel]); - /* Fallback case: - */ - if (firstImage->base.Base.Border) { - intel_miptree_release(&intelObj->mt); - return false; - } - intel_miptree_get_dimensions_for_image(&firstImage->base.Base, &width, &height, &depth); -- 1.7.7 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev