[PATCH vkd3d v4 3/3] vkd3d-shader/spirv: Support UAV counter descriptor arrays.

Henri Verbeet hverbeet at gmail.com
Wed Dec 15 12:27:55 CST 2021


On Fri, 3 Dec 2021 at 09:59, Conor McCarthy <cmccarthy at codeweavers.com> wrote:
> @@ -8903,6 +8883,23 @@ static void vkd3d_dxbc_compiler_emit_uav_counter_instruction(struct vkd3d_dxbc_c
>      }
>      else
>      {
> +        if (resource_symbol->info.resource.uav_counter_array)
> +        {
> +            const struct vkd3d_symbol_descriptor_array_data *array_data;
> +            uint32_t index_id;
> +
> +            index_id = vkd3d_dxbc_compiler_get_descriptor_index(compiler, &src->reg,
> +                    resource_symbol->info.resource.uav_counter_array,
> +                    resource_symbol->info.resource.uav_counter_base_idx,
> +                    resource_symbol->info.resource.resource_type_info->resource_type);
> +
> +            array_data = &resource_symbol->info.resource.uav_counter_array->info.descriptor_array;
> +            ptr_type_id = vkd3d_spirv_get_op_type_pointer(builder, array_data->storage_class,
> +                    array_data->contained_type_id);
> +
> +            counter_id = vkd3d_spirv_build_op_access_chain(builder, ptr_type_id, counter_id, &index_id, 1);
> +        }
> +
Should that apply to the "ssbo_uavs" path above as well?



More information about the wine-devel mailing list