add support for storage buffers in vulkan

This commit is contained in:
Greg Wells
2025-07-03 13:30:47 -04:00
parent d9937c2833
commit 665ce6847a
15 changed files with 83 additions and 13 deletions

View File

@@ -63,6 +63,7 @@ gnDeviceFunctions loadFunctionLoaderDeviceFunctions() {
._gnCreateBuffer = checkCreateBuffer,
._gnBufferData = checkBufferData,
._gnBufferSubData = checkBufferSubData,
._gnMapBuffer = checkMapBuffer,
._gnDestroyBuffer = checkDestroyBuffer,
@@ -71,6 +72,7 @@ gnDeviceFunctions loadFunctionLoaderDeviceFunctions() {
._gnDestroyUniformPool = checkDestroyUniformPool,
._gnUpdateBufferUniform = checkUpdateBufferUniform,
._gnUpdateStorageUniform = checkUpdateStorageUniform,
._gnUpdateImageUniform = checkUpdateImageUniform,
._gnCreateTexture = checkCreateTexture,

View File

@@ -110,6 +110,9 @@ gnReturnCode checkCreateBuffer(gnBufferHandle buffer, gnDeviceHandle device, gnB
void checkBufferData(gnBufferHandle buffer, size_t size, void* data) {
CHECK_VOID_FUNCTION(buffer->device->instance, _gnBufferData, buffer, size, data);
}
void checkBufferSubData(gnBufferHandle buffer, size_t offset, size_t size, void* data) {
CHECK_VOID_FUNCTION(buffer->device->instance, _gnBufferSubData, buffer, offset, size, data);
}
void* checkMapBuffer(gnBufferHandle buffer) {
loaderLayer* nextLayer = loaderGetNextLayer(buffer->device->instance);
if (nextLayer->deviceFunctions._gnMapBuffer == NULL) {
@@ -146,6 +149,9 @@ void checkDestroyUniformPool(gnUniformPool pool) {
void checkUpdateBufferUniform(gnUniform uniform, gnBufferUniformInfo* bufferInfo) {
CHECK_VOID_FUNCTION(uniform->pool->device->instance, _gnUpdateBufferUniform, uniform, bufferInfo);
}
void checkUpdateStorageUniform(gnUniform uniform, gnStorageUniformInfo* storageInfo) {
CHECK_VOID_FUNCTION(uniform->pool->device->instance, _gnUpdateStorageUniform, uniform, storageInfo);
}
void checkUpdateImageUniform(gnUniform uniform, gnImageUniformInfo* imageInfo) {
CHECK_VOID_FUNCTION(uniform->pool->device->instance, _gnUpdateImageUniform, uniform, imageInfo);
}

View File

@@ -24,6 +24,7 @@ void checkDestroySemaphore(gnSemaphoreHandle semaphore);
gnReturnCode checkCreateBuffer(gnBufferHandle buffer, gnDeviceHandle device, gnBufferInfo info);
void checkBufferData(gnBufferHandle buffer, size_t size, void* data);
void checkBufferSubData(gnBufferHandle buffer, size_t offset, size_t size, void* data);
void* checkMapBuffer(gnBufferHandle buffer);
void checkDestroyBuffer(gnBufferHandle buffer);
@@ -32,6 +33,7 @@ gnUniform* checkUniformPoolAllocateUniforms(gnUniformPool pool, gnUniformAllocat
void checkDestroyUniformPool(gnUniformPool pool);
void checkUpdateBufferUniform(gnUniform uniform, gnBufferUniformInfo* bufferInfo);
void checkUpdateStorageUniform(gnUniform uniform, gnStorageUniformInfo* storageInfo);
void checkUpdateImageUniform(gnUniform uniform, gnImageUniformInfo* imageInfo);
gnReturnCode checkCreateTexture(gnTexture texture, gnDevice device, const gnTextureInfo info);