removing starting_slot argument

This commit is contained in:
2025-02-22 00:27:47 +01:00
parent b5abfe1589
commit 3a598ab887
12 changed files with 39 additions and 47 deletions

View File

@@ -34,7 +34,7 @@ void VulkanDestroyComputePass(PulseDevice device, PulseComputePass pass)
free(pass);
}
void VulkanBindStorageBuffers(PulseComputePass pass, uint32_t starting_slot, const PulseBuffer* buffers, uint32_t num_buffers)
void VulkanBindStorageBuffers(PulseComputePass pass, const PulseBuffer* buffers, uint32_t num_buffers)
{
PulseBufferUsageFlags usage = buffers[0]->usage;
bool is_readwrite = (usage & PULSE_BUFFER_USAGE_STORAGE_WRITE) != 0;
@@ -58,9 +58,9 @@ void VulkanBindStorageBuffers(PulseComputePass pass, uint32_t starting_slot, con
return;
}
if(array[starting_slot + i] == buffers[i])
if(array[i] == buffers[i])
continue;
array[starting_slot + i] = buffers[i];
array[i] = buffers[i];
if(is_readwrite)
vulkan_pass->should_recreate_write_descriptor_sets = true;
@@ -73,7 +73,7 @@ void VulkanBindUniformData(PulseComputePass pass, uint32_t slot, const void* dat
{
}
void VulkanBindStorageImages(PulseComputePass pass, uint32_t starting_slot, const PulseImage* images, uint32_t num_images)
void VulkanBindStorageImages(PulseComputePass pass, const PulseImage* images, uint32_t num_images)
{
PulseImageUsageFlags usage = images[0]->usage;
bool is_readwrite = (usage & PULSE_IMAGE_USAGE_STORAGE_WRITE) != 0;
@@ -97,9 +97,9 @@ void VulkanBindStorageImages(PulseComputePass pass, uint32_t starting_slot, cons
return;
}
if(array[starting_slot + i] == images[i])
if(array[i] == images[i])
continue;
array[starting_slot + i] = images[i];
array[i] = images[i];
if((usage & PULSE_IMAGE_USAGE_STORAGE_WRITE) != 0)
vulkan_pass->should_recreate_write_descriptor_sets = true;

View File

@@ -31,9 +31,9 @@ void VulkanDestroyComputePass(PulseDevice device, PulseComputePass pass);
PulseComputePass VulkanBeginComputePass(PulseCommandList cmd);
void VulkanEndComputePass(PulseComputePass pass);
void VulkanBindStorageBuffers(PulseComputePass pass, uint32_t starting_slot, const PulseBuffer* buffers, uint32_t num_buffers);
void VulkanBindStorageBuffers(PulseComputePass pass, const PulseBuffer* buffers, uint32_t num_buffers);
void VulkanBindUniformData(PulseComputePass pass, uint32_t slot, const void* data, uint32_t data_size);
void VulkanBindStorageImages(PulseComputePass pass, uint32_t starting_slot, const PulseImage* images, uint32_t num_images);
void VulkanBindStorageImages(PulseComputePass pass, const PulseImage* images, uint32_t num_images);
void VulkanBindComputePipeline(PulseComputePass pass, PulseComputePipeline pipeline);
void VulkanDispatchComputations(PulseComputePass pass, uint32_t groupcount_x, uint32_t groupcount_y, uint32_t groupcount_z);

View File

@@ -275,8 +275,6 @@ void VulkanBindDescriptorSets(PulseComputePass pass)
for(uint32_t i = 0; i < pass->current_pipeline->num_readonly_storage_images; i++)
{
if(pass->readonly_images[i] == PULSE_NULL_HANDLE)
continue;
VkWriteDescriptorSet* write_descriptor_set = &writes[write_count];
write_descriptor_set->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
@@ -303,8 +301,6 @@ void VulkanBindDescriptorSets(PulseComputePass pass)
for(uint32_t i = 0; i < pass->current_pipeline->num_readonly_storage_buffers; i++)
{
if(pass->readonly_storage_buffers[i] == PULSE_NULL_HANDLE)
continue;
VkWriteDescriptorSet* write_descriptor_set = &writes[write_count];
write_descriptor_set->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
@@ -340,8 +336,6 @@ void VulkanBindDescriptorSets(PulseComputePass pass)
for(uint32_t i = 0; i < pass->current_pipeline->num_readwrite_storage_images; i++)
{
if(pass->readwrite_images[i] == PULSE_NULL_HANDLE)
continue;
VkWriteDescriptorSet* write_descriptor_set = &writes[write_count];
write_descriptor_set->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
@@ -368,8 +362,6 @@ void VulkanBindDescriptorSets(PulseComputePass pass)
for(uint32_t i = 0; i < pass->current_pipeline->num_readwrite_storage_buffers; i++)
{
if(pass->readwrite_storage_buffers[i] == PULSE_NULL_HANDLE)
continue;
VkWriteDescriptorSet* write_descriptor_set = &writes[write_count];
write_descriptor_set->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;

View File

@@ -23,13 +23,13 @@ PULSE_API PulseComputePass PulseBeginComputePass(PulseCommandList cmd)
return pass;
}
PULSE_API void PulseBindStorageBuffers(PulseComputePass pass, uint32_t starting_slot, const PulseBuffer* buffers, uint32_t num_buffers)
PULSE_API void PulseBindStorageBuffers(PulseComputePass pass, const PulseBuffer* buffers, uint32_t num_buffers)
{
PULSE_CHECK_HANDLE(pass);
PULSE_CHECK_COMMAND_LIST_STATE(pass->cmd);
pass->cmd->device->PFN_BindStorageBuffers(pass, starting_slot, buffers, num_buffers);
pass->cmd->device->PFN_BindStorageBuffers(pass, buffers, num_buffers);
}
PULSE_API void PulseBindUniformData(PulseComputePass pass, uint32_t slot, const void* data, uint32_t data_size)
@@ -41,13 +41,13 @@ PULSE_API void PulseBindUniformData(PulseComputePass pass, uint32_t slot, const
pass->cmd->device->PFN_BindUniformData(pass, slot, data, data_size);
}
PULSE_API void PulseBindStorageImages(PulseComputePass pass, uint32_t starting_slot, const PulseImage* images, uint32_t num_images)
PULSE_API void PulseBindStorageImages(PulseComputePass pass, const PulseImage* images, uint32_t num_images)
{
PULSE_CHECK_HANDLE(pass);
PULSE_CHECK_COMMAND_LIST_STATE(pass->cmd);
pass->cmd->device->PFN_BindStorageImages(pass, starting_slot, images, num_images);
pass->cmd->device->PFN_BindStorageImages(pass, images, num_images);
}
PULSE_API void PulseBindComputePipeline(PulseComputePass pass, PulseComputePipeline pipeline)

View File

@@ -36,9 +36,9 @@ typedef bool (*PulseCopyBufferToImageFN)(PulseCommandList, const PulseBufferRegi
typedef bool (*PulseCopyImageToBufferPFN)(PulseCommandList, const PulseImageRegion*, const PulseBufferRegion*);
typedef bool (*PulseBlitImagePFN)(PulseCommandList, const PulseImageRegion*, const PulseImageRegion*);
typedef PulseComputePass (*PulseBeginComputePassPFN)(PulseCommandList);
typedef void (*PulseBindStorageBuffersPFN)(PulseComputePass, uint32_t, const PulseBuffer*, uint32_t);
typedef void (*PulseBindStorageBuffersPFN)(PulseComputePass, const PulseBuffer*, uint32_t);
typedef void (*PulseBindUniformDataPFN)(PulseComputePass, uint32_t, const void*, uint32_t);
typedef void (*PulseBindStorageImagesPFN)(PulseComputePass, uint32_t, const PulseImage*, uint32_t);
typedef void (*PulseBindStorageImagesPFN)(PulseComputePass, const PulseImage*, uint32_t);
typedef void (*PulseBindComputePipelinePFN)(PulseComputePass, PulseComputePipeline);
typedef void (*PulseEndComputePassPFN)(PulseComputePass);