自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

know yourself

knowthyself.cn 三维、架构、语言

  • 博客(28)
  • 收藏
  • 关注

翻译 Vulkan规范:第九章 9.7

9.7. 特化常量(Specialization Constants)特化常量是一种机制,在SPIR-V模块中保有VkPipeline被创建时指定的常量。 这允许SPIR-V模块保有应用程序运行过程中通过Vulkan API可更改的常量。注意计算着色器需要在运行时改变本地工作组大小时,特化常量很有用。

2017-11-20 19:59:45 932

翻译 Vulkan规范:第九章 9.6

9.6. 管线缓存管线缓存对象允许管线构造的结果可以在不同的管线之间,应用程序多次运行之间重用。 在不同管线之间重用是在创建多个关联管线时通过传递相同的管线缓存对象来实现的。 在应用程序多次运行之间重用是通过获取管线缓存内容、保存内容,在下一次运行时初始化管线之前使用它们。 管线缓存对象的内容是由Vulkan实现来管理的。 应用程序可以管理管线缓存对象消耗的主机端内存,控制从管线缓存对

2017-11-20 19:59:08 598

翻译 Vulkan规范:第九章 9.1 ~9.5

9.3. 管线的销毁可调用如下命令来销毁一个图形或者计算管线:void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAlloc

2017-11-20 19:58:34 466

翻译 Vulkan规范:第九章 9.2

9.2. 图形管线图形管线由多个着色器阶段、多个固定功能管线阶段和管线布局组成。想创建图形管线,可调用:VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache

2017-11-20 19:57:33 610

翻译 Vulkan规范:第七章 7.4

7.4. Render Pass 命令应用程序按照每个subpass记录一个命令到render pass实例,从render pass开始迭代,遍历subpass并记录命令到subpass, 直到render pass对象结束。可以调用如下命令来开始一个render pass实例:void vkCmdBeginRenderPass( VkComm

2017-11-20 12:10:12 831

翻译 Vulkan规范:第九章 9.1

9.1. 计算管线计算管线有单个静态计算着色器阶段和管线布局组成。计算管线代表着一个计算着色器,通过参数module 和 pName从计算着色器中选择一个入口点来 调用vkCreateComputePipelines, 这个入口点定义了一个有效的计算着色器,包含在VkComputePipelineCreateInfo数据结构中的VkPipelineShaderS

2017-11-14 23:47:40 586

翻译 Vulkan规范:第九章

9. 管线接下来的figure 展示了Vulkan管线的一些图表。一些Vulkan命令指定了需要被绘制对象或者需要执行的计算任务, 其他的指定了控制对象如何被管线各个阶段控制,或者控制了数据如何在有组织的内存(如图像、缓冲区)之间转移。 命令通过一个处理管线(图形管线 或者 计算管线)高效的发送出去。graphics pipeline(Input Assem

2017-11-14 23:46:51 515

翻译 Vulkan规范:第八章 8.11 ~ 8.13

8.11. 插值修饰(Interpolation Decorations)插值修饰控制了片元着色器阶段插值属性的行为。 插值修饰可以应用到片元着色器的 Input 存储类变量,并控制这些变量的插值行为。输入变量最多可以被下列描述符中的一个所修饰:Flat: 无插值NoPerspective: 线性插值 (对于 线 和 多边形来说)

2017-11-14 23:45:39 375

翻译 Vulkan规范:第八章 8.3 ~ 8.10

8.4. 着色器的输入和输出数据通过 input 和 output修饰的变量传入和传出着色器。 在不同阶段之间用户自定义的输入和输出是通过匹配Location修饰符来联系起来的。 另外,可以使用 BuiltIn 修饰符来对执行环境中特殊函数提供数据或进行数据交换。在很多场合下,同一个BuiltIn可以在多个着色器阶段使用,含义相近。 BuiltIn修饰的变量的行为在

2017-11-14 23:44:54 494

翻译 Vulkan规范:第八章 8.2 ~ 8.3

8.2. 着色器的执行在管线的每一个阶段,对着色器的多次调用可能同时执行。 甚至,多个命令都调用的单个着色器也可以同时执行。 调用同一个着色器类型所产生的相对执行顺序也是未知的。 应用程序绘制命令或者分发命令产生的图元的顺序和着色器调用完成的顺序也可能不一致。 然而,片元着色器输出到附件依栅格化顺序。不同着色器类型调用的相对顺序基本上是未定义的。 然而,当调用的着色器的

2017-11-14 23:43:44 313

原创 《大型分布式网站架构》

2017-11-14  买了这本书一年的时间了,拖拖拉拉,一直没时间看完,索性这两天抽出连续的时间,把它翻完了。由于我再做Java Web方面的开发工作了,我买这本书其实是冲着“分布式架构”的,想知道常见的分布式Web架构而已。本书关于分布式架构的讲解是基于Java的,非普适性的。一些知识点,我以前或多或少接触过,所以翻得较快。  总的来说,这本书对于Java Web开发者来说,还

2017-11-14 23:38:10 659

翻译 Vulkan规范:第八章 8

8. 着色器一个着色器指定了在图形和计算管线对应各阶段的每个顶点、控制点、细分顶点、图元、片元或者工作组 上执行的可编程的操作。图形管线包括作为primitive assembly结果的顶点着色器执行, 紧接着是在patches之上的 细分控制、求值着色器(如果开启了)操作,作用在图元之上的几何着色器(如果开启了), 操作于 Rasterization产生的片元

2017-11-10 23:17:25 419

翻译 Vulkan规范:第七章 7.2 ~ 7.3

7.2. Render Pass 兼容性帧缓冲区和图形管线是基于特定render pass对象创建的。它们必须只能被用于该render pass对象,或者 与之兼容的对象。如果两个reference指向的附件有相同的格式和采样数量,或者两个都是VK_ATTACHMENT_UNUSED,又或都指向`NULL`, 它们就是兼容的。如果两个附件数组中对应位

2017-11-10 23:13:11 533

翻译 Vulkan规范:第七章 7.1

7.1. 创建Render Pass可调用如下函数来创建render pass:VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo,

2017-11-10 23:12:17 667

翻译 Vulkan规范:第七章 7

7. Render Pass一个render pass表示一系列附件、subpass、subpass之间的依赖关系的集合,描述了附件在subpass的过程中是 如何被使用的。 在命令缓冲区中render pass的使用 是一个 render pass实例 。render pass由VkRenderPass类型的handle表示:VK_DEFINE_N

2017-11-10 23:10:58 774 1

翻译 Vulkan规范:第五章 5.6

5.6. 次级命令缓冲区的执行次命令缓冲区必须不能直接被提交到队列。相反,需要被记录到主命令缓冲区的一部分来被执行:void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t

2017-11-02 11:08:18 798

翻译 Vulkan规范:第五章 5.4~5

5.4. 命令缓冲区的提交可调用下列的命令把命令缓冲区提交到队列:VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkS

2017-11-02 11:07:49 675

翻译 Vulkan规范:第五章 5.3

5.3. 命令缓冲区的记录可调用下列命令来开始记录命令缓冲区:VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);

2017-11-02 11:06:21 368

翻译 Vulkan规范:第五章 5.2

5.2. 命令缓冲区的分配和管理可调用如下命令来分配命令缓冲区:VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo,

2017-11-01 23:25:47 322

翻译 Vulkan规范:第五章 5.1

5. 命令缓冲区命令缓冲区是用来记录命令的对象,可以顺序的提交到队列以供执行。有两个级别的命令缓冲区: 主命令缓冲区(可以执行次命令缓冲区,被提交到队列),次命令缓冲区(可以被主命令缓冲区执行,不直接被提交到队列)。命令缓冲区通过VkCommandBuffer handles表示:VK_DEFINE_HANDLE(VkCommandBuffer)

2017-11-01 23:25:10 407

翻译 Vulkan规范:第四章 4.3

4.3. 队列4.3.1. 队列族的属性如之前的Physical Device Enumeration一节讲过,vkGetPhysicalDeviceQueueFamilyProperties 命令是用来获取设备所支持的队列族的属性的。vkGetPhysicalDeviceQueueFamilyProperties返回的pQueueFamilyPropert

2017-11-01 23:18:16 553

翻译 Vulkan规范:第四章 4.2

4.2. 设备设备对象表示和物理设备之间的一个连接。每一个设备对外暴露一些 队列族,每一个都有一个或多个_队列_。 在一个队列族中的所有队列都支持相同的操作。如在Physical Devices中所描述的,一个Vulkan应用程序将首先查询 一个系统中所有的物理设备。 每一个物理设备可以被查询它的能力,包含队列和队列族的属性。一旦一个可接受的物理设备被确认了,应用程序将

2017-11-01 23:17:20 1301

翻译 Vulkan规范:第四章 4.1

4. 设备和队列一旦Vulkan完成初始化,设备和队列是用来和Vulkan实现交互的主要对象。Vulkan把 physical 和 logical 设备的概念分开了。一个物理设备通常表示单独的一个系统(也许由几个单独的硬件组成一起工作), 个数是有限的。逻辑设备表示从应用程序的角度看设备。物理设备通过 VkPhysicalDevice handles

2017-11-01 23:16:25 679

翻译 Vulkan规范:第三章

3. 初始化在使用Vulkan之前,应用程序必须通过载入Vulkan命令和创建VkInstance对象来初始化它。3.1. 命令函数的指针Vulkan命令在各平台上并不是静态的暴露出来的。可以通过以下命令来获取Vulkan命令的函数指针:PFN_vkVoidFunction vkGetInstanceProcAddr( VkIns

2017-11-01 22:42:01 1153

翻译 Vulkan规范:第二章(2)

2.6. 错误Vulkan是一个分层的API。最底层是Vulkan核心层,就是本规范所定义的。应用程序可以在其上使用附加层来调试、验证或者达到其他的目的。Vulkan一个核心的原则就是构建并提交命令缓冲区应该是非常高效的。所以,错误检查和状态验证在核心层应该尽量小, 尽管可以使用这些层来开启更严格的验证。核心层假设应用程序正确的使用API。除了按照本规范

2017-11-01 22:40:53 2010

翻译 Vulkan规范:第二章(1)

2. 基础本章介绍一些基础的概念,包括Vulkan架构和执行模型、API语法、队列、管线、配置、 数值表示、状态和状态查询,还有不同类型的对象和着色器。 在本规范文档剩余部分中它提供了一个对更加精细描述命令和行为做解释的框架。2.1. 架构模型Vulkan和其API为符合以下特征的CPU、GPU和其他硬件加速架构所设计和实现:运行

2017-11-01 22:39:51 1591 1

翻译 Vulkan规范:第一章

1. 简介本章,除了“术语”、“规范化参考”小节,都是介绍性的信息。这份文档,被称为“Vulkan 规范”或者此后仅称为“规范”,描述了Vulkan图形系统: 它是什么,它怎么行动,和实现它需要做什么。我们假设读者对计算机图形学有基础的 了解。这表示要对计算机图形学算法、术语,和现代化的GPU(Graphic Processing Units)熟悉。

2017-11-01 22:38:17 1561 2

原创 Vulkan规范 翻译招募

2017-09-14 其实,很早就开始翻译这份文档了,应该是二月份。但是,奈何时间总是不够的。本来也邀请了同学来做,也没有时间。我只能断断续续的做,速度太慢了,总共都没有完成七章,打算加把劲,完成十章。 在这里,也希望招募有兴趣的同学,加入到翻译的工作中,如果有五六个人,没人只有四章,每一章都是很短的,估计长一点三四天完成,短一点的两三天。 如果有意向,请加群QQ61640...

2017-11-01 20:33:08 657

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除