rocr: Add support for Mipmapped Array (#1847)

SWDEV-539526 - Add support for Mipmapped Array in Rocr

Add support for Mipmapped Array functionality in Rocr Runtimeenabling GPU applications to work with multi-level texture mipmaps. The implementation introduces new public APIs for creating, querying, and managing mipmapped arrays across different GPU architectures.

Signed-off-by: Apurv Mishra <Apurv.Mishra@amd.com>
Co-authored-by: Shweta Khatri <shweta.khatri@amd.com>
Co-authored-by: taosang2 <tao.sang@amd.com>
This commit is contained in:
Apurv Mishra
2026-01-08 18:14:39 -05:00
zatwierdzone przez GitHub
rodzic 8b529e7b29
commit be375c2dbf
21 zmienionych plików z 2918 dodań i 101 usunięć
@@ -55,6 +55,11 @@ namespace rocr {
namespace core {
struct ImageExtTableInternal : public ImageExtTable {
decltype(::hsa_amd_image_get_info_max_dim)* hsa_amd_image_get_info_max_dim_fn;
// V2 unified APIs for images and mipmaps
decltype(::hsa_ext_image_data_get_info_v2)* hsa_ext_image_data_get_info_v2_fn;
decltype(::hsa_ext_image_create_v2)* hsa_ext_image_create_v2_fn;
decltype(::hsa_ext_image_destroy_v2)* hsa_ext_image_destroy_v2_fn;
decltype(::hsa_ext_image_mipmap_array_get_level)* hsa_ext_image_mipmap_array_get_level_fn;
};
struct PcSamplingExtTableInternal : public PcSamplingExtTable {};
@@ -476,6 +476,39 @@ hsa_status_t hsa_ext_image_create_with_layout(
image);
}
hsa_status_t hsa_ext_image_data_get_info_v2(
hsa_agent_t agent, const hsa_ext_image_descriptor_v2_t* image_descriptor,
hsa_access_permission_t access_permission,
hsa_ext_image_data_info_t* image_data_info) {
return rocr::core::Runtime::runtime_singleton_->extensions_.image_api
.hsa_ext_image_data_get_info_v2_fn(agent, image_descriptor,
access_permission, image_data_info);
}
hsa_status_t hsa_ext_image_create_v2(hsa_agent_t agent,
const hsa_ext_image_descriptor_v2_t* image_descriptor,
const void* image_data,
hsa_access_permission_t access_permission,
hsa_ext_image_t* image) {
return rocr::core::Runtime::runtime_singleton_->extensions_.image_api
.hsa_ext_image_create_v2_fn(agent, image_descriptor, image_data,
access_permission, image);
}
hsa_status_t hsa_ext_image_destroy_v2(hsa_agent_t agent, hsa_ext_image_t image) {
return rocr::core::Runtime::runtime_singleton_->extensions_.image_api
.hsa_ext_image_destroy_v2_fn(agent, image);
}
hsa_status_t hsa_ext_image_mipmap_array_get_level(hsa_agent_t agent,
const hsa_ext_image_t* mipmap_array,
uint32_t mip_level,
hsa_ext_image_t* level_view) {
return rocr::core::Runtime::runtime_singleton_->extensions_.image_api
.hsa_ext_image_mipmap_array_get_level_fn(agent, mipmap_array, mip_level,
level_view);
}
hsa_status_t HSA_API hsa_ven_amd_pcs_iterate_configuration(
hsa_agent_t agent, hsa_ven_amd_pcs_iterate_configuration_callback_t configuration_callback,
void* callback_data) {