summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965
diff options
context:
space:
mode:
authorChad Versace <[email protected]>2011-11-17 08:30:30 -0800
committerChad Versace <[email protected]>2011-11-22 10:50:51 -0800
commit017c13d55b5b086774d6afea2ca754482c624c6a (patch)
tree2361a497d2c2d9de938a8a5af8a9fcd0e35348c9 /src/mesa/drivers/dri/i965
parent293e9a7ccfeb64efd54464658518e4ded054a13c (diff)
intel: Store miptree alignment units in the miptree
This allows us to replace all the calls to intel_get_texture_alignment_unit() with a single call at miptree creation. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965')
-rw-r--r--src/mesa/drivers/dri/i965/brw_tex_layout.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c
index ac6ade60959..eaea49bf55f 100644
--- a/src/mesa/drivers/dri/i965/brw_tex_layout.c
+++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c
@@ -43,17 +43,13 @@ static void
brw_miptree_layout_texture_array(struct intel_context *intel,
struct intel_mipmap_tree *mt)
{
- GLuint align_w;
- GLuint align_h;
GLuint level;
GLuint qpitch = 0;
int h0, h1, q;
- intel_get_texture_alignment_unit(mt->format, &align_w, &align_h);
-
- h0 = ALIGN(mt->height0, align_h);
- h1 = ALIGN(minify(mt->height0), align_h);
- qpitch = (h0 + h1 + (intel->gen >= 7 ? 12 : 11) * align_h);
+ h0 = ALIGN(mt->height0, mt->align_h);
+ h1 = ALIGN(minify(mt->height0), mt->align_h);
+ qpitch = (h0 + h1 + (intel->gen >= 7 ? 12 : 11) * mt->align_h);
if (mt->compressed)
qpitch /= 4;
@@ -70,9 +66,6 @@ brw_miptree_layout_texture_array(struct intel_context *intel,
void
brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
{
- /* XXX: these vary depending on image format: */
- /* GLint align_w = 4; */
-
switch (mt->target) {
case GL_TEXTURE_CUBE_MAP:
if (intel->gen >= 5) {
@@ -93,18 +86,15 @@ brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
GLuint pack_x_pitch, pack_x_nr;
GLuint pack_y_pitch;
GLuint level;
- GLuint align_h = 2;
- GLuint align_w = 4;
mt->total_height = 0;
- intel_get_texture_alignment_unit(mt->format, &align_w, &align_h);
if (mt->compressed) {
- mt->total_width = ALIGN(width, align_w);
+ mt->total_width = ALIGN(width, mt->align_w);
pack_y_pitch = (height + 3) / 4;
} else {
mt->total_width = mt->width0;
- pack_y_pitch = ALIGN(mt->height0, align_h);
+ pack_y_pitch = ALIGN(mt->height0, mt->align_h);
}
pack_x_pitch = width;
@@ -139,8 +129,8 @@ brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
if (mt->compressed) {
pack_y_pitch = (height + 3) / 4;
- if (pack_x_pitch > ALIGN(width, align_w)) {
- pack_x_pitch = ALIGN(width, align_w);
+ if (pack_x_pitch > ALIGN(width, mt->align_w)) {
+ pack_x_pitch = ALIGN(width, mt->align_w);
pack_x_nr <<= 1;
}
} else {
@@ -152,7 +142,7 @@ brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
if (pack_y_pitch > 2) {
pack_y_pitch >>= 1;
- pack_y_pitch = ALIGN(pack_y_pitch, align_h);
+ pack_y_pitch = ALIGN(pack_y_pitch, mt->align_h);
}
}