On 16-10-24 15:36:59, Jason Ekstrand wrote:
Even though this patch series is from-scratch, Ben deserves most of the
credit for tracking this down. He had a series some time ago to fix the
issue for the terrain tests but it never ended up landing for a variety of
reasons (many of which were stupid). Ben, would you like me to credit you
somehow? Maybe a Reported-by?
--Jason
I don't care. I would have liked the have landed the patches way back when, but
that's how the cookie crumbles. I'm glad it's at least moving in the right
direction now.
On Mon, Oct 24, 2016 at 3:29 PM, Jason Ekstrand <ja...@jlekstrand.net>
wrote:
These restrictions existed because intel_miptree_blit couldn't handle
surfaces bigger than 32k. How that we're chopping blits up into chunks, it
can handle any size we throw at it so we can get rid of this restriction.
This improves the terrain tests in synmark by 25-30% on my Sky Lake gt3.
Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net>
---
src/mesa/drivers/dri/i965/brw_tex_layout.c | 3 +--
src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 6 ------
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c
b/src/mesa/drivers/dri/i965/brw_tex_layout.c
index 4618bc0..768f8a8 100644
--- a/src/mesa/drivers/dri/i965/brw_tex_layout.c
+++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c
@@ -610,8 +610,7 @@ brw_miptree_choose_tiling(struct brw_context *brw,
if (minimum_pitch < 64)
return I915_TILING_NONE;
- if (ALIGN(minimum_pitch, 512) >= 32768 ||
- mt->total_width >= 32768 || mt->total_height >= 32768) {
+ if (ALIGN(minimum_pitch, 512) >= 32768) {
perf_debug("%dx%d miptree too large to blit, falling back to
untiled",
mt->total_width, mt->total_height);
return I915_TILING_NONE;
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 551df4d..551812a 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2838,12 +2838,6 @@ static bool
can_blit_slice(struct intel_mipmap_tree *mt,
unsigned int level, unsigned int slice)
{
- uint32_t image_x;
- uint32_t image_y;
- intel_miptree_get_image_offset(mt, level, slice, &image_x, &image_y);
- if (image_x >= 32768 || image_y >= 32768)
- return false;
-
/* See intel_miptree_blit() for details on the 32k pitch limit. */
if (mt->pitch >= 32768)
return false;
--
2.5.0.400.gff86faf
--
Ben Widawsky, Intel Open Source Technology Center
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev