backup before trying terrain change
authorEleni Maria Stea <estea@igalia.com>
Tue, 21 Aug 2018 09:08:55 +0000 (12:08 +0300)
committerEleni Maria Stea <estea@igalia.com>
Tue, 21 Aug 2018 09:08:55 +0000 (12:08 +0300)
src/vulkan/renderer-vk.cc
src/vulkan/renderer-vk.h
src/vulkan/resources.h
src/vulkan/texture-vk.h
src/vulkan/uniforms-vk.cc
src/vulkan/uniforms-vk.h

index bb52e94..0f4074e 100644 (file)
@@ -37,7 +37,8 @@ bool RendererVK::create_resources()
        /* default pipeline resources */
 
        default_vs_ub = gfx_create_uniform_buffer();
-       if(!default_vs_ub->create(sizeof default_vs_uniforms)) {
+       int data_size = sizeof default_vs_uniforms;
+       if(!default_vs_ub->create(data_size)) {
                fprintf(stderr, "Failed to create the default VS uniform buffer.\n");
                return false;
        }
@@ -48,6 +49,7 @@ bool RendererVK::create_resources()
                fprintf(stderr, "Failed to create the ds layout for the default vs uniform buffer.\n");
                return false;
        }
+       default_vs_res.size = data_size;
        default_resources.push_back(default_vs_res);
 
        default_fs_ub = gfx_create_uniform_buffer();
@@ -100,6 +102,21 @@ bool RendererVK::create_default_pipeline()
        return true;
 }
 
+bool RendererVK::create_desc_pool()
+{
+       int num_desc = default_resources.size() + sky_resources.size();
+       VkDescriptorPoolCreateInfo dpinf;
+       memset(&dpinf, 0, sizeof dpinf);
+
+       dpinf.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
+       dpinf.maxSets = num_desc + 1;
+       dpinf.poolSizeCount = num_desc;
+
+       for(size_t i=0; i<default_resources.size(); i++) {
+       }
+       return true;
+}
+
 static void set_resources_layouts(VkuPipelineGenerator *pipe_gen, std::vector<ResourceVK> *res)
 {
        for(size_t i=0; i<res->size(); i++) {
index f571670..3bd4fd4 100644 (file)
@@ -13,12 +13,14 @@ private:
        VkDescriptorPool res_pool;
 
        VkuPipelineGenerator default_pipe_gen;
+       /* might need different vectors for ds, pc */
        std::vector<ResourceVK> default_resources;
 
        VkuPipelineGenerator sky_pipe_gen;
        std::vector<ResourceVK> sky_resources;
 
        bool create_default_pipeline();
+       bool create_desc_pool();
 public:
        RendererVK();
        ~RendererVK();
index 5515779..5096a78 100644 (file)
@@ -6,19 +6,27 @@
 enum ResourceType {
        RES_DESC_SET,
        RES_PUSH_CONST,
+       RES_SAMPLER
 };
 
 class ResourceVK {
+private:
+       bool allocate_ds();
+
 public:
        ResourceType type;
        VkDescriptorSetLayout layout;
        VkPushConstantRange range;
+       int size;
 
        ResourceVK();
        ~ResourceVK();
 
        bool create_ds_layout(unsigned int num, VkDescriptorType type,
                        VkShaderStageFlags stage, VkSampler *sampler);
+       bool allocate();
+
+//     bool create_push_constant();
 };
 
 #endif //RESOURCES_H_
index 5b93917..6781995 100644 (file)
@@ -15,4 +15,4 @@ public:
        virtual void unbind() override;
 };
 
-#endif // TEXTURE_VK_H_
\ No newline at end of file
+#endif // TEXTURE_VK_H_
index 7e67a3a..6877505 100644 (file)
@@ -48,3 +48,8 @@ bool UniformBufferVK::update(void *data)
        }
        return true;
 }
+
+int UniformBufferVK::get_size()
+{
+       return ubo->mem_size;
+}
index a7f18bc..82c4799 100644 (file)
@@ -21,6 +21,8 @@ public:
 
        virtual void bind(int binding) const override;
        virtual bool update(void *data) override;
+
+       int get_size();
 };
 
 #endif //UNIFORMS_VK_H_