diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index a00721a2f86..3d79747fb7f 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -1067,6 +1067,12 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr if (result != VK_SUCCESS) goto fail_cache; + if (device->physical_device->rad_info.gfx_level == GFX11 && device->physical_device->rad_info.has_dedicated_vram && + device->instance->drirc.force_pstate_peak_gfx11_dgpu) { + if (!radv_device_acquire_performance_counters(device)) + fprintf(stderr, "radv: failed to set pstate to profile_peak.\n"); + } + *pDevice = radv_device_to_handle(device); return VK_SUCCESS; diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index 89e3b36c90f..bc67613a902 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -162,6 +162,7 @@ static const driOptionDescription radv_dri_options[] = { DRI_CONF_RADV_FLUSH_BEFORE_TIMESTAMP_WRITE(false) DRI_CONF_RADV_RT_WAVE64(false) DRI_CONF_RADV_LEGACY_SPARSE_BINDING(false) + DRI_CONF_RADV_FORCE_PSTATE_PEAK_GFX11_DGPU(false) DRI_CONF_DUAL_COLOR_BLEND_BY_LOCATION(false) DRI_CONF_RADV_OVERRIDE_GRAPHICS_SHADER_VERSION(0) DRI_CONF_RADV_OVERRIDE_COMPUTE_SHADER_VERSION(0) @@ -240,6 +241,9 @@ radv_init_dri_options(struct radv_instance *instance) instance->drirc.legacy_sparse_binding = driQueryOptionb(&instance->drirc.options, "radv_legacy_sparse_binding"); + instance->drirc.force_pstate_peak_gfx11_dgpu = + driQueryOptionb(&instance->drirc.options, "radv_force_pstate_peak_gfx11_dgpu"); + instance->drirc.override_graphics_shader_version = driQueryOptioni(&instance->drirc.options, "radv_override_graphics_shader_version"); instance->drirc.override_compute_shader_version = diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 355d484e588..0f88f49cadd 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -419,6 +419,7 @@ struct radv_instance { bool force_rt_wave64; bool dual_color_blend_by_location; bool legacy_sparse_binding; + bool force_pstate_peak_gfx11_dgpu; bool clear_lds; bool enable_dgc; bool enable_khr_present_wait; diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf index c19f895b533..b451e214976 100644 --- a/src/util/00-radv-defaults.conf +++ b/src/util/00-radv-defaults.conf @@ -163,6 +163,10 @@ Application bugs worked around in this file: