From b0a5ca5cfc5b65262e834cdfa3cb7c6a1cfa8259 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 30 Mar 2016 16:23:02 -0700 Subject: [PATCH] isl: Remove surf_get_intratile_offset_el The intratile offset may not be a multiple of the element size so this calculation is invalid. Reviewed-by: Nanley Chery --- src/intel/isl/isl.c | 30 -------- src/intel/isl/isl.h | 20 ----- .../tests/isl_surf_get_image_offset_test.c | 75 ------------------- 3 files changed, 125 deletions(-) diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 37d8bcba078..0eaa8087c71 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -1452,36 +1452,6 @@ isl_tiling_get_intratile_offset_el(const struct isl_device *dev, *y_offset_el = small_y_offset_el; } -void -isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, - const struct isl_surf *surf, - uint32_t level, - uint32_t logical_array_layer, - uint32_t logical_z_offset, - uint32_t *base_address_offset, - uint32_t *x_offset_el, - uint32_t *y_offset_el) -{ - const struct isl_format_layout *fmtl = isl_format_get_layout(surf->format); - - uint32_t total_x_offset_el; - uint32_t total_y_offset_el; - isl_surf_get_image_offset_el(surf, level, - logical_array_layer, - logical_z_offset, - &total_x_offset_el, - &total_y_offset_el); - - - isl_tiling_get_intratile_offset_el(dev, surf->tiling, fmtl->bs, - surf->row_pitch, - total_x_offset_el, - total_y_offset_el, - base_address_offset, - x_offset_el, - y_offset_el); -} - uint32_t isl_surf_get_depth_format(const struct isl_device *dev, const struct isl_surf *surf) diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index 4f796f6c6a8..8f796b034f8 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -1163,26 +1163,6 @@ isl_tiling_get_intratile_offset_el(const struct isl_device *dev, uint32_t *x_offset_B, uint32_t *y_offset_rows); -/** - * @brief Calculate the intratile offsets to a subimage in the surface. - * - * In @a base_address_offset return the offset from the base of the surface to - * the base address of the first tile of the subimage. In @a x_offset_el and - * @a y_offset_el, return the offset, in units of surface elements, from the - * tile's base to the subimage's first surface element. The x and y offsets - * are intratile offsets; that is, they do not exceed the boundary of the - * surface's tiling format. - */ -void -isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, - const struct isl_surf *surf, - uint32_t level, - uint32_t logical_array_layer, - uint32_t logical_z_offset, - uint32_t *base_address_offset, - uint32_t *x_offset_el, - uint32_t *y_offset_el); - /** * @brief Get value of 3DSTATE_DEPTH_BUFFER.SurfaceFormat * diff --git a/src/intel/isl/tests/isl_surf_get_image_offset_test.c b/src/intel/isl/tests/isl_surf_get_image_offset_test.c index 34b336e8d81..9d6a8348800 100644 --- a/src/intel/isl/tests/isl_surf_get_image_offset_test.c +++ b/src/intel/isl/tests/isl_surf_get_image_offset_test.c @@ -93,31 +93,6 @@ t_assert_offset_el(const struct isl_surf *surf, t_assert(y == expected_y_offset_el); } -static void -t_assert_intratile_offset_el(const struct isl_device *dev, - const struct isl_surf *surf, - uint32_t level, - uint32_t logical_array_layer, - uint32_t logical_z_offset_px, - uint32_t expected_base_address_offset, - uint32_t expected_x_offset_el, - uint32_t expected_y_offset_el) -{ - uint32_t base_address_offset; - uint32_t x_offset_el, y_offset_el; - isl_surf_get_image_intratile_offset_el(dev, surf, - level, - logical_array_layer, - logical_z_offset_px, - &base_address_offset, - &x_offset_el, - &y_offset_el); - - t_assert(base_address_offset == expected_base_address_offset); - t_assert(x_offset_el == expected_x_offset_el); - t_assert(y_offset_el == expected_y_offset_el); -} - static void t_assert_phys_level0_sa(const struct isl_surf *surf, uint32_t width, uint32_t height, uint32_t depth, uint32_t array_len) @@ -188,17 +163,6 @@ test_bdw_2d_r8g8b8a8_unorm_512x512_array01_samples01_noaux_tiley0(void) t_assert_offset_el(&surf, 7, 0, 0, 256, 760); // +0, +8 t_assert_offset_el(&surf, 8, 0, 0, 256, 764); // +0, +4 t_assert_offset_el(&surf, 9, 0, 0, 256, 768); // +0, +4 - - t_assert_intratile_offset_el(&dev, &surf, 0, 0, 0, 0x0, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 1, 0, 0, 0x100000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 2, 0, 0, 0x108000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 3, 0, 0, 0x148000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 4, 0, 0, 0x168000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 5, 0, 0, 0x178000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 6, 0, 0, 0x178000, 0, 16); - t_assert_intratile_offset_el(&dev, &surf, 7, 0, 0, 0x178000, 0, 24); - t_assert_intratile_offset_el(&dev, &surf, 8, 0, 0, 0x178000, 0, 28); - t_assert_intratile_offset_el(&dev, &surf, 9, 0, 0, 0x188000, 0, 0); } static void @@ -257,45 +221,6 @@ test_bdw_2d_r8g8b8a8_unorm_1024x1024_array06_samples01_noaux_tiley0(void) */ t_assert(isl_surf_get_array_pitch_el_rows(&surf) == 1540); - /* array layer 0 */ - t_assert_intratile_offset_el(&dev, &surf, 0, 0, 0, 0x0, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 1, 0, 0, 0x400000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 2, 0, 0, 0x410000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 3, 0, 0, 0x510000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 4, 0, 0, 0x590000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 5, 0, 0, 0x5d0000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 6, 0, 0, 0x5f0000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 7, 0, 0, 0x5f0000, 0, 16); - t_assert_intratile_offset_el(&dev, &surf, 8, 0, 0, 0x5f0000, 0, 24); - t_assert_intratile_offset_el(&dev, &surf, 9, 0, 0, 0x5f0000, 0, 28); - t_assert_intratile_offset_el(&dev, &surf, 10, 0, 0, 0x610000, 0, 0); - - /* array layer 1 */ - t_assert_intratile_offset_el(&dev, &surf, 0, 1, 0, 0x600000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 1, 1, 0, 0xa00000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 2, 1, 0, 0xa10000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 3, 1, 0, 0xb10000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 4, 1, 0, 0xb90000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 5, 1, 0, 0xbd0000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 6, 1, 0, 0xbf0000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 7, 1, 0, 0xbf0000, 0, 20); - t_assert_intratile_offset_el(&dev, &surf, 8, 1, 0, 0xbf0000, 0, 28); - t_assert_intratile_offset_el(&dev, &surf, 9, 1, 0, 0xc10000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 10, 1, 0, 0xc10000, 0, 4); - - /* array layer 2 */ - t_assert_intratile_offset_el(&dev, &surf, 0, 2, 0, 0xc00000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 1, 2, 0, 0x1000000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 2, 2, 0, 0x1010000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 3, 2, 0, 0x1110000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 4, 2, 0, 0x1190000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 5, 2, 0, 0x11d0000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 6, 2, 0, 0x11f0000, 0, 8); - t_assert_intratile_offset_el(&dev, &surf, 7, 2, 0, 0x11f0000, 0, 24); - t_assert_intratile_offset_el(&dev, &surf, 8, 2, 0, 0x1210000, 0, 0); - t_assert_intratile_offset_el(&dev, &surf, 9, 2, 0, 0x1210000, 0, 4); - t_assert_intratile_offset_el(&dev, &surf, 10, 2, 0, 0x1210000, 0, 8); - /* skip the remaining array layers */ } -- 2.30.2