radv: move gs_table_depth to the physical_device

This is not a logical device property.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16603>
This commit is contained in:
Samuel Pitoiset
2022-05-18 14:57:01 +02:00
committed by Marge Bot
parent 6c44e25078
commit 7fb4849314
3 changed files with 6 additions and 11 deletions

View File

@@ -824,6 +824,9 @@ radv_physical_device_try_create(struct radv_instance *instance, drmDevicePtr drm
goto fail_disk_cache;
}
device->gs_table_depth =
ac_get_gs_table_depth(device->rad_info.gfx_level, device->rad_info.family);
*device_out = device;
return VK_SUCCESS;
@@ -2735,13 +2738,6 @@ radv_queue_finish(struct radv_queue *queue)
vk_queue_finish(&queue->vk);
}
static void
radv_device_init_gs_info(struct radv_device *device)
{
device->gs_table_depth = ac_get_gs_table_depth(device->physical_device->rad_info.gfx_level,
device->physical_device->rad_info.family);
}
static VkResult
radv_device_init_border_color(struct radv_device *device)
{
@@ -3342,8 +3338,6 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
device->dispatch_initiator |= S_00B800_ORDER_MODE(1);
}
radv_device_init_gs_info(device);
ac_get_hs_info(&device->physical_device->rad_info,
&device->hs);

View File

@@ -1472,7 +1472,7 @@ radv_compute_ia_multi_vgt_param_helpers(struct radv_pipeline *pipeline)
/* GS requirement. */
ia_multi_vgt_param.partial_es_wave = false;
if (radv_pipeline_has_gs(pipeline) && device->physical_device->rad_info.gfx_level <= GFX8)
if (SI_GS_PER_ES / ia_multi_vgt_param.primgroup_size >= pipeline->device->gs_table_depth - 3)
if (SI_GS_PER_ES / ia_multi_vgt_param.primgroup_size >= pipeline->device->physical_device->gs_table_depth - 3)
ia_multi_vgt_param.partial_es_wave = true;
ia_multi_vgt_param.ia_switch_on_eoi = false;

View File

@@ -327,6 +327,8 @@ struct radv_physical_device {
enum radv_queue_family vk_queue_to_radv[RADV_MAX_QUEUE_FAMILIES];
uint32_t num_queues;
uint32_t gs_table_depth;
};
struct radv_instance {
@@ -780,7 +782,6 @@ struct radv_device {
/* Number of entries in the task shader ring buffers. */
uint32_t task_num_entries;
uint32_t gs_table_depth;
struct ac_hs_info hs;
/* MSAA sample locations.