mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-14 14:01:06 +00:00
Just used vulkan push range struct - it's POD
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -345,7 +345,7 @@ private:
|
||||
ResourceId framebuffer;
|
||||
VkRect2D renderArea;
|
||||
|
||||
struct
|
||||
struct Pipeline
|
||||
{
|
||||
ResourceId pipeline;
|
||||
vector<ResourceId> descSets;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user