Just used vulkan push range struct - it's POD

This commit is contained in:
baldurk
2015-11-27 00:41:57 +01:00
parent 03a2497c6b
commit 0120d5cba1
4 changed files with 6 additions and 18 deletions
+2 -2
View File
@@ -1788,11 +1788,11 @@ void WrappedVulkan::ReplayLog(uint32_t frameID, uint32_t startEventID, uint32_t
ResourceId pipeLayoutId = m_CreationInfo.m_Pipeline[s.graphics.pipeline].layout;
VkPipelineLayout layout = GetResourceManager()->GetCurrentHandle<VkPipelineLayout>(pipeLayoutId);
const vector<VulkanCreationInfo::PipelineLayout::PushConstantRange> &pushRanges = m_CreationInfo.m_PipelineLayout[pipeLayoutId].pushRanges;
const vector<VkPushConstantRange> &pushRanges = m_CreationInfo.m_PipelineLayout[pipeLayoutId].pushRanges;
// only set push constant ranges that the layout uses
for(size_t i=0; i < pushRanges.size(); i++)
ObjDisp(cmd)->CmdPushConstants(Unwrap(cmd), Unwrap(layout), pushRanges[i].stages, pushRanges[i].start, pushRanges[i].length, s.pushconsts+pushRanges[i].start);
ObjDisp(cmd)->CmdPushConstants(Unwrap(cmd), Unwrap(layout), pushRanges[i].stageFlags, pushRanges[i].start, pushRanges[i].length, s.pushconsts+pushRanges[i].start);
const vector<ResourceId> &descSetLayouts = m_CreationInfo.m_PipelineLayout[pipeLayoutId].descSetLayouts;
+1 -1
View File
@@ -345,7 +345,7 @@ private:
ResourceId framebuffer;
VkRect2D renderArea;
struct
struct Pipeline
{
ResourceId pipeline;
vector<ResourceId> descSets;
+2 -7
View File
@@ -230,14 +230,9 @@ void VulkanCreationInfo::PipelineLayout::Init(VulkanResourceManager *resourceMan
for(uint32_t i=0; i < pCreateInfo->descriptorSetCount; i++)
descSetLayouts[i] = resourceMan->GetNonDispWrapper(pCreateInfo->pSetLayouts[i])->id;
pushRanges.resize(pCreateInfo->pushConstantRangeCount);
pushRanges.reserve(pCreateInfo->pushConstantRangeCount);
for(uint32_t i=0; i < pCreateInfo->pushConstantRangeCount; i++)
{
PushConstantRange &range = pushRanges[i];
range.start = pCreateInfo->pPushConstantRanges[i].start;
range.length = pCreateInfo->pPushConstantRanges[i].length;
range.stages = pCreateInfo->pPushConstantRanges[i].stageFlags;
}
pushRanges.push_back(pCreateInfo->pPushConstantRanges[i]);
}
void VulkanCreationInfo::RenderPass::Init(VulkanResourceManager *resourceMan, const VkRenderPassCreateInfo* pCreateInfo)
+1 -8
View File
@@ -156,14 +156,7 @@ struct VulkanCreationInfo
{
void Init(VulkanResourceManager *resourceMan, const VkPipelineLayoutCreateInfo* pCreateInfo);
struct PushConstantRange
{
uint32_t start;
uint32_t length;
VkShaderStageFlags stages;
};
vector<PushConstantRange> pushRanges;
vector<VkPushConstantRange> pushRanges;
vector<ResourceId> descSetLayouts;
};
map<ResourceId, PipelineLayout> m_PipelineLayout;