support dynamic uniform buffers on vulkan

This commit is contained in:
Gregory Wells
2025-07-23 11:37:12 -04:00
parent 9c03d38f51
commit 0da1a8a4f6
14 changed files with 22 additions and 13 deletions

View File

@@ -19,8 +19,8 @@ void gnCommandSetViewport(gnCommandBufferHandle buffer, gnViewport viewport) {
void gnCommandSetScissor(gnCommandBufferHandle buffer, gnScissor scissor) {
buffer->commandPool->instance->callingLayer->commandFunctions._gnCommandSetScissor(buffer, scissor);
}
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) {
buffer->commandPool->instance->callingLayer->commandFunctions._gnCommandBindUniform(buffer, uniform, set);
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set, uint32_t dynamicOffsetCount, uint32_t* dynamicOffsets) {
buffer->commandPool->instance->callingLayer->commandFunctions._gnCommandBindUniform(buffer, uniform, set, dynamicOffsetCount, dynamicOffsets);
}
void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type) {
buffer->commandPool->instance->callingLayer->commandFunctions._gnCommandBindBuffer(buffer, bufferToBind, type);

View File

@@ -8,7 +8,7 @@ void gnCommandEndRenderPass(gnCommandBufferHandle buffer);
void gnCommandBindGraphicsPipeline(gnCommandBufferHandle buffer, gnGraphicsPipelineHandle graphicsPipeline);
void gnCommandSetViewport(gnCommandBufferHandle buffer, gnViewport viewport);
void gnCommandSetScissor(gnCommandBufferHandle buffer, gnScissor scissor);
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set);
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set, uint32_t dynamicOffsetCount, uint32_t* dynamicOffsets);
void gnCommandPushConstant(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data);
#include "buffers/gryphn_buffer.h"

View File

@@ -2,6 +2,7 @@
#include "stdint.h"
#include "stdlib.h"
#include "utils/lists/gryphn_array_list.h"
#include "utils/gryphn_bool.h"
#include "gryphn_handles.h"
typedef struct gnBufferUniformInfo {
@@ -9,6 +10,7 @@ typedef struct gnBufferUniformInfo {
gnBuffer buffer;
size_t offset;
size_t size;
gnBool dynamic;
} gnBufferUniformInfo;
typedef struct gnStorageUniformInfo {

View File

@@ -4,6 +4,7 @@
typedef enum gnUniformType {
GN_UNIFORM_BUFFER_DESCRIPTOR,
GN_DYNAMIC_UNIFORM_BUFFER_DESCRIPTOR,
GN_SHADER_STORE_BUFFER_DESCRIPTOR,
GN_COMBINED_IMAGE_SAMPLER_DESCRIPTOR,
GN_UNIFORM_TYPE_MAX