Vulkan: Clearing Storage Buffers #105487

Merged
Jeroen Bakker merged 94 commits from Jeroen-Bakker/blender:vulkan-storage-buffer-clear into main 2023-03-17 13:48:50 +01:00
3 changed files with 5 additions and 5 deletions
Showing only changes of commit 83b62f2562 - Show all commits

View File

@ -47,7 +47,7 @@ void GPU_storagebuf_clear_to_zero(GPUStorageBuf *ssbo);
*
* NOTE: clear_data_len must be in range 1 to 4 (inclusive).
*/
void GPU_storagebuf_clear_uint(GPUStorageBuf *ssbo, uint32_t *clear_data, uint8_t clear_data_len);
void GPU_storagebuf_clear_uint(GPUStorageBuf *ssbo, uint32_t *clear_data, int clear_data_len);
/**
* Clear the content of the buffer using the given #clear_data. #clear_data will be used as a
@ -55,7 +55,7 @@ void GPU_storagebuf_clear_uint(GPUStorageBuf *ssbo, uint32_t *clear_data, uint8_
*
* NOTE: clear_data_len must be in range 1 to 4 (inclusive).
*/
void GPU_storagebuf_clear_int(GPUStorageBuf *ssbo, int32_t *clear_data, uint8_t clear_data_len);
void GPU_storagebuf_clear_int(GPUStorageBuf *ssbo, int32_t *clear_data, int clear_data_len);
/**
* Read back content of the buffer to CPU for inspection.

View File

@ -95,13 +95,13 @@ void GPU_storagebuf_clear_to_zero(GPUStorageBuf *ssbo)
GPU_storagebuf_clear_uint(ssbo, &data, 1);
}
void GPU_storagebuf_clear_int(GPUStorageBuf *ssbo, int32_t *clear_data, uint8_t clear_data_len)
void GPU_storagebuf_clear_int(GPUStorageBuf *ssbo, int32_t *clear_data, int clear_data_len)
{
uint32_t *clear_data_uint = static_cast<uint32_t *>(static_cast<void *>(clear_data));
GPU_storagebuf_clear_uint(ssbo, clear_data_uint, clear_data_len);
}
void GPU_storagebuf_clear_uint(GPUStorageBuf *ssbo, uint32_t *clear_data, uint8_t clear_data_len)
void GPU_storagebuf_clear_uint(GPUStorageBuf *ssbo, uint32_t *clear_data, int clear_data_len)
{
BLI_assert(clear_data_len >= 1 && clear_data_len <= 4);
unwrap(ssbo)->clear(blender::Span<uint32_t>(clear_data, clear_data_len));

View File

@ -124,7 +124,7 @@ void GLStorageBuf::clear(Span<uint32_t> data)
}
GLenum internal_format = GL_R32UI;
GLenum format = GL_RED;
GLenum format = GL_RED_INTEGER;
if (data.size() == 1) {
internal_format = GL_R32UI;
format = GL_RED_INTEGER;