X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fpipelinestate_backend.h;h=d482081bb400d4bc987c71048366eee26585536d;hb=b7808c60e0bbbb198500066880b6ed37c0b0e9d0;hp=d7ef4a20bf97483ade9b2c818228d59352e2628e;hpb=99ca354f18119f82f1adeca100cd665a8f640317;p=libs%2Fgl.git diff --git a/source/backends/vulkan/pipelinestate_backend.h b/source/backends/vulkan/pipelinestate_backend.h index d7ef4a20..d482081b 100644 --- a/source/backends/vulkan/pipelinestate_backend.h +++ b/source/backends/vulkan/pipelinestate_backend.h @@ -17,12 +17,15 @@ class VulkanPipelineState: public NonCopyable protected: Device &device; mutable unsigned changes = 0; + mutable unsigned unapplied = 0; mutable VkPipeline handle; mutable std::vector descriptor_set_handles; VulkanPipelineState(); VulkanPipelineState(VulkanPipelineState &&); + static bool can_bind_tex_level(unsigned) { return true; } + void update() const; void refresh() const { if(changes) update(); } std::uint64_t compute_hash() const; @@ -31,7 +34,7 @@ protected: VkDescriptorSetLayout get_descriptor_set_layout(unsigned) const; unsigned fill_descriptor_writes(unsigned, std::vector &) const; - void apply(VkCommandBuffer) const; + void apply(VkCommandBuffer, const VulkanPipelineState *, unsigned, bool) const; }; using PipelineStateBackend = VulkanPipelineState;