Module: Mesa Branch: vulkan Commit: 456f5b0314747c5e47435a6d9d708ef7895c7a49 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=456f5b0314747c5e47435a6d9d708ef7895c7a49
Author: Nanley Chery <nanley.g.ch...@intel.com> Date: Fri Feb 26 14:49:51 2016 -0800 isl: Add function to get intratile offsets from x/y offsets Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> Reviewed-by: Jason Ekstrand <jason.ekstr...@intel.com> --- src/intel/isl/isl.c | 43 +++++++++++++++++++++++++++++++------------ src/intel/isl/isl.h | 12 ++++++++++++ 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index f7b4c70..7fd9eea 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -1414,11 +1414,10 @@ isl_surf_get_image_offset_el(const struct isl_surf *surf, } void -isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, +isl_surf_get_image_intratile_offset_el_xy(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 total_x_offset_el, + uint32_t total_y_offset_el, uint32_t *base_address_offset, uint32_t *x_offset_el, uint32_t *y_offset_el) @@ -1428,14 +1427,6 @@ isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, struct isl_tile_info tile_info; isl_surf_get_tile_info(dev, surf, &tile_info); - 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); - uint32_t small_y_offset_el = total_y_offset_el % tile_info.height; uint32_t big_y_offset_el = total_y_offset_el - small_y_offset_el; uint32_t big_y_offset_B = big_y_offset_el * surf->row_pitch; @@ -1448,6 +1439,34 @@ isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, *base_address_offset = big_y_offset_B + big_x_offset_B; *x_offset_el = small_x_offset_el; *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) +{ + 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_surf_get_image_intratile_offset_el_xy(dev, surf, + total_x_offset_el, + total_y_offset_el, + base_address_offset, + x_offset_el, + y_offset_el); } uint32_t diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index 7456975..5a48bce 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -1162,6 +1162,18 @@ isl_surf_get_image_intratile_offset_el(const struct isl_device *dev, uint32_t *y_offset_el); /** + * See above. + */ +void +isl_surf_get_image_intratile_offset_el_xy(const struct isl_device *dev, + const struct isl_surf *surf, + uint32_t total_x_offset_el, + uint32_t total_y_offset_el, + uint32_t *base_address_offset, + uint32_t *x_offset_el, + uint32_t *y_offset_el); + +/** * @brief Get value of 3DSTATE_DEPTH_BUFFER.SurfaceFormat * * @pre surf->usage has ISL_SURF_USAGE_DEPTH_BIT _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit