namespace GL {
class Device;
+class VulkanCommandRecorder;
class VulkanPipelineState: public NonCopyable
{
Device &device;
mutable unsigned changes = 0;
mutable unsigned unapplied = 0;
- mutable VkPipeline handle;
+ mutable VkPipeline handle = 0;
mutable std::vector<unsigned> descriptor_set_slots;
+ mutable unsigned first_changed_desc_set = 0;
+ mutable std::uint32_t push_const_compat = 0;
VulkanPipelineState();
VulkanPipelineState(VulkanPipelineState &&);
VkDescriptorSetLayout get_descriptor_set_layout(unsigned) const;
unsigned fill_descriptor_writes(unsigned, unsigned, std::vector<char> &) const;
- void apply(VkCommandBuffer, const VulkanPipelineState *, unsigned, bool) const;
+ void apply(const VulkanCommandRecorder &, const VulkanPipelineState *, unsigned, bool) const;
};
using PipelineStateBackend = VulkanPipelineState;