i915: Fix driver for the miptree x/y offset changes.

Bug #24734.
This commit is contained in:
Eric Anholt 2009-10-27 10:26:09 -07:00 committed by Brian Paul
parent e9b17d6477
commit 4f9f5a7840
2 changed files with 20 additions and 4 deletions

View file

@ -160,10 +160,18 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
pitch = intelObj->pitchOverride;
} else {
GLuint dst_x, dst_y;
intel_miptree_get_image_offset(intelObj->mt, intelObj->firstLevel, 0, 0,
&dst_x, &dst_y);
dri_bo_reference(intelObj->mt->region->buffer);
i830->state.tex_buffer[unit] = intelObj->mt->region->buffer;
i830->state.tex_offset[unit] =
intel_miptree_image_offset(intelObj->mt, 0, intelObj->firstLevel, 0);
/* XXX: This calculation is probably broken for tiled images with
* a non-page-aligned offset.
*/
i830->state.tex_offset[unit] = (dst_x + dst_y * intelObj->mt->pitch) *
intelObj->mt->cpp;
format = translate_texture_format(firstImage->TexFormat->MesaFormat,
firstImage->InternalFormat);

View file

@ -171,10 +171,18 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
pitch = intelObj->pitchOverride;
} else {
GLuint dst_x, dst_y;
intel_miptree_get_image_offset(intelObj->mt, intelObj->firstLevel, 0, 0,
&dst_x, &dst_y);
dri_bo_reference(intelObj->mt->region->buffer);
i915->state.tex_buffer[unit] = intelObj->mt->region->buffer;
i915->state.tex_offset[unit] =
intel_miptree_image_offset(intelObj->mt, 0, intelObj->firstLevel, 0);
/* XXX: This calculation is probably broken for tiled images with
* a non-page-aligned offset.
*/
i915->state.tex_offset[unit] = (dst_x + dst_y * intelObj->mt->pitch) *
intelObj->mt->cpp;
format = translate_texture_format(firstImage->TexFormat->MesaFormat,
firstImage->InternalFormat,