随笔分类 - Vulkan
摘要:VK_FORMAT_A8B8G8R8_UNORM_PACK32 VK_FORMAT_A8B8G8R8_SNORM_PACK32 VK_FORMAT_A8B8G8R8_USCALED_PACK32 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 VK_FORMAT_A8B8G8R8
阅读全文
摘要:typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, VK_MEMORY_
阅读全文
摘要:在Vulkan /OpenGL 绘制图形时,可能需要绘制多个并不相连的图形。这样的情况下这几个图形没法被当做一个图形来处理。也就需要多次调用 DrawArrays 或 DrawElements. 如果图形很多,可能会需要用一个循环来调用: for (int i = 0; i < num_object
阅读全文
摘要:先说结论: VkDescriptorSetLayout 与 VkDescriptorSet 不是一一对应, VkDescriptorSetLayout 可以有很多,VkDescriptorSet 是一个对 VkDescriptorSetLayout 的任意组合 与 destr 参考Shader la
阅读全文
摘要:在GPU执行过程中有责任保证接下来访问的这块内存是保证有效的,也就是确保先前写入的数据对目标单元可见。简单介绍一下GPU Cache体系,平时听得比较多的是CPU Cache,但是GPU同样有着自己的Cache体系。 如下图所示,在这里可以看GPU同样是有着L1/L2 Cache的架构。 那么在GP
阅读全文
摘要:Image Layout 和 Layout Transition 在RenderPass创建参数中需要指定RenderPass开始时和RenderPass结束时的ImageLayout也就是initLayout和finalLayout。因为不同的ImageLayout会影响到像素在内存中的组织方式。
阅读全文
摘要:呈现模式: 对于交换链对显示模式的设置应该是最重要的,因为它代表实际显示图像到屏幕的时机。在Vulkan中有四种显示模式: 1.VK_PRESENT_MODE_IMMEDIATE_KHR 由应用提交的图像立刻被传输到屏幕。这种方式可能导致图像不完整。 2.VK_PRESENT_MODE_FIFO_K
阅读全文
摘要:帧缓冲(Framebuffer)代表由渲染管线进行渲染的一组图像。它们影响管线的最后几个阶段:深度模板测试,颜色混合,逻辑运算,多重采样等等。一个帧缓冲对象总是附着在一个渲染通道上并且可以用在多个具有相似模板编排的渲染通道中。 调用vkCreateFramebuffer创建帧缓冲对象。 在VkFra
阅读全文
摘要:能将渲染管线和运算管线区别开了的要素之一是——通用,在你使用一个渲染管线渲染图像之后也可能进行其他处理或展示给yoghurt。在复杂的图形应用中,图像需要经过许多通道才能生成,每个通道都负责不同的部分,比如全屏幕的后处理或合成,或渲染UI元素等。 这些通道可以由vulkan的一个渲染通道对象表达出来
阅读全文
摘要:渲染是vulkan最基础的功能,也是众多图形化应用最核心的部分。vulkan的渲染过程可以当作是通过执行不同阶段的命令以此来在展示设备上渲染出图片的过程。 vulkan中,渲染管线可以看作是一条生产流水线,命令在管线的开头进入,并且在管线内不同阶段执行。每个阶段都有诸如变换,读取命令或关联的数据,然
阅读全文