From 937d3687ac7b37991517c18846f10a92db89d9dd Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 30 Jun 2020 16:43:47 -0400 Subject: [PATCH] panfrost: Include pointer for each sample Treating it like an array/3D texture. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/encoder/pan_texture.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/panfrost/encoder/pan_texture.c b/src/panfrost/encoder/pan_texture.c index 54a5398e299..a333dadc079 100644 --- a/src/panfrost/encoder/pan_texture.c +++ b/src/panfrost/encoder/pan_texture.c @@ -215,22 +215,26 @@ panfrost_emit_texture_payload( panfrost_adjust_cube_dimensions(&first_face, &last_face, &first_layer, &last_layer); } + nr_samples = MAX2(nr_samples, 1); + unsigned idx = 0; for (unsigned w = first_layer; w <= last_layer; ++w) { for (unsigned l = first_level; l <= last_level; ++l) { for (unsigned f = first_face; f <= last_face; ++f) { - payload[idx++] = base + panfrost_texture_offset( - slices, type == MALI_TEX_3D, - cube_stride, l, w * face_mult + f); - - if (manual_stride) { - payload[idx++] = (layout == MALI_TEXTURE_LINEAR) ? - slices[l].stride : - panfrost_nonlinear_stride(layout, - MAX2(desc->block.bits / 8, 1), - u_minify(width, l), - u_minify(height, l)); + for (unsigned s = 0; s < nr_samples; ++s) { + payload[idx++] = base + panfrost_texture_offset( + slices, type == MALI_TEX_3D, + cube_stride, l, w * face_mult + f, s); + + if (manual_stride) { + payload[idx++] = (layout == MALI_TEXTURE_LINEAR) ? + slices[l].stride : + panfrost_nonlinear_stride(layout, + MAX2(desc->block.bits / 8, 1), + u_minify(width, l), + u_minify(height, l)); + } } } } -- 2.30.2