diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 25e107f9e47..0b5575ed4f0 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -853,7 +853,6 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info, info->max_sa_per_se = amdinfo->num_shader_arrays_per_engine; info->uvd_fw_version = info->ip[AMD_IP_UVD].num_queues ? uvd_version : 0; info->vce_fw_version = info->ip[AMD_IP_VCE].num_queues ? vce_version : 0; - info->has_video_hw.uvd_decode = info->ip[AMD_IP_UVD].num_queues != 0; /* Based on MemoryOpsPerClockTable from PAL. */ switch (info->vram_type) { @@ -1478,7 +1477,6 @@ void ac_print_gpu_info(struct radeon_info *info, FILE *f) fprintf(f, " pfp_fw_feature = %i\n", info->pfp_fw_feature); fprintf(f, "Multimedia info:\n"); - fprintf(f, " uvd_decode = %u\n", info->has_video_hw.uvd_decode); fprintf(f, " jpeg_decode = %u\n", info->has_video_hw.jpeg_decode); fprintf(f, " vce_encode = %u\n", info->has_video_hw.vce_encode); fprintf(f, " uvd_encode = %u\n", info->has_video_hw.uvd_encode); diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index d6c368bcf59..ec116dcd6b7 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -156,7 +156,6 @@ struct radeon_info { /* Multimedia info. */ struct { - bool uvd_decode; bool vcn_decode; bool jpeg_decode; bool vce_encode; diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index ecdc05cdb59..51afc188595 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -157,7 +157,7 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, r600_init_blit_functions(rctx); - if (rscreen->b.info.has_video_hw.uvd_decode) { + if (rscreen->b.info.ip[AMD_IP_UVD].num_queues) { rctx->b.b.create_video_codec = r600_uvd_create_decoder; rctx->b.b.create_video_buffer = r600_video_buffer_create; } else { diff --git a/src/gallium/drivers/r600/r600_pipe_common.c b/src/gallium/drivers/r600/r600_pipe_common.c index d9096763cbc..199bd4a2a8c 100644 --- a/src/gallium/drivers/r600/r600_pipe_common.c +++ b/src/gallium/drivers/r600/r600_pipe_common.c @@ -1247,7 +1247,7 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen, rscreen->b.resource_from_user_memory = r600_buffer_from_user_memory; rscreen->b.query_memory_info = r600_query_memory_info; - if (rscreen->info.has_video_hw.uvd_decode) { + if (rscreen->info.ip[AMD_IP_UVD].num_queues) { rscreen->b.get_video_param = rvid_get_video_param; rscreen->b.is_video_format_supported = rvid_is_format_supported; } else { @@ -1295,7 +1295,7 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen, printf("has_dedicated_vram = %u\n", rscreen->info.has_dedicated_vram); printf("r600_has_virtual_memory = %i\n", rscreen->info.r600_has_virtual_memory); printf("gfx_ib_pad_with_type2 = %i\n", rscreen->info.gfx_ib_pad_with_type2); - printf("uvd_decode = %u\n", rscreen->info.has_video_hw.uvd_decode); + printf("ip[AMD_IP_UVD] = %u\n", rscreen->info.ip[AMD_IP_UVD].num_queues); printf("ip[AMD_IP_SDMA] = %i\n", rscreen->info.ip[AMD_IP_SDMA].num_queues); printf("ip[AMD_IP_COMPUTE] = %u\n", rscreen->info.ip[AMD_IP_COMPUTE].num_queues); printf("uvd_fw_version = %u\n", rscreen->info.uvd_fw_version); diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 33f7fc51d93..e6fac220883 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -639,7 +639,7 @@ static int si_get_video_param(struct pipe_screen *screen, enum pipe_video_profil sscreen->info.family >= CHIP_NAVI24) return false; if (codec != PIPE_VIDEO_FORMAT_JPEG && - !(sscreen->info.has_video_hw.uvd_decode || + !(sscreen->info.ip[AMD_IP_UVD].num_queues || sscreen->info.has_video_hw.vcn_decode)) return false; @@ -1051,7 +1051,7 @@ void si_init_screen_get_functions(struct si_screen *sscreen) sscreen->b.query_memory_info = si_query_memory_info; sscreen->b.get_disk_shader_cache = si_get_disk_shader_cache; - if (sscreen->info.has_video_hw.uvd_decode || sscreen->info.has_video_hw.vcn_decode || + if (sscreen->info.ip[AMD_IP_UVD].num_queues || sscreen->info.has_video_hw.vcn_decode || sscreen->info.has_video_hw.jpeg_decode || sscreen->info.has_video_hw.vce_encode || sscreen->info.has_video_hw.uvd_encode || sscreen->info.has_video_hw.vcn_encode) { sscreen->b.get_video_param = si_get_video_param; diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index c8fc1bdcc3d..03a8bc407e7 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -684,7 +684,7 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign sctx->sample_mask = 0xffff; /* Initialize multimedia functions. */ - if (sscreen->info.has_video_hw.uvd_decode || sscreen->info.has_video_hw.vcn_decode || + if (sscreen->info.ip[AMD_IP_UVD].num_queues || sscreen->info.has_video_hw.vcn_decode || sscreen->info.has_video_hw.jpeg_decode || sscreen->info.has_video_hw.vce_encode || sscreen->info.has_video_hw.uvd_encode || sscreen->info.has_video_hw.vcn_encode) { sctx->b.create_video_codec = si_uvd_create_decoder; diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index d352337a00a..73510b582b4 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -313,14 +313,12 @@ static bool do_winsys_init(struct radeon_drm_winsys *ws) } /* Check for UVD and VCE */ - ws->info.has_video_hw.uvd_decode = false; ws->info.has_video_hw.vce_encode = false; ws->info.vce_fw_version = 0x00000000; if (ws->info.drm_minor >= 32) { uint32_t value = RADEON_CS_RING_UVD; if (radeon_get_drm_value(ws->fd, RADEON_INFO_RING_WORKING, "UVD Ring working", &value)) { - ws->info.has_video_hw.uvd_decode = value; ws->info.ip[AMD_IP_UVD].num_queues = 1; }