use 32 bit block sizes
parent
695ad15b75
commit
f5e25979f4
|
@ -872,8 +872,8 @@ typedef struct VulkanGraphicsPipeline
|
||||||
VkPipeline pipeline;
|
VkPipeline pipeline;
|
||||||
VulkanGraphicsPipelineLayout *pipelineLayout;
|
VulkanGraphicsPipelineLayout *pipelineLayout;
|
||||||
Refresh_PrimitiveType primitiveType;
|
Refresh_PrimitiveType primitiveType;
|
||||||
VkDeviceSize vertexUniformBlockSize;
|
uint32_t vertexUniformBlockSize;
|
||||||
VkDeviceSize fragmentUniformBlockSize;
|
uint32_t fragmentUniformBlockSize;
|
||||||
|
|
||||||
VulkanShaderModule *vertexShaderModule;
|
VulkanShaderModule *vertexShaderModule;
|
||||||
VulkanShaderModule *fragmentShaderModule;
|
VulkanShaderModule *fragmentShaderModule;
|
||||||
|
@ -892,7 +892,7 @@ typedef struct VulkanComputePipeline
|
||||||
{
|
{
|
||||||
VkPipeline pipeline;
|
VkPipeline pipeline;
|
||||||
VulkanComputePipelineLayout *pipelineLayout;
|
VulkanComputePipelineLayout *pipelineLayout;
|
||||||
VkDeviceSize uniformBlockSize; /* permanently set in Create function */
|
uint32_t uniformBlockSize; /* permanently set in Create function */
|
||||||
|
|
||||||
VulkanShaderModule *computeShaderModule;
|
VulkanShaderModule *computeShaderModule;
|
||||||
SDL_atomic_t referenceCount;
|
SDL_atomic_t referenceCount;
|
||||||
|
@ -1754,7 +1754,7 @@ typedef struct VulkanRenderer
|
||||||
VkDescriptorSetLayout fragmentUniformDescriptorSetLayout;
|
VkDescriptorSetLayout fragmentUniformDescriptorSetLayout;
|
||||||
VkDescriptorSetLayout computeUniformDescriptorSetLayout;
|
VkDescriptorSetLayout computeUniformDescriptorSetLayout;
|
||||||
|
|
||||||
VkDeviceSize minUBOAlignment;
|
uint32_t minUBOAlignment;
|
||||||
|
|
||||||
/* Some drivers don't support D16 for some reason. Fun! */
|
/* Some drivers don't support D16 for some reason. Fun! */
|
||||||
VkFormat D16Format;
|
VkFormat D16Format;
|
||||||
|
@ -2078,6 +2078,13 @@ static inline VkDeviceSize VULKAN_INTERNAL_NextHighestAlignment(
|
||||||
return align * ((n + align - 1) / align);
|
return align * ((n + align - 1) / align);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline uint32_t VULKAN_INTERNAL_NextHighestAlignment32(
|
||||||
|
uint32_t n,
|
||||||
|
uint32_t align
|
||||||
|
) {
|
||||||
|
return align * ((n + align - 1) / align);
|
||||||
|
}
|
||||||
|
|
||||||
static void VULKAN_INTERNAL_MakeMemoryUnavailable(
|
static void VULKAN_INTERNAL_MakeMemoryUnavailable(
|
||||||
VulkanRenderer* renderer,
|
VulkanRenderer* renderer,
|
||||||
VulkanMemoryAllocation *allocation
|
VulkanMemoryAllocation *allocation
|
||||||
|
@ -6086,7 +6093,7 @@ static Refresh_GraphicsPipeline* VULKAN_CreateGraphicsPipeline(
|
||||||
shaderStageCreateInfos[0].pSpecializationInfo = NULL;
|
shaderStageCreateInfos[0].pSpecializationInfo = NULL;
|
||||||
|
|
||||||
graphicsPipeline->vertexUniformBlockSize =
|
graphicsPipeline->vertexUniformBlockSize =
|
||||||
VULKAN_INTERNAL_NextHighestAlignment(
|
VULKAN_INTERNAL_NextHighestAlignment32(
|
||||||
pipelineCreateInfo->vertexShaderInfo.uniformBufferSize,
|
pipelineCreateInfo->vertexShaderInfo.uniformBufferSize,
|
||||||
renderer->minUBOAlignment
|
renderer->minUBOAlignment
|
||||||
);
|
);
|
||||||
|
@ -6103,7 +6110,7 @@ static Refresh_GraphicsPipeline* VULKAN_CreateGraphicsPipeline(
|
||||||
shaderStageCreateInfos[1].pSpecializationInfo = NULL;
|
shaderStageCreateInfos[1].pSpecializationInfo = NULL;
|
||||||
|
|
||||||
graphicsPipeline->fragmentUniformBlockSize =
|
graphicsPipeline->fragmentUniformBlockSize =
|
||||||
VULKAN_INTERNAL_NextHighestAlignment(
|
VULKAN_INTERNAL_NextHighestAlignment32(
|
||||||
pipelineCreateInfo->fragmentShaderInfo.uniformBufferSize,
|
pipelineCreateInfo->fragmentShaderInfo.uniformBufferSize,
|
||||||
renderer->minUBOAlignment
|
renderer->minUBOAlignment
|
||||||
);
|
);
|
||||||
|
@ -6529,7 +6536,7 @@ static Refresh_ComputePipeline* VULKAN_CreateComputePipeline(
|
||||||
);
|
);
|
||||||
|
|
||||||
vulkanComputePipeline->uniformBlockSize =
|
vulkanComputePipeline->uniformBlockSize =
|
||||||
VULKAN_INTERNAL_NextHighestAlignment(
|
VULKAN_INTERNAL_NextHighestAlignment32(
|
||||||
computeShaderInfo->uniformBufferSize,
|
computeShaderInfo->uniformBufferSize,
|
||||||
renderer->minUBOAlignment
|
renderer->minUBOAlignment
|
||||||
);
|
);
|
||||||
|
@ -11334,7 +11341,7 @@ static Refresh_Device* VULKAN_CreateDevice(
|
||||||
|
|
||||||
/* Set up UBO layouts */
|
/* Set up UBO layouts */
|
||||||
|
|
||||||
renderer->minUBOAlignment = renderer->physicalDeviceProperties.properties.limits.minUniformBufferOffsetAlignment;
|
renderer->minUBOAlignment = (uint32_t) renderer->physicalDeviceProperties.properties.limits.minUniformBufferOffsetAlignment;
|
||||||
|
|
||||||
emptyVertexSamplerLayoutBinding.binding = 0;
|
emptyVertexSamplerLayoutBinding.binding = 0;
|
||||||
emptyVertexSamplerLayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
|
emptyVertexSamplerLayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
|
||||||
|
|
Loading…
Reference in New Issue