i965: Add _Format to intel_texobj.

This is the actual mesa_format to use. In non-view cases this is always
the same as the mt's format.

V4: Comment style

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Chris Forbes 2014-02-22 07:15:59 +13:00
parent b7f011fdc9
commit 771c2ae0af
3 changed files with 16 additions and 0 deletions

View File

@ -168,6 +168,7 @@ intel_alloc_texture_storage(struct gl_context *ctx,
intel_texobj->needs_validate = false;
intel_texobj->validated_first_level = 0;
intel_texobj->validated_last_level = levels - 1;
intel_texobj->_Format = intel_texobj->mt->format;
return true;
}
@ -242,6 +243,7 @@ intel_texture_view(struct gl_context *ctx,
struct gl_texture_object *texObj,
struct gl_texture_object *origTexObj)
{
struct brw_context *brw = brw_context(ctx);
struct intel_texture_object *intel_tex = intel_texture_object(texObj);
struct intel_texture_object *intel_orig_tex = intel_texture_object(origTexObj);
@ -274,6 +276,13 @@ intel_texture_view(struct gl_context *ctx,
intel_tex->validated_first_level = 0;
intel_tex->validated_last_level = numLevels - 1;
/* Set the validated texture format, with the same adjustments that
* would have been applied to determine the underlying texture's
* mt->format.
*/
intel_tex->_Format = intel_depth_format_for_depthstencil_format(
intel_lower_compressed_format(brw, texObj->Image[0][0]->TexFormat));
return GL_TRUE;
}

View File

@ -54,6 +54,12 @@ struct intel_texture_object
* might not all be the mipmap tree above.
*/
bool needs_validate;
/* Mesa format for the validated texture object. For non-views this
* will always be the same as mt->format. For views, it may differ
* since the mt is shared across views with differing formats.
*/
mesa_format _Format;
};

View File

@ -173,6 +173,7 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit)
intelObj->validated_first_level = validate_first_level;
intelObj->validated_last_level = validate_last_level;
intelObj->_Format = intelObj->mt->format;
intelObj->needs_validate = false;
return true;