On Thu, Aug 06, 2015 at 11:39:04AM -0700, Matt Turner wrote: > On Thu, Aug 6, 2015 at 11:14 AM, Ben Widawsky <b...@bwidawsk.net> wrote: > > On Thu, Aug 06, 2015 at 11:03:55AM -0700, Matt Turner wrote: > >> Ben suggested that I rename MIPTREE_LAYOUT_ALLOC_ANY_TILED since it > >> needed to include no tiling at all, but the name > >> MIPTREE_LAYOUT_ALLOC_ANY is pretty nondescriptive. We can avoid > >> confusion by replacing "ALLOC" with "TILING" in the identifiers. > > > > The only nit I have, and the primary reason I chose "ALLOC" was because the > > flag > > is only relevant when you're creating a miptree with a new BO. There are > > functions to import a BO into a miptree, and those should never have such > > flags > > set. I was just trying to make it very explicit that this flag is only valid > > when you are creating the BO. > > Ahh, I see. I'd thought it just meant "how it's allocated", i.e. tiled. > > I see that we already have assertions that (layout_flags & > MIPTREE_LAYOUT_ALLOC_ANY_TILED) == 0. That seems sufficient to me. :) > > > If you can think of any better way to describe it, I'd be appreciative, but > > since > > you fixed the bug, I don't mind you doing it as you like. > > > >> --- > >> Once reviewed, I plan to land the patches in the following order > >> > >> i965: Request a miptree with no tiling intel_miptree_map_blit(). > >> i965: Correct a mistake that always forced texture tiling. > >> i965: Rename MIPTREE_LAYOUT_ALLOC_* -> MIPTREE_LAYOUT_TILING_*. > >> > >> The ordering of the first two is particularly important, since the > >> bug fixed in the first was masked by the bug in the second, landing > >> them in the other order would expose the bug fixed in the first. > >> > >> src/mesa/drivers/dri/i965/brw_tex_layout.c | 8 ++++---- > >> src/mesa/drivers/dri/i965/intel_fbo.c | 2 +- > >> src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 16 ++++++++-------- > >> src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 8 ++++---- > >> src/mesa/drivers/dri/i965/intel_tex.c | 2 +- > >> src/mesa/drivers/dri/i965/intel_tex_image.c | 2 +- > >> src/mesa/drivers/dri/i965/intel_tex_validate.c | 2 +- > >> 7 files changed, 20 insertions(+), 20 deletions(-) > >> > >> diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c > >> b/src/mesa/drivers/dri/i965/brw_tex_layout.c > >> index fb78b08..c9ee526 100644 > >> --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c > >> +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c > >> @@ -630,12 +630,12 @@ brw_miptree_choose_tiling(struct brw_context *brw, > >> /* Some usages may want only one type of tiling, like depth miptrees (Y > >> * tiled), or temporary BOs for uploading data once (linear). > >> */ > >> - switch (layout_flags & MIPTREE_LAYOUT_ALLOC_ANY_TILED) { > >> - case MIPTREE_LAYOUT_ALLOC_ANY_TILED: > >> + switch (layout_flags & MIPTREE_LAYOUT_TILING_ANY) { > >> + case MIPTREE_LAYOUT_TILING_ANY: > >> break; > >> - case MIPTREE_LAYOUT_ALLOC_YTILED: > >> + case MIPTREE_LAYOUT_TILING_Y: > >> return I915_TILING_Y; > >> - case MIPTREE_LAYOUT_ALLOC_LINEAR: > >> + case MIPTREE_LAYOUT_TILING_NONE: > >> return I915_TILING_NONE; > >> } > > > > Just sanity checking myself, but the r-b at the bottom is assuming this is > > the > > only functional change (it was all I could spot). > > If there's a functional change here, there shouldn't be. I can't spot > it -- what do you see? >
Sorry, I didn't realize this was on top of your previous patch to change the meaning of "ANY." You're correct, no change here. > >> > >> diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c > >> b/src/mesa/drivers/dri/i965/intel_fbo.c > >> index 87ba624..72648b0 100644 > >> --- a/src/mesa/drivers/dri/i965/intel_fbo.c > >> +++ b/src/mesa/drivers/dri/i965/intel_fbo.c > >> @@ -1023,7 +1023,7 @@ intel_renderbuffer_move_to_temp(struct brw_context > >> *brw, > >> int width, height, depth; > >> > >> uint32_t layout_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD | > >> - MIPTREE_LAYOUT_ALLOC_ANY_TILED; > >> + MIPTREE_LAYOUT_TILING_ANY; > >> > >> intel_miptree_get_dimensions_for_image(rb->TexImage, &width, &height, > >> &depth); > >> > >> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > >> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > >> index cb2791d..e85c3f0 100644 > >> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > >> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > >> @@ -455,7 +455,7 @@ intel_miptree_create_layout(struct brw_context *brw, > >> uint32_t stencil_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD; > >> if (brw->gen == 6) { > >> stencil_flags |= MIPTREE_LAYOUT_FORCE_ALL_SLICE_AT_LOD | > >> - MIPTREE_LAYOUT_ALLOC_ANY_TILED; > >> + MIPTREE_LAYOUT_TILING_ANY; > >> } > >> > >> mt->stencil_mt = intel_miptree_create(brw, > >> @@ -759,8 +759,8 @@ intel_miptree_create_for_bo(struct brw_context *brw, > >> /* The BO already has a tiling format and we shouldn't confuse the > >> lower > >> * layers by making it try to find a tiling format again. > >> */ > >> - assert((layout_flags & MIPTREE_LAYOUT_ALLOC_ANY_TILED) == 0); > >> - assert((layout_flags & MIPTREE_LAYOUT_ALLOC_LINEAR) == 0); > >> + assert((layout_flags & MIPTREE_LAYOUT_TILING_ANY) == 0); > >> + assert((layout_flags & MIPTREE_LAYOUT_TILING_NONE) == 0); > >> > >> layout_flags |= MIPTREE_LAYOUT_FOR_BO; > >> mt = intel_miptree_create_layout(brw, target, format, > >> @@ -874,7 +874,7 @@ intel_miptree_create_for_renderbuffer(struct > >> brw_context *brw, > >> bool ok; > >> GLenum target = num_samples > 1 ? GL_TEXTURE_2D_MULTISAMPLE : > >> GL_TEXTURE_2D; > >> const uint32_t layout_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD | > >> - MIPTREE_LAYOUT_ALLOC_ANY_TILED; > >> + MIPTREE_LAYOUT_TILING_ANY; > >> > >> > >> mt = intel_miptree_create(brw, target, format, 0, 0, > >> @@ -1385,7 +1385,7 @@ intel_miptree_alloc_mcs(struct brw_context *brw, > >> * "The MCS surface must be stored as Tile Y." > >> */ > >> const uint32_t mcs_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD | > >> - MIPTREE_LAYOUT_ALLOC_YTILED; > >> + MIPTREE_LAYOUT_TILING_Y; > >> mt->mcs_mt = intel_miptree_create(brw, > >> mt->target, > >> format, > >> @@ -1444,7 +1444,7 @@ intel_miptree_alloc_non_msrt_mcs(struct brw_context > >> *brw, > >> ALIGN(mt->logical_height0, height_divisor) / height_divisor; > >> assert(mt->logical_depth0 == 1); > >> uint32_t layout_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD | > >> - MIPTREE_LAYOUT_ALLOC_YTILED; > >> + MIPTREE_LAYOUT_TILING_Y; > >> if (brw->gen >= 8) { > >> layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16; > >> } > >> @@ -1709,7 +1709,7 @@ intel_hiz_miptree_buf_create(struct brw_context *brw, > >> if (!buf) > >> return NULL; > >> > >> - layout_flags |= MIPTREE_LAYOUT_ALLOC_ANY_TILED; > >> + layout_flags |= MIPTREE_LAYOUT_TILING_ANY; > >> buf->mt = intel_miptree_create(brw, > >> mt->target, > >> mt->format, > >> @@ -2149,7 +2149,7 @@ intel_miptree_map_blit(struct brw_context *brw, > >> map->mt = intel_miptree_create(brw, GL_TEXTURE_2D, mt->format, > >> 0, 0, > >> map->w, map->h, 1, > >> - 0, MIPTREE_LAYOUT_ALLOC_LINEAR); > >> + 0, MIPTREE_LAYOUT_TILING_NONE); > >> > >> if (!map->mt) { > >> fprintf(stderr, "Failed to allocate blit temporary\n"); > >> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > >> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > >> index 506c258..790d312 100644 > >> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > >> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > >> @@ -536,10 +536,10 @@ enum { > >> MIPTREE_LAYOUT_DISABLE_AUX = 1 << 3, > >> MIPTREE_LAYOUT_FORCE_HALIGN16 = 1 << 4, > >> > >> - MIPTREE_LAYOUT_ALLOC_YTILED = 1 << 5, > >> - MIPTREE_LAYOUT_ALLOC_LINEAR = 1 << 6, > >> - MIPTREE_LAYOUT_ALLOC_ANY_TILED = MIPTREE_LAYOUT_ALLOC_YTILED | > >> - MIPTREE_LAYOUT_ALLOC_LINEAR, > >> + MIPTREE_LAYOUT_TILING_Y = 1 << 5, > >> + MIPTREE_LAYOUT_TILING_NONE = 1 << 6, > >> + MIPTREE_LAYOUT_TILING_ANY = MIPTREE_LAYOUT_TILING_Y | > >> + MIPTREE_LAYOUT_TILING_NONE, > > > > Can you add a comment about why "ANY" doesn't really mean any? (X-tiling is > > useless garbage) > > Well, it kind of does -- passing ANY to brw_miptree_choose_tiling() > can select X tiling. It's just because we have no users of > brw_miptree_choose_tiling() that specifically request X tiling that we > don't have a bit for it or code that handles it. > > I can add a comment saying brw_miptree_choose_tiling() doesn't handle > X-tiling and thus there's no enum, but it seems kind of self-evident > by the lack of the enum. > > (In fact, it seems that we should have had that comment when we had an > X-tiling enum value that wasn't handled) self-evidence is relative I'd say. If you don't want to add it, I can live with that. My thought is just looking at the enum. It says to me "any tiling mode , which actually expands to *not* any of the tiling modes, and an untiled tiling mode. Anyway, it's really all bikeshedding at this point, so I don't care too much - mostly just explaining my original thoughts. I am beginning to see that our differing views on it might be that I'm thinking of what the hardware supports, and you're thinking of what the current driver supports. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev