diff --git a/src/intel/perf/intel_perf.c b/src/intel/perf/intel_perf.c index 50a3a226d5c..ab3e7a433fc 100644 --- a/src/intel/perf/intel_perf.c +++ b/src/intel/perf/intel_perf.c @@ -1536,8 +1536,10 @@ intel_perf_init_metrics(struct intel_perf_config *perf_cfg, load_oa_metrics(perf_cfg, drm_fd, devinfo); /* sort query groups by name */ - qsort(perf_cfg->queries, perf_cfg->n_queries, - sizeof(perf_cfg->queries[0]), intel_perf_compare_query_names); + if (perf_cfg->queries != NULL) { + qsort(perf_cfg->queries, perf_cfg->n_queries, + sizeof(perf_cfg->queries[0]), intel_perf_compare_query_names); + } build_unique_counter_list(perf_cfg); diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 6dd7e5740e2..bab5808cdd2 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -693,7 +693,10 @@ VkResult anv_CreateDescriptorSetLayout( } /* Initialize all samplers to 0 */ - memset(samplers, 0, immutable_sampler_count * sizeof(*samplers)); + assert((samplers == NULL) == (immutable_sampler_count == 0)); + if (samplers != NULL) { + memset(samplers, 0, immutable_sampler_count * sizeof(*samplers)); + } uint32_t buffer_view_count = 0; uint32_t dynamic_offset_count = 0; @@ -2699,20 +2702,27 @@ void anv_UpdateDescriptorSets( * - RENDER_SURFACE_STATE * - SAMPLER_STATE */ - memcpy(dst->desc_surface_mem.map + - dst_layout->descriptor_surface_offset + - (copy->dstArrayElement + j) * dst_layout->descriptor_surface_stride, - src->desc_surface_mem.map + - src_layout->descriptor_surface_offset + - (copy->srcArrayElement + j) * src_layout->descriptor_surface_stride, - copy_surface_element_size); - memcpy(dst->desc_sampler_mem.map + - dst_layout->descriptor_sampler_offset + - (copy->dstArrayElement + j) * dst_layout->descriptor_sampler_stride, - src->desc_sampler_mem.map + - src_layout->descriptor_sampler_offset + - (copy->srcArrayElement + j) * src_layout->descriptor_sampler_stride, - copy_sampler_element_size); + assert((dst->desc_surface_mem.map == NULL) == (src->desc_surface_mem.map == NULL)); + if (dst->desc_surface_mem.map) { + memcpy(dst->desc_surface_mem.map + + dst_layout->descriptor_surface_offset + + (copy->dstArrayElement + j) * dst_layout->descriptor_surface_stride, + src->desc_surface_mem.map + + src_layout->descriptor_surface_offset + + (copy->srcArrayElement + j) * src_layout->descriptor_surface_stride, + copy_surface_element_size); + } + + assert((dst->desc_sampler_mem.map == NULL) == (src->desc_sampler_mem.map == NULL)); + if (dst->desc_sampler_mem.map) { + memcpy(dst->desc_sampler_mem.map + + dst_layout->descriptor_sampler_offset + + (copy->dstArrayElement + j) * dst_layout->descriptor_sampler_stride, + src->desc_sampler_mem.map + + src_layout->descriptor_sampler_offset + + (copy->srcArrayElement + j) * src_layout->descriptor_sampler_stride, + copy_sampler_element_size); + } /* Copy the CPU side data anv_descriptor */ *dst_desc = *src_desc; diff --git a/src/intel/vulkan/anv_pipeline_cache.c b/src/intel/vulkan/anv_pipeline_cache.c index c958de779ea..2239277b384 100644 --- a/src/intel/vulkan/anv_pipeline_cache.c +++ b/src/intel/vulkan/anv_pipeline_cache.c @@ -287,8 +287,8 @@ anv_shader_bin_create(struct anv_device *device, INTEL_DEBUG(DEBUG_SHADER_PRINT) ? brw_stage_prog_data_printf_string_size(prog_data_in) : 0); - if (!vk_multialloc_alloc(&ma, &device->vk.alloc, - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE)) + if (!vk_multialloc_zalloc(&ma, &device->vk.alloc, + VK_SYSTEM_ALLOCATION_SCOPE_DEVICE)) return NULL; memcpy(obj_key_data, key_data, key_size); @@ -406,14 +406,13 @@ anv_shader_bin_create(struct anv_device *device, typed_memcpy(prog_data_relocs, prog_data_in->relocs, prog_data_in->num_relocs); prog_data->relocs = prog_data_relocs; - memset(prog_data_param, 0, - prog_data->nr_params * sizeof(*prog_data_param)); prog_data->param = prog_data_param; prog_data->printf_info = printf_infos; shader->prog_data = prog_data; shader->prog_data_size = prog_data_size; assert(num_stats <= ARRAY_SIZE(shader->stats)); + assert((stats != NULL) || (num_stats == 0)); typed_memcpy(shader->stats, stats, num_stats); shader->num_stats = num_stats;