From 0120d5cba1283d6347aff34da02caecddb2a4322 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 27 Nov 2015 00:41:57 +0100 Subject: [PATCH] Just used vulkan push range struct - it's POD --- renderdoc/driver/vulkan/vk_core.cpp | 4 ++-- renderdoc/driver/vulkan/vk_core.h | 2 +- renderdoc/driver/vulkan/vk_info.cpp | 9 ++------- renderdoc/driver/vulkan/vk_info.h | 9 +-------- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index ed065efcd..e6143499d 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -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(pipeLayoutId); - const vector &pushRanges = m_CreationInfo.m_PipelineLayout[pipeLayoutId].pushRanges; + const vector &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 &descSetLayouts = m_CreationInfo.m_PipelineLayout[pipeLayoutId].descSetLayouts; diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 0c28d9c74..b723a182a 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -345,7 +345,7 @@ private: ResourceId framebuffer; VkRect2D renderArea; - struct + struct Pipeline { ResourceId pipeline; vector descSets; diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp index 6a0f48ba6..4803560ee 100644 --- a/renderdoc/driver/vulkan/vk_info.cpp +++ b/renderdoc/driver/vulkan/vk_info.cpp @@ -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) diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h index 1c1d7f1b3..d2481c391 100644 --- a/renderdoc/driver/vulkan/vk_info.h +++ b/renderdoc/driver/vulkan/vk_info.h @@ -156,14 +156,7 @@ struct VulkanCreationInfo { void Init(VulkanResourceManager *resourceMan, const VkPipelineLayoutCreateInfo* pCreateInfo); - struct PushConstantRange - { - uint32_t start; - uint32_t length; - VkShaderStageFlags stages; - }; - vector pushRanges; - + vector pushRanges; vector descSetLayouts; }; map m_PipelineLayout;