diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index d1a8992a83d..c870ac8dfa1 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1217,7 +1217,8 @@ VkResult anv_EnumeratePhysicalDevices( VkPhysicalDevice* pPhysicalDevices) { ANV_FROM_HANDLE(anv_instance, instance, _instance); - VK_OUTARRAY_MAKE(out, pPhysicalDevices, pPhysicalDeviceCount); + VK_OUTARRAY_MAKE_TYPED(VkPhysicalDevice, out, + pPhysicalDevices, pPhysicalDeviceCount); VkResult result = anv_enumerate_physical_devices(instance); if (result != VK_SUCCESS) @@ -1225,7 +1226,7 @@ VkResult anv_EnumeratePhysicalDevices( list_for_each_entry(struct anv_physical_device, pdevice, &instance->physical_devices, link) { - vk_outarray_append(&out, i) { + vk_outarray_append_typed(VkPhysicalDevice, &out, i) { *i = anv_physical_device_to_handle(pdevice); } } @@ -1239,8 +1240,9 @@ VkResult anv_EnumeratePhysicalDeviceGroups( VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { ANV_FROM_HANDLE(anv_instance, instance, _instance); - VK_OUTARRAY_MAKE(out, pPhysicalDeviceGroupProperties, - pPhysicalDeviceGroupCount); + VK_OUTARRAY_MAKE_TYPED(VkPhysicalDeviceGroupProperties, out, + pPhysicalDeviceGroupProperties, + pPhysicalDeviceGroupCount); VkResult result = anv_enumerate_physical_devices(instance); if (result != VK_SUCCESS) @@ -1248,7 +1250,7 @@ VkResult anv_EnumeratePhysicalDeviceGroups( list_for_each_entry(struct anv_physical_device, pdevice, &instance->physical_devices, link) { - vk_outarray_append(&out, p) { + vk_outarray_append_typed(VkPhysicalDeviceGroupProperties, &out, p) { p->physicalDeviceCount = 1; memset(p->physicalDevices, 0, sizeof(p->physicalDevices)); p->physicalDevices[0] = anv_physical_device_to_handle(pdevice); @@ -2636,11 +2638,12 @@ void anv_GetPhysicalDeviceQueueFamilyProperties2( VkQueueFamilyProperties2* pQueueFamilyProperties) { ANV_FROM_HANDLE(anv_physical_device, pdevice, physicalDevice); - VK_OUTARRAY_MAKE(out, pQueueFamilyProperties, pQueueFamilyPropertyCount); + VK_OUTARRAY_MAKE_TYPED(VkQueueFamilyProperties2, out, + pQueueFamilyProperties, pQueueFamilyPropertyCount); for (uint32_t i = 0; i < pdevice->queue.family_count; i++) { struct anv_queue_family *queue_family = &pdevice->queue.families[i]; - vk_outarray_append(&out, p) { + vk_outarray_append_typed(VkQueueFamilyProperties2, &out, p) { p->queueFamilyProperties = anv_queue_family_properties_template; p->queueFamilyProperties.queueFlags = queue_family->queueFlags; p->queueFamilyProperties.queueCount = queue_family->queueCount; @@ -4533,10 +4536,10 @@ VkResult anv_GetPhysicalDeviceCalibrateableTimeDomainsEXT( VkTimeDomainEXT *pTimeDomains) { int d; - VK_OUTARRAY_MAKE(out, pTimeDomains, pTimeDomainCount); + VK_OUTARRAY_MAKE_TYPED(VkTimeDomainEXT, out, pTimeDomains, pTimeDomainCount); for (d = 0; d < ARRAY_SIZE(anv_time_domains); d++) { - vk_outarray_append(&out, i) { + vk_outarray_append_typed(VkTimeDomainEXT, &out, i) { *i = anv_time_domains[d]; } } @@ -4741,17 +4744,18 @@ VkResult anv_GetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) { ANV_FROM_HANDLE(anv_physical_device, physical_device, physicalDevice); - VK_OUTARRAY_MAKE(out, pFragmentShadingRates, pFragmentShadingRateCount); + VK_OUTARRAY_MAKE_TYPED(VkPhysicalDeviceFragmentShadingRateKHR, out, + pFragmentShadingRates, pFragmentShadingRateCount); -#define append_rate(_samples, _width, _height) \ - do { \ - vk_outarray_append(&out, __r) { \ - __r->sampleCounts = _samples; \ - __r->fragmentSize = (VkExtent2D) { \ - .width = _width, \ - .height = _height, \ - }; \ - } \ +#define append_rate(_samples, _width, _height) \ + do { \ + vk_outarray_append_typed(VkPhysicalDeviceFragmentShadingRateKHR, &out, __r) { \ + __r->sampleCounts = _samples; \ + __r->fragmentSize = (VkExtent2D) { \ + .width = _width, \ + .height = _height, \ + }; \ + } \ } while (0) VkSampleCountFlags sample_counts = diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index 5343433bd00..636e929508f 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -869,8 +869,9 @@ get_drm_format_modifier_properties_list(const struct anv_physical_device *physic const struct intel_device_info *devinfo = &physical_device->info; const struct anv_format *anv_format = anv_get_format(vk_format); - VK_OUTARRAY_MAKE(out, list->pDrmFormatModifierProperties, - &list->drmFormatModifierCount); + VK_OUTARRAY_MAKE_TYPED(VkDrmFormatModifierPropertiesEXT, out, + list->pDrmFormatModifierProperties, + &list->drmFormatModifierCount); isl_drm_modifier_info_for_each(isl_mod_info) { VkFormatFeatureFlags2KHR features2 = @@ -885,7 +886,7 @@ get_drm_format_modifier_properties_list(const struct anv_physical_device *physic if (isl_mod_info->aux_usage != ISL_AUX_USAGE_NONE) ++planes; - vk_outarray_append(&out, out_props) { + vk_outarray_append_typed(VkDrmFormatModifierPropertiesEXT, &out, out_props) { *out_props = (VkDrmFormatModifierPropertiesEXT) { .drmFormatModifier = isl_mod_info->modifier, .drmFormatModifierPlaneCount = planes, @@ -903,8 +904,9 @@ get_drm_format_modifier_properties_list_2(const struct anv_physical_device *phys const struct intel_device_info *devinfo = &physical_device->info; const struct anv_format *anv_format = anv_get_format(vk_format); - VK_OUTARRAY_MAKE(out, list->pDrmFormatModifierProperties, - &list->drmFormatModifierCount); + VK_OUTARRAY_MAKE_TYPED(VkDrmFormatModifierProperties2EXT, out, + list->pDrmFormatModifierProperties, + &list->drmFormatModifierCount); isl_drm_modifier_info_for_each(isl_mod_info) { VkFormatFeatureFlags2KHR features2 = @@ -918,7 +920,7 @@ get_drm_format_modifier_properties_list_2(const struct anv_physical_device *phys if (isl_mod_info->aux_usage != ISL_AUX_USAGE_NONE) ++planes; - vk_outarray_append(&out, out_props) { + vk_outarray_append_typed(VkDrmFormatModifierProperties2EXT, &out, out_props) { *out_props = (VkDrmFormatModifierProperties2EXT) { .drmFormatModifier = isl_mod_info->modifier, .drmFormatModifierPlaneCount = planes, diff --git a/src/intel/vulkan/anv_perf.c b/src/intel/vulkan/anv_perf.c index e7bf30bb059..0af1dd41d41 100644 --- a/src/intel/vulkan/anv_perf.c +++ b/src/intel/vulkan/anv_perf.c @@ -346,13 +346,14 @@ VkResult anv_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( uint32_t desc_count = *pCounterCount; - VK_OUTARRAY_MAKE(out, pCounters, pCounterCount); - VK_OUTARRAY_MAKE(out_desc, pCounterDescriptions, &desc_count); + VK_OUTARRAY_MAKE_TYPED(VkPerformanceCounterKHR, out, pCounters, pCounterCount); + VK_OUTARRAY_MAKE_TYPED(VkPerformanceCounterDescriptionKHR, out_desc, + pCounterDescriptions, &desc_count); for (int c = 0; c < (perf ? perf->n_counters : 0); c++) { const struct intel_perf_query_counter *intel_counter = perf->counter_infos[c].counter; - vk_outarray_append(&out, counter) { + vk_outarray_append_typed(VkPerformanceCounterKHR, &out, counter) { counter->unit = intel_perf_counter_unit_to_vk_unit[intel_counter->units]; counter->scope = VK_QUERY_SCOPE_COMMAND_KHR; counter->storage = intel_perf_counter_data_type_to_vk_storage[intel_counter->data_type]; @@ -364,7 +365,7 @@ VkResult anv_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( memcpy(counter->uuid, sha1_result, sizeof(counter->uuid)); } - vk_outarray_append(&out_desc, desc) { + vk_outarray_append_typed(VkPerformanceCounterDescriptionKHR, &out_desc, desc) { desc->flags = 0; /* None so far. */ snprintf(desc->name, sizeof(desc->name), "%s", intel_counter->name); snprintf(desc->category, sizeof(desc->category), "%s", intel_counter->category); diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index c0b147e0587..459f376f521 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -3186,10 +3186,11 @@ VkResult anv_GetPipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR* pProperties) { ANV_FROM_HANDLE(anv_pipeline, pipeline, pPipelineInfo->pipeline); - VK_OUTARRAY_MAKE(out, pProperties, pExecutableCount); + VK_OUTARRAY_MAKE_TYPED(VkPipelineExecutablePropertiesKHR, out, + pProperties, pExecutableCount); util_dynarray_foreach (&pipeline->executables, struct anv_pipeline_executable, exe) { - vk_outarray_append(&out, props) { + vk_outarray_append_typed(VkPipelineExecutablePropertiesKHR, &out, props) { gl_shader_stage stage = exe->stage; props->stages = mesa_to_vk_shader_stage(stage); @@ -3233,7 +3234,8 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( VkPipelineExecutableStatisticKHR* pStatistics) { ANV_FROM_HANDLE(anv_pipeline, pipeline, pExecutableInfo->pipeline); - VK_OUTARRAY_MAKE(out, pStatistics, pStatisticCount); + VK_OUTARRAY_MAKE_TYPED(VkPipelineExecutableStatisticKHR, out, + pStatistics, pStatisticCount); const struct anv_pipeline_executable *exe = anv_pipeline_get_executable(pipeline, pExecutableInfo->executableIndex); @@ -3252,7 +3254,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( unreachable("invalid pipeline type"); } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Instruction Count"); WRITE_STR(stat->description, "Number of GEN instructions in the final generated " @@ -3261,7 +3263,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.instructions; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "SEND Count"); WRITE_STR(stat->description, "Number of instructions in the final generated shader " @@ -3271,7 +3273,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.sends; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Loop Count"); WRITE_STR(stat->description, "Number of loops (not unrolled) in the final generated " @@ -3280,7 +3282,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.loops; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Cycle Count"); WRITE_STR(stat->description, "Estimate of the number of EU cycles required to execute " @@ -3290,7 +3292,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.cycles; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Spill Count"); WRITE_STR(stat->description, "Number of scratch spill operations. This gives a rough " @@ -3301,7 +3303,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.spills; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Fill Count"); WRITE_STR(stat->description, "Number of scratch fill operations. This gives a rough " @@ -3312,7 +3314,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.fills; } - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Scratch Memory Size"); WRITE_STR(stat->description, "Number of bytes of scratch memory required by the " @@ -3324,7 +3326,7 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( } if (gl_shader_stage_uses_workgroup(exe->stage)) { - vk_outarray_append(&out, stat) { + vk_outarray_append_typed(VkPipelineExecutableStatisticKHR, &out, stat) { WRITE_STR(stat->name, "Workgroup Memory Size"); WRITE_STR(stat->description, "Number of bytes of workgroup shared memory used by this " @@ -3365,15 +3367,15 @@ VkResult anv_GetPipelineExecutableInternalRepresentationsKHR( VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) { ANV_FROM_HANDLE(anv_pipeline, pipeline, pExecutableInfo->pipeline); - VK_OUTARRAY_MAKE(out, pInternalRepresentations, - pInternalRepresentationCount); + VK_OUTARRAY_MAKE_TYPED(VkPipelineExecutableInternalRepresentationKHR, out, + pInternalRepresentations, pInternalRepresentationCount); bool incomplete_text = false; const struct anv_pipeline_executable *exe = anv_pipeline_get_executable(pipeline, pExecutableInfo->executableIndex); if (exe->nir) { - vk_outarray_append(&out, ir) { + vk_outarray_append_typed(VkPipelineExecutableInternalRepresentationKHR, &out, ir) { WRITE_STR(ir->name, "Final NIR"); WRITE_STR(ir->description, "Final NIR before going into the back-end compiler"); @@ -3384,7 +3386,7 @@ VkResult anv_GetPipelineExecutableInternalRepresentationsKHR( } if (exe->disasm) { - vk_outarray_append(&out, ir) { + vk_outarray_append_typed(VkPipelineExecutableInternalRepresentationKHR, &out, ir) { WRITE_STR(ir->name, "GEN Assembly"); WRITE_STR(ir->description, "Final GEN assembly for the generated shader binary");