From 5e38d956ab04659ad3fa98b06b4b1e418742ceb8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 3 Jul 2020 11:27:48 -0400 Subject: [PATCH] panfrost: Identify depth/stencil layer strides Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/include/panfrost-job.h | 4 ++-- src/panfrost/pandecode/decode.c | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h index cd725ec5544..a12df31467b 100644 --- a/src/panfrost/include/panfrost-job.h +++ b/src/panfrost/include/panfrost-job.h @@ -1784,12 +1784,12 @@ struct mali_framebuffer_extra { mali_ptr depth; u32 depth_stride_zero : 4; u32 depth_stride : 28; - u32 zero1; + u32 depth_layer_stride; mali_ptr stencil; u32 stencil_stride_zero : 4; u32 stencil_stride : 28; - u32 zero2; + u32 stencil_layer_stride; } ds_linear; }; diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c index 928f5a77efb..c64fc4e5593 100644 --- a/src/panfrost/pandecode/decode.c +++ b/src/panfrost/pandecode/decode.c @@ -1273,30 +1273,29 @@ pandecode_mfbd_bfr(uint64_t gpu_va, int job_no, bool is_fragment, bool is_comput MEMORY_PROP_DIR(fbx->ds_linear, depth); pandecode_prop("depth_stride = %d", fbx->ds_linear.depth_stride); - } else if (fbx->ds_linear.depth_stride) { - pandecode_msg("XXX: depth stride zero tripped %d\n", fbx->ds_linear.depth_stride); + pandecode_prop("depth_layer_stride = %d", + fbx->ds_linear.depth_layer_stride); + } else if (fbx->ds_linear.depth_stride || fbx->ds_linear.depth_layer_stride) { + pandecode_msg("XXX: depth stride zero tripped %d %d\n", fbx->ds_linear.depth_stride, fbx->ds_linear.depth_layer_stride); } if (fbx->ds_linear.stencil) { MEMORY_PROP_DIR(fbx->ds_linear, stencil); pandecode_prop("stencil_stride = %d", fbx->ds_linear.stencil_stride); - } else if (fbx->ds_linear.stencil_stride) { - pandecode_msg("XXX: stencil stride zero tripped %d\n", fbx->ds_linear.stencil_stride); + pandecode_prop("stencil_layer_stride = %d", + fbx->ds_linear.stencil_layer_stride); + } else if (fbx->ds_linear.stencil_stride || fbx->ds_linear.stencil_layer_stride) { + pandecode_msg("XXX: stencil stride zero tripped %d %d\n", fbx->ds_linear.stencil_stride, fbx->ds_linear.stencil_layer_stride); } if (fbx->ds_linear.depth_stride_zero || - fbx->ds_linear.stencil_stride_zero || - fbx->ds_linear.zero1 || fbx->ds_linear.zero2) { + fbx->ds_linear.stencil_stride_zero) { pandecode_msg("XXX: Depth/stencil zeros tripped\n"); pandecode_prop("depth_stride_zero = 0x%x", fbx->ds_linear.depth_stride_zero); pandecode_prop("stencil_stride_zero = 0x%x", fbx->ds_linear.stencil_stride_zero); - pandecode_prop("zero1 = 0x%" PRIx32, - fbx->ds_linear.zero1); - pandecode_prop("zero2 = 0x%" PRIx32, - fbx->ds_linear.zero2); } pandecode_indent--; -- 2.30.2