X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fpipelinestate_backend.h;h=892d8b3a12a127cc20d64b445a0a56bb07f601b1;hb=4b9c9f565bb0335034dc8c2c7ad833ee42251d5d;hp=085309e61872a82b058d593fa8af9d546836f613;hpb=370eb9e6a1e54da52047ba843e25c36be9789209;p=libs%2Fgl.git diff --git a/source/backends/vulkan/pipelinestate_backend.h b/source/backends/vulkan/pipelinestate_backend.h index 085309e6..892d8b3a 100644 --- a/source/backends/vulkan/pipelinestate_backend.h +++ b/source/backends/vulkan/pipelinestate_backend.h @@ -8,6 +8,7 @@ namespace Msp { namespace GL { class Device; +class VulkanCommandRecorder; class VulkanPipelineState: public NonCopyable { @@ -19,8 +20,10 @@ protected: Device &device; mutable unsigned changes = 0; mutable unsigned unapplied = 0; - mutable VkPipeline handle; + mutable VkPipeline handle = 0; mutable std::vector descriptor_set_slots; + mutable unsigned first_changed_desc_set = 0; + mutable std::uint32_t push_const_compat = 0; VulkanPipelineState(); VulkanPipelineState(VulkanPipelineState &&); @@ -36,7 +39,7 @@ protected: VkDescriptorSetLayout get_descriptor_set_layout(unsigned) const; unsigned fill_descriptor_writes(unsigned, unsigned, std::vector &) const; - void apply(VkCommandBuffer, const VulkanPipelineState *, unsigned, bool) const; + void apply(const VulkanCommandRecorder &, const VulkanPipelineState *, unsigned, bool) const; }; using PipelineStateBackend = VulkanPipelineState;