18 {
20
22 .AddSubPass("Mesh")
23 .AddColorAttachment(
"Albedo",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
24 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
25 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
26 description.format = VK_FORMAT_R16G16B16A16_SFLOAT;
27 })
28 .AddColorAttachment(
"Normal",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
29 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
30 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
31 description.format = VK_FORMAT_R16G16B16A16_SFLOAT;
32 })
33 .AddColorAttachment(
"Roughness",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
34 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
35 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
36 description.format = VK_FORMAT_R16G16B16A16_SFLOAT;
37 })
38 .AddColorAttachment(
"Metallic",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
39 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
40 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
41 description.format = VK_FORMAT_R16G16B16A16_SFLOAT;
42 })
43 .AddColorAttachment(
"Position",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
44 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
45 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
46 description.format = VK_FORMAT_R32G32B32A32_SFLOAT;
47 })
48 .AddColorAttachment(
"EntityID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
49 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
50 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
51 description.format = VK_FORMAT_R32_SFLOAT;
52 })
53 .AddColorAttachment(
"TriangleID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
54 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
55 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
56 description.finalLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
57 })
58 .AddColorAttachment(
"MeshletID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
59 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
60 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
61 description.finalLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
62 })
64 description.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
65 description.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
66 })
67 .AddSelfDependency(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,VK_ACCESS_INDIRECT_COMMAND_READ_BIT,VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT)
68 .EndSubPass()
70 .AddColorAttachment(
"Albedo",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
71 description.format = VK_FORMAT_R16G16B16A16_SFLOAT;
72 })
73 .AddColorAttachment(
"Position",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
74 description.format = VK_FORMAT_R32G32B32A32_SFLOAT;
75 })
76 .AddColorAttachment(
"EntityID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
77 description.format = VK_FORMAT_R32_SFLOAT;
78 })
79 .AddColorAttachment(
"TriangleID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
80 })
81 .AddColorAttachment(
"MeshletID",
TextureType::Texture2D, [](
bool& isEnableBlend, VkAttachmentDescription& description) {
82 })
84 .EndSubPass()
85 .Build();
86 }
#define SPICES_PROFILE_ZONE
friend class RendererPassBuilder