--- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 14 +++++++------- src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 74e120b983..88cfb030d3 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -783,6 +783,10 @@ intel_miptree_create_for_bo(struct brw_context *brw, const GLenum target = depth > 1 ? GL_TEXTURE_2D_ARRAY : GL_TEXTURE_2D; const GLenum base_format = _mesa_get_format_base_format(format); + unsigned isl_flags = ISL_SURF_USAGE_TEXTURE_BIT; + if (!(layout_flags & MIPTREE_LAYOUT_FOR_TEXTURE)) + isl_flags |= ISL_SURF_USAGE_RENDER_TARGET_BIT; + if ((base_format == GL_DEPTH_COMPONENT || base_format == GL_DEPTH_STENCIL)) { const mesa_format depth_only_format = @@ -795,8 +799,7 @@ intel_miptree_create_for_bo(struct brw_context *brw, mt = make_surface(brw, target, brw->gen >= 6 ? depth_only_format : format, 0, 0, width, height, depth, 1, tiling, - ISL_SURF_USAGE_DEPTH_BIT | - ISL_SURF_USAGE_TEXTURE_BIT, + isl_flags | ISL_SURF_USAGE_DEPTH_BIT, 0, pitch, bo); if (!mt) return NULL; @@ -815,8 +818,7 @@ intel_miptree_create_for_bo(struct brw_context *brw, mt = make_surface(brw, target, MESA_FORMAT_S_UINT8, 0, 0, width, height, depth, 1, tiling, - ISL_SURF_USAGE_STENCIL_BIT | - ISL_SURF_USAGE_TEXTURE_BIT, + isl_flags | ISL_SURF_USAGE_STENCIL_BIT, BO_ALLOC_FOR_RENDER, pitch, bo); if (!mt) return NULL; @@ -846,9 +848,7 @@ intel_miptree_create_for_bo(struct brw_context *brw, mt = make_surface(brw, target, format, 0, 0, width, height, depth, 1, 1lu << isl_tiling_from_i915_tiling(tiling), - ISL_SURF_USAGE_RENDER_TARGET_BIT | - ISL_SURF_USAGE_TEXTURE_BIT, - 0, pitch, bo); + isl_flags, 0, pitch, bo); if (!mt) return NULL; diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h index 2179318413..05e7f90811 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h @@ -361,6 +361,7 @@ enum { MIPTREE_LAYOUT_TILING_NONE, MIPTREE_LAYOUT_FOR_SCANOUT = 1 << 7, + MIPTREE_LAYOUT_FOR_TEXTURE = 1 << 8, }; struct intel_mipmap_tree *intel_miptree_create(struct brw_context *brw, -- 2.13.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev