pvr: Pass device info struct in pds generator.

Fixes a potential NULL pointer dereference.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16897>
This commit is contained in:
Rajnesh Kanwal 2022-05-16 14:26:43 +01:00
parent b24216c52d
commit 86f703e7b1
2 changed files with 5 additions and 3 deletions

View File

@ -715,8 +715,8 @@ uint32_t *pvr_pds_vertex_shader_sa(
const struct pvr_device_info *dev_info);
/* Pixel Event */
#define pvr_pds_set_sizes_pixel_event(X) \
pvr_pds_generate_pixel_event(X, NULL, PDS_GENERATE_SIZES, NULL)
#define pvr_pds_set_sizes_pixel_event(X, Y) \
pvr_pds_generate_pixel_event(X, NULL, PDS_GENERATE_SIZES, Y)
#define pvr_pds_generate_pixel_event_data_segment(X, Y, Z) \
pvr_pds_generate_pixel_event(X, Y, PDS_GENERATE_DATA_SEGMENT, Z)

View File

@ -1001,6 +1001,7 @@ static VkResult pvr_device_init_compute_fence_program(struct pvr_device *device)
* pvr_srv_setup_static_pixel_event_program().
*/
static void pvr_device_get_pixel_event_pds_program_data_size(
const struct pvr_device_info *dev_info,
uint32_t *const data_size_in_dwords_out)
{
struct pvr_pds_event_program program = {
@ -1008,7 +1009,7 @@ static void pvr_device_get_pixel_event_pds_program_data_size(
.num_emit_word_pairs = 0,
};
pvr_pds_set_sizes_pixel_event(&program);
pvr_pds_set_sizes_pixel_event(&program, dev_info);
*data_size_in_dwords_out = program.data_size;
}
@ -1177,6 +1178,7 @@ VkResult pvr_CreateDevice(VkPhysicalDevice physicalDevice,
* on each kick.
*/
pvr_device_get_pixel_event_pds_program_data_size(
&pdevice->dev_info,
&device->pixel_event_data_size_in_dwords);
device->global_queue_job_count = 0;