mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-15 19:58:31 +02:00
radv: add support for VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
This stores the VA/size of the indirect buffer to be used in vkCmdUpdatePipelineIndirectBufferNV. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27495>
This commit is contained in:
parent
6d8f88d12f
commit
91c21c8cba
2 changed files with 13 additions and 0 deletions
|
|
@ -317,6 +317,14 @@ radv_compute_pipeline_create(VkDevice _device, VkPipelineCache _cache, const VkC
|
|||
|
||||
radv_compute_pipeline_init(device, pipeline, pipeline_layout, pipeline->base.shaders[MESA_SHADER_COMPUTE]);
|
||||
|
||||
if (pipeline->base.create_flags & VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV) {
|
||||
const VkComputePipelineIndirectBufferInfoNV *indirect_buffer =
|
||||
vk_find_struct_const(pCreateInfo->pNext, COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV);
|
||||
|
||||
pipeline->indirect.va = indirect_buffer->deviceAddress;
|
||||
pipeline->indirect.size = indirect_buffer->size;
|
||||
}
|
||||
|
||||
*pPipeline = radv_pipeline_to_handle(&pipeline->base);
|
||||
radv_rmv_log_compute_pipeline_create(device, &pipeline->base, pipeline->base.is_internal);
|
||||
return VK_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -2341,6 +2341,11 @@ struct radv_graphics_pipeline {
|
|||
|
||||
struct radv_compute_pipeline {
|
||||
struct radv_pipeline base;
|
||||
|
||||
struct {
|
||||
uint64_t va;
|
||||
uint64_t size;
|
||||
} indirect;
|
||||
};
|
||||
|
||||
struct radv_ray_tracing_group {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue