forked from MoonsideGames/Refresh
Fix uniform buffers not tracking correctly
parent
a15e26b124
commit
54a8ff122c
|
@ -719,7 +719,7 @@ typedef struct VulkanUniformBufferPool VulkanUniformBufferPool;
|
||||||
typedef struct VulkanUniformBuffer
|
typedef struct VulkanUniformBuffer
|
||||||
{
|
{
|
||||||
VulkanUniformBufferPool *pool;
|
VulkanUniformBufferPool *pool;
|
||||||
VulkanBuffer *vulkanBuffer;
|
VulkanBufferContainer *vulkanBufferContainer; /* use container to avoid defrag issues */
|
||||||
VkDeviceSize offset;
|
VkDeviceSize offset;
|
||||||
VkDescriptorSet descriptorSet;
|
VkDescriptorSet descriptorSet;
|
||||||
} VulkanUniformBuffer;
|
} VulkanUniformBuffer;
|
||||||
|
@ -2398,12 +2398,6 @@ static uint8_t VULKAN_INTERNAL_FindMemoryType(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Refresh_LogWarn(
|
|
||||||
"Failed to find memory type %X, required %X, ignored %X",
|
|
||||||
typeFilter,
|
|
||||||
requiredProperties,
|
|
||||||
ignoredProperties
|
|
||||||
);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2587,7 +2581,6 @@ static uint8_t VULKAN_INTERNAL_AllocateMemory(
|
||||||
|
|
||||||
SDL_free(allocation);
|
SDL_free(allocation);
|
||||||
|
|
||||||
Refresh_LogWarn("vkAllocateMemory: %s", VkErrorMessages(result));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2821,7 +2814,6 @@ static uint8_t VULKAN_INTERNAL_BindResourceMemory(
|
||||||
SDL_UnlockMutex(renderer->allocatorLock);
|
SDL_UnlockMutex(renderer->allocatorLock);
|
||||||
|
|
||||||
/* Responsibility of the caller to handle being out of memory */
|
/* Responsibility of the caller to handle being out of memory */
|
||||||
Refresh_LogWarn("Failed to allocate memory!");
|
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4221,6 +4213,7 @@ static VulkanUniformBufferPool* VULKAN_INTERNAL_CreateUniformBufferPool(
|
||||||
}
|
}
|
||||||
|
|
||||||
static void VULKAN_INTERNAL_BindUniformBuffer(
|
static void VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
VulkanRenderer *renderer,
|
||||||
VulkanCommandBuffer *commandBuffer,
|
VulkanCommandBuffer *commandBuffer,
|
||||||
VulkanUniformBuffer *uniformBuffer
|
VulkanUniformBuffer *uniformBuffer
|
||||||
) {
|
) {
|
||||||
|
@ -4235,6 +4228,47 @@ static void VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
|
||||||
commandBuffer->boundUniformBuffers[commandBuffer->boundUniformBufferCount] = uniformBuffer;
|
commandBuffer->boundUniformBuffers[commandBuffer->boundUniformBufferCount] = uniformBuffer;
|
||||||
commandBuffer->boundUniformBufferCount += 1;
|
commandBuffer->boundUniformBufferCount += 1;
|
||||||
|
|
||||||
|
VULKAN_INTERNAL_TrackBuffer(
|
||||||
|
renderer,
|
||||||
|
commandBuffer,
|
||||||
|
uniformBuffer->vulkanBufferContainer->vulkanBuffer
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buffer indirection so we can cleanly defrag */
|
||||||
|
static VulkanBufferContainer* VULKAN_INTERNAL_CreateBufferContainer(
|
||||||
|
VulkanRenderer *renderer,
|
||||||
|
uint32_t sizeInBytes,
|
||||||
|
VulkanResourceAccessType resourceAccessType,
|
||||||
|
VkBufferUsageFlags usageFlags
|
||||||
|
) {
|
||||||
|
VulkanBufferContainer* bufferContainer;
|
||||||
|
VulkanBuffer* buffer;
|
||||||
|
|
||||||
|
/* always set transfer bits so we can defrag */
|
||||||
|
usageFlags |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
|
||||||
|
|
||||||
|
buffer = VULKAN_INTERNAL_CreateBuffer(
|
||||||
|
renderer,
|
||||||
|
sizeInBytes,
|
||||||
|
resourceAccessType,
|
||||||
|
usageFlags,
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
if (buffer == NULL)
|
||||||
|
{
|
||||||
|
Refresh_LogError("Failed to create buffer!");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bufferContainer = SDL_malloc(sizeof(VulkanBufferContainer));
|
||||||
|
bufferContainer->vulkanBuffer = buffer;
|
||||||
|
buffer->container = bufferContainer;
|
||||||
|
|
||||||
|
return (VulkanBufferContainer*) bufferContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t VULKAN_INTERNAL_CreateUniformBuffer(
|
static uint8_t VULKAN_INTERNAL_CreateUniformBuffer(
|
||||||
|
@ -4265,25 +4299,22 @@ static uint8_t VULKAN_INTERNAL_CreateUniformBuffer(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
VulkanUniformBuffer *buffer = SDL_malloc(sizeof(VulkanUniformBuffer));
|
VulkanUniformBuffer *uniformBuffer = SDL_malloc(sizeof(VulkanUniformBuffer));
|
||||||
buffer->pool = bufferPool;
|
uniformBuffer->pool = bufferPool;
|
||||||
|
uniformBuffer->vulkanBufferContainer = VULKAN_INTERNAL_CreateBufferContainer(
|
||||||
buffer->vulkanBuffer = VULKAN_INTERNAL_CreateBuffer(
|
|
||||||
renderer,
|
renderer,
|
||||||
UBO_BUFFER_SIZE,
|
UBO_BUFFER_SIZE,
|
||||||
resourceAccessType,
|
resourceAccessType,
|
||||||
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
|
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (buffer->vulkanBuffer == NULL)
|
if (uniformBuffer->vulkanBufferContainer == NULL)
|
||||||
{
|
{
|
||||||
Refresh_LogError("Failed to create buffer for uniform buffer!");
|
Refresh_LogError("Failed to create buffer for uniform buffer!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer->offset = 0;
|
uniformBuffer->offset = 0;
|
||||||
|
|
||||||
/* Allocate a descriptor set for the uniform buffer */
|
/* Allocate a descriptor set for the uniform buffer */
|
||||||
|
|
||||||
|
@ -4303,7 +4334,7 @@ static uint8_t VULKAN_INTERNAL_CreateUniformBuffer(
|
||||||
bufferPool->descriptorPool.descriptorPools[bufferPool->descriptorPool.descriptorPoolCount - 1],
|
bufferPool->descriptorPool.descriptorPools[bufferPool->descriptorPool.descriptorPoolCount - 1],
|
||||||
descriptorSetLayout,
|
descriptorSetLayout,
|
||||||
1,
|
1,
|
||||||
&buffer->descriptorSet
|
&uniformBuffer->descriptorSet
|
||||||
)) {
|
)) {
|
||||||
Refresh_LogError("Failed to allocate uniform descriptor set!");
|
Refresh_LogError("Failed to allocate uniform descriptor set!");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -4321,7 +4352,7 @@ static uint8_t VULKAN_INTERNAL_CreateUniformBuffer(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
bufferPool->availableBuffers[bufferPool->availableBufferCount] = buffer;
|
bufferPool->availableBuffers[bufferPool->availableBufferCount] = uniformBuffer;
|
||||||
bufferPool->availableBufferCount += 1;
|
bufferPool->availableBufferCount += 1;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -4357,17 +4388,16 @@ static VulkanUniformBuffer* VULKAN_INTERNAL_CreateDummyUniformBuffer(
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
VulkanUniformBuffer *buffer = SDL_malloc(sizeof(VulkanUniformBuffer));
|
VulkanUniformBuffer *uniformBuffer = SDL_malloc(sizeof(VulkanUniformBuffer));
|
||||||
|
uniformBuffer->pool = NULL;
|
||||||
buffer->vulkanBuffer = VULKAN_INTERNAL_CreateBuffer(
|
uniformBuffer->vulkanBufferContainer = VULKAN_INTERNAL_CreateBufferContainer(
|
||||||
renderer,
|
renderer,
|
||||||
UBO_BUFFER_SIZE,
|
UBO_BUFFER_SIZE,
|
||||||
resourceAccessType,
|
resourceAccessType,
|
||||||
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
|
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
);
|
||||||
buffer->offset = 0;
|
|
||||||
|
uniformBuffer->offset = 0;
|
||||||
|
|
||||||
/* Allocate a descriptor set for the uniform buffer */
|
/* Allocate a descriptor set for the uniform buffer */
|
||||||
|
|
||||||
|
@ -4376,12 +4406,12 @@ static VulkanUniformBuffer* VULKAN_INTERNAL_CreateDummyUniformBuffer(
|
||||||
renderer->defaultDescriptorPool,
|
renderer->defaultDescriptorPool,
|
||||||
descriptorSetLayout,
|
descriptorSetLayout,
|
||||||
1,
|
1,
|
||||||
&buffer->descriptorSet
|
&uniformBuffer->descriptorSet
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Update the descriptor set for the first and last time! */
|
/* Update the descriptor set for the first and last time! */
|
||||||
|
|
||||||
descriptorBufferInfo.buffer = buffer->vulkanBuffer->buffer;
|
descriptorBufferInfo.buffer = uniformBuffer->vulkanBufferContainer->vulkanBuffer->buffer;
|
||||||
descriptorBufferInfo.offset = 0;
|
descriptorBufferInfo.offset = 0;
|
||||||
descriptorBufferInfo.range = VK_WHOLE_SIZE;
|
descriptorBufferInfo.range = VK_WHOLE_SIZE;
|
||||||
|
|
||||||
|
@ -4391,7 +4421,7 @@ static VulkanUniformBuffer* VULKAN_INTERNAL_CreateDummyUniformBuffer(
|
||||||
writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
|
writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
|
||||||
writeDescriptorSet.dstArrayElement = 0;
|
writeDescriptorSet.dstArrayElement = 0;
|
||||||
writeDescriptorSet.dstBinding = 0;
|
writeDescriptorSet.dstBinding = 0;
|
||||||
writeDescriptorSet.dstSet = buffer->descriptorSet;
|
writeDescriptorSet.dstSet = uniformBuffer->descriptorSet;
|
||||||
writeDescriptorSet.pBufferInfo = &descriptorBufferInfo;
|
writeDescriptorSet.pBufferInfo = &descriptorBufferInfo;
|
||||||
writeDescriptorSet.pImageInfo = NULL;
|
writeDescriptorSet.pImageInfo = NULL;
|
||||||
writeDescriptorSet.pTexelBufferView = NULL;
|
writeDescriptorSet.pTexelBufferView = NULL;
|
||||||
|
@ -4404,9 +4434,9 @@ static VulkanUniformBuffer* VULKAN_INTERNAL_CreateDummyUniformBuffer(
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
buffer->pool = NULL; /* No pool because this is a dummy */
|
uniformBuffer->pool = NULL; /* No pool because this is a dummy */
|
||||||
|
|
||||||
return buffer;
|
return uniformBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void VULKAN_INTERNAL_DestroyUniformBufferPool(
|
static void VULKAN_INTERNAL_DestroyUniformBufferPool(
|
||||||
|
@ -4428,7 +4458,8 @@ static void VULKAN_INTERNAL_DestroyUniformBufferPool(
|
||||||
/* This is always destroyed after submissions, so all buffers are available */
|
/* This is always destroyed after submissions, so all buffers are available */
|
||||||
for (i = 0; i < uniformBufferPool->availableBufferCount; i += 1)
|
for (i = 0; i < uniformBufferPool->availableBufferCount; i += 1)
|
||||||
{
|
{
|
||||||
VULKAN_INTERNAL_DestroyBuffer(renderer, uniformBufferPool->availableBuffers[i]->vulkanBuffer);
|
VULKAN_INTERNAL_DestroyBuffer(renderer, uniformBufferPool->availableBuffers[i]->vulkanBufferContainer->vulkanBuffer);
|
||||||
|
SDL_free(uniformBufferPool->availableBuffers[i]->vulkanBufferContainer);
|
||||||
SDL_free(uniformBufferPool->availableBuffers[i]);
|
SDL_free(uniformBufferPool->availableBuffers[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4466,7 +4497,7 @@ static VulkanUniformBuffer* VULKAN_INTERNAL_AcquireUniformBufferFromPool(
|
||||||
|
|
||||||
/* Update the descriptor set with the correct range */
|
/* Update the descriptor set with the correct range */
|
||||||
|
|
||||||
descriptorBufferInfo.buffer = uniformBuffer->vulkanBuffer->buffer;
|
descriptorBufferInfo.buffer = uniformBuffer->vulkanBufferContainer->vulkanBuffer->buffer;
|
||||||
descriptorBufferInfo.offset = 0;
|
descriptorBufferInfo.offset = 0;
|
||||||
descriptorBufferInfo.range = blockSize;
|
descriptorBufferInfo.range = blockSize;
|
||||||
|
|
||||||
|
@ -5106,6 +5137,7 @@ static void VULKAN_INTERNAL_EndCommandBuffer(
|
||||||
commandBuffer->computeUniformBuffer != NULL
|
commandBuffer->computeUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
commandBuffer,
|
commandBuffer,
|
||||||
commandBuffer->computeUniformBuffer
|
commandBuffer->computeUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -5146,9 +5178,13 @@ static void VULKAN_DestroyDevice(
|
||||||
|
|
||||||
SDL_free(renderer->submittedCommandBuffers);
|
SDL_free(renderer->submittedCommandBuffers);
|
||||||
|
|
||||||
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyVertexUniformBuffer->vulkanBuffer);
|
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyVertexUniformBuffer->vulkanBufferContainer->vulkanBuffer);
|
||||||
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyFragmentUniformBuffer->vulkanBuffer);
|
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyFragmentUniformBuffer->vulkanBufferContainer->vulkanBuffer);
|
||||||
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyComputeUniformBuffer->vulkanBuffer);
|
VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyComputeUniformBuffer->vulkanBufferContainer->vulkanBuffer);
|
||||||
|
|
||||||
|
SDL_free(renderer->dummyVertexUniformBuffer->vulkanBufferContainer);
|
||||||
|
SDL_free(renderer->dummyFragmentUniformBuffer->vulkanBufferContainer);
|
||||||
|
SDL_free(renderer->dummyComputeUniformBuffer->vulkanBufferContainer);
|
||||||
|
|
||||||
SDL_free(renderer->dummyVertexUniformBuffer);
|
SDL_free(renderer->dummyVertexUniformBuffer);
|
||||||
SDL_free(renderer->dummyFragmentUniformBuffer);
|
SDL_free(renderer->dummyFragmentUniformBuffer);
|
||||||
|
@ -7035,8 +7071,6 @@ static Refresh_Buffer* VULKAN_CreateBuffer(
|
||||||
Refresh_BufferUsageFlags usageFlags,
|
Refresh_BufferUsageFlags usageFlags,
|
||||||
uint32_t sizeInBytes
|
uint32_t sizeInBytes
|
||||||
) {
|
) {
|
||||||
VulkanBufferContainer* bufferContainer;
|
|
||||||
VulkanBuffer* buffer;
|
|
||||||
VulkanResourceAccessType resourceAccessType;
|
VulkanResourceAccessType resourceAccessType;
|
||||||
VkBufferUsageFlags vulkanUsageFlags =
|
VkBufferUsageFlags vulkanUsageFlags =
|
||||||
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
|
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
|
||||||
|
@ -7070,26 +7104,12 @@ static Refresh_Buffer* VULKAN_CreateBuffer(
|
||||||
resourceAccessType = RESOURCE_ACCESS_INDIRECT_BUFFER;
|
resourceAccessType = RESOURCE_ACCESS_INDIRECT_BUFFER;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = VULKAN_INTERNAL_CreateBuffer(
|
return (Refresh_Buffer*) VULKAN_INTERNAL_CreateBufferContainer(
|
||||||
(VulkanRenderer*) driverData,
|
(VulkanRenderer*) driverData,
|
||||||
sizeInBytes,
|
sizeInBytes,
|
||||||
resourceAccessType,
|
resourceAccessType,
|
||||||
vulkanUsageFlags,
|
vulkanUsageFlags
|
||||||
1,
|
|
||||||
0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (buffer == NULL)
|
|
||||||
{
|
|
||||||
Refresh_LogError("Failed to create buffer!");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
bufferContainer = SDL_malloc(sizeof(VulkanBufferContainer));
|
|
||||||
bufferContainer->vulkanBuffer = buffer;
|
|
||||||
buffer->container = bufferContainer;
|
|
||||||
|
|
||||||
return (Refresh_Buffer*) bufferContainer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Setters */
|
/* Setters */
|
||||||
|
@ -7792,6 +7812,7 @@ static uint32_t VULKAN_PushVertexShaderUniforms(
|
||||||
) {
|
) {
|
||||||
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->vertexUniformBuffer
|
vulkanCommandBuffer->vertexUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -7805,7 +7826,7 @@ static uint32_t VULKAN_PushVertexShaderUniforms(
|
||||||
offset = vulkanCommandBuffer->vertexUniformBuffer->offset;
|
offset = vulkanCommandBuffer->vertexUniformBuffer->offset;
|
||||||
|
|
||||||
VULKAN_INTERNAL_SetBufferData(
|
VULKAN_INTERNAL_SetBufferData(
|
||||||
vulkanCommandBuffer->vertexUniformBuffer->vulkanBuffer,
|
vulkanCommandBuffer->vertexUniformBuffer->vulkanBufferContainer->vulkanBuffer,
|
||||||
vulkanCommandBuffer->vertexUniformBuffer->offset,
|
vulkanCommandBuffer->vertexUniformBuffer->offset,
|
||||||
data,
|
data,
|
||||||
dataLengthInBytes
|
dataLengthInBytes
|
||||||
|
@ -7835,6 +7856,7 @@ static uint32_t VULKAN_PushFragmentShaderUniforms(
|
||||||
) {
|
) {
|
||||||
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer
|
vulkanCommandBuffer->fragmentUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -7848,7 +7870,7 @@ static uint32_t VULKAN_PushFragmentShaderUniforms(
|
||||||
offset = vulkanCommandBuffer->fragmentUniformBuffer->offset;
|
offset = vulkanCommandBuffer->fragmentUniformBuffer->offset;
|
||||||
|
|
||||||
VULKAN_INTERNAL_SetBufferData(
|
VULKAN_INTERNAL_SetBufferData(
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer->vulkanBuffer,
|
vulkanCommandBuffer->fragmentUniformBuffer->vulkanBufferContainer->vulkanBuffer,
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer->offset,
|
vulkanCommandBuffer->fragmentUniformBuffer->offset,
|
||||||
data,
|
data,
|
||||||
dataLengthInBytes
|
dataLengthInBytes
|
||||||
|
@ -7877,6 +7899,7 @@ static uint32_t VULKAN_PushComputeShaderUniforms(
|
||||||
) {
|
) {
|
||||||
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
/* We're out of space in this buffer, bind the old one and acquire a new one */
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->computeUniformBuffer
|
vulkanCommandBuffer->computeUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -7890,7 +7913,7 @@ static uint32_t VULKAN_PushComputeShaderUniforms(
|
||||||
offset = vulkanCommandBuffer->computeUniformBuffer->offset;
|
offset = vulkanCommandBuffer->computeUniformBuffer->offset;
|
||||||
|
|
||||||
VULKAN_INTERNAL_SetBufferData(
|
VULKAN_INTERNAL_SetBufferData(
|
||||||
vulkanCommandBuffer->computeUniformBuffer->vulkanBuffer,
|
vulkanCommandBuffer->computeUniformBuffer->vulkanBufferContainer->vulkanBuffer,
|
||||||
vulkanCommandBuffer->computeUniformBuffer->offset,
|
vulkanCommandBuffer->computeUniformBuffer->offset,
|
||||||
data,
|
data,
|
||||||
dataLengthInBytes
|
dataLengthInBytes
|
||||||
|
@ -8971,6 +8994,7 @@ static void VULKAN_EndRenderPass(
|
||||||
vulkanCommandBuffer->vertexUniformBuffer != NULL
|
vulkanCommandBuffer->vertexUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->vertexUniformBuffer
|
vulkanCommandBuffer->vertexUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -8981,6 +9005,7 @@ static void VULKAN_EndRenderPass(
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer != NULL
|
vulkanCommandBuffer->fragmentUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer
|
vulkanCommandBuffer->fragmentUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -9066,6 +9091,7 @@ static void VULKAN_BindGraphicsPipeline(
|
||||||
vulkanCommandBuffer->vertexUniformBuffer != NULL
|
vulkanCommandBuffer->vertexUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->vertexUniformBuffer
|
vulkanCommandBuffer->vertexUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -9088,6 +9114,7 @@ static void VULKAN_BindGraphicsPipeline(
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer != NULL
|
vulkanCommandBuffer->fragmentUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer
|
vulkanCommandBuffer->fragmentUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -9219,6 +9246,7 @@ static void VULKAN_BindComputePipeline(
|
||||||
vulkanCommandBuffer->computeUniformBuffer != NULL
|
vulkanCommandBuffer->computeUniformBuffer != NULL
|
||||||
) {
|
) {
|
||||||
VULKAN_INTERNAL_BindUniformBuffer(
|
VULKAN_INTERNAL_BindUniformBuffer(
|
||||||
|
renderer,
|
||||||
vulkanCommandBuffer,
|
vulkanCommandBuffer,
|
||||||
vulkanCommandBuffer->computeUniformBuffer
|
vulkanCommandBuffer->computeUniformBuffer
|
||||||
);
|
);
|
||||||
|
@ -11705,14 +11733,6 @@ static Refresh_Device* VULKAN_CreateDevice(
|
||||||
renderer->physicalDeviceDriverProperties.conformanceVersion.minor,
|
renderer->physicalDeviceDriverProperties.conformanceVersion.minor,
|
||||||
renderer->physicalDeviceDriverProperties.conformanceVersion.patch
|
renderer->physicalDeviceDriverProperties.conformanceVersion.patch
|
||||||
);
|
);
|
||||||
Refresh_LogWarn(
|
|
||||||
"\n"
|
|
||||||
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
|
|
||||||
"! Refresh Vulkan is still in development! !\n"
|
|
||||||
"! The API is unstable and subject to change !\n"
|
|
||||||
"! You have been warned! !\n"
|
|
||||||
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!VULKAN_INTERNAL_CreateLogicalDevice(
|
if (!VULKAN_INTERNAL_CreateLogicalDevice(
|
||||||
renderer
|
renderer
|
||||||
|
|
Loading…
Reference in New Issue