Focused on getting the basic UBO and SSBO cases implemented. So no dynamic offset, push contanst, samplers, and so on.
This include a initial implementation for CreatedescriptorPool, CreateDescriptorSetLayout, AllocateDescriptorSets, UpdateDescriptorSets, CreatePipelineLayout, and CmdBindDescriptorSets.
Also introduces lowering vulkan intrinsics. For now just
We also introduce a descriptor_map, in this case for the ubos and ssbos, used to assign a index for each set/binding combination, that would be used when filling back the details of the ubo or ssbo on other places (like QUNIFORM_UBO_ADDR or QUNIFORM_SSBO_OFFSET).
Note that at this point we don't need a bo for the descriptor pool, so descriptor sets are not getting a piece of it. That would likely change as we start to support more descriptor set types.
9afd24f89a6 v3dv: initial descriptor set support
src/broadcom/vulkan/v3dv_cl.h | 10 +
src/broadcom/vulkan/v3dv_cmd_buffer.c | 32 ++-
src/broadcom/vulkan/v3dv_descriptor_set.c | 443 +++++++++++++++++++++++++++++-
src/broadcom/vulkan/v3dv_device.c | 6 +-
src/broadcom/vulkan/v3dv_pipeline.c | 141 ++++++++++
src/broadcom/vulkan/v3dv_private.h | 95 +++++++
src/broadcom/vulkan/v3dv_uniforms.c | 56 ++++
7 files changed, 776 insertions(+), 7 deletions(-)