1- /* Copyright (c) 2015-2025 The Khronos Group Inc.
2- * Copyright (c) 2015-2025 Valve Corporation
3- * Copyright (c) 2015-2025 LunarG, Inc.
4- * Copyright (C) 2015-2025 Google Inc.
1+ /* Copyright (c) 2015-2026 The Khronos Group Inc.
2+ * Copyright (c) 2015-2026 Valve Corporation
3+ * Copyright (c) 2015-2026 LunarG, Inc.
4+ * Copyright (C) 2015-2026 Google Inc.
55 * Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
66 *
77 * Licensed under the Apache License, Version 2.0 (the "License");
@@ -255,10 +255,6 @@ static bool IsRenderPassMultiViewEnabled(const VkRenderPassCreateInfo2 &renderpa
255255 return is_multiview_enabled;
256256}
257257
258- static bool IsDynamicRenderingMultiviewEnabled (const VkRenderingInfo *rendering_info) {
259- return rendering_info && rendering_info->viewMask != 0u ;
260- }
261-
262258static void InitRenderPassState (vvl::RenderPass &render_pass) {
263259 auto create_info = render_pass.create_info .ptr ();
264260
@@ -280,12 +276,11 @@ static void InitRenderPassState(vvl::RenderPass &render_pass) {
280276namespace vvl {
281277
282278// vkCreateRenderPass2
283- RenderPass::RenderPass (VkRenderPass handle, VkRenderPassCreateInfo2 const * pCreateInfo)
279+ RenderPass::RenderPass (VkRenderPass handle, VkRenderPassCreateInfo2 const * pCreateInfo)
284280 : StateObject(handle, kVulkanObjectTypeRenderPass ),
285281 create_info (pCreateInfo),
286282 use_dynamic_rendering(false ),
287283 use_dynamic_rendering_inherited(false ),
288- rasterization_enabled(true ),
289284 dynamic_rendering_color_attachment_count(0 ),
290285 has_multiview_enabled(IsRenderPassMultiViewEnabled(*create_info.ptr())) {
291286 InitRenderPassState (*this );
@@ -297,31 +292,25 @@ static vku::safe_VkRenderPassCreateInfo2 ConvertCreateInfo(const VkRenderPassCre
297292}
298293
299294// vkCreateRenderPass
300- RenderPass::RenderPass (VkRenderPass handle, VkRenderPassCreateInfo const * pCreateInfo)
295+ RenderPass::RenderPass (VkRenderPass handle, VkRenderPassCreateInfo const * pCreateInfo)
301296 : StateObject(handle, kVulkanObjectTypeRenderPass ),
302297 create_info(ConvertCreateInfo(*pCreateInfo)),
303298 use_dynamic_rendering(false ),
304299 use_dynamic_rendering_inherited(false ),
305- rasterization_enabled(true ),
306300 dynamic_rendering_color_attachment_count(0 ),
307301 has_multiview_enabled(IsRenderPassMultiViewEnabled(*create_info.ptr())) {
308302 InitRenderPassState (*this );
309303}
310304
311- const VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfo_default = {
312- VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, nullptr , 0 , 0 , nullptr , VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED};
313-
314305// vkCreateGraphicsPipelines (dynamic rendering state tied to pipeline state)
315- RenderPass::RenderPass (VkPipelineRenderingCreateInfo const *pPipelineRenderingCreateInfo, bool rasterization_enabled)
306+ // (created in DeviceState::PreCallValidateCreateGraphicsPipelines)
307+ RenderPass::RenderPass (const VkPipelineRenderingCreateInfo& rendering_ci)
316308 : StateObject(static_cast <VkRenderPass>(VK_NULL_HANDLE), kVulkanObjectTypeRenderPass),
317309 use_dynamic_rendering(true ),
318310 use_dynamic_rendering_inherited(false ),
319- rasterization_enabled(rasterization_enabled),
320- dynamic_pipeline_rendering_create_info((pPipelineRenderingCreateInfo && rasterization_enabled)
321- ? pPipelineRenderingCreateInfo
322- : &VkPipelineRenderingCreateInfo_default),
323- dynamic_rendering_color_attachment_count(dynamic_pipeline_rendering_create_info.colorAttachmentCount),
324- has_multiview_enabled(dynamic_pipeline_rendering_create_info.viewMask != 0 ) {}
311+ dynamic_pipeline_rendering_create_info(&rendering_ci),
312+ dynamic_rendering_color_attachment_count(rendering_ci.colorAttachmentCount),
313+ has_multiview_enabled(rendering_ci.viewMask != 0 ) {}
325314
326315bool RenderPass::UsesColorAttachment (uint32_t subpass_num) const {
327316 bool result = false ;
@@ -396,22 +385,19 @@ const VkMultisampledRenderToSingleSampledInfoEXT *RenderPass::GetMSRTSSInfo(uint
396385}
397386
398387// vkCmdBeginRendering
399- RenderPass::RenderPass (VkRenderingInfo const *pRenderingInfo, bool rasterization_enabled )
388+ RenderPass::RenderPass (const VkRenderingInfo& rendering_info )
400389 : StateObject(static_cast <VkRenderPass>(VK_NULL_HANDLE), kVulkanObjectTypeRenderPass),
401390 use_dynamic_rendering(true ),
402391 use_dynamic_rendering_inherited(false ),
403- rasterization_enabled(rasterization_enabled),
404- dynamic_rendering_begin_rendering_info((pRenderingInfo && rasterization_enabled) ? pRenderingInfo : nullptr),
392+ dynamic_rendering_begin_rendering_info(&rendering_info),
405393 dynamic_rendering_color_attachment_count(dynamic_rendering_begin_rendering_info.colorAttachmentCount),
406- has_multiview_enabled(
407- IsDynamicRenderingMultiviewEnabled ((pRenderingInfo && rasterization_enabled) ? pRenderingInfo : nullptr)) {}
394+ has_multiview_enabled(rendering_info.viewMask != 0u ) {}
408395
409396// vkBeginCommandBuffer (dynamic rendering in secondary command buffer)
410- RenderPass::RenderPass (VkCommandBufferInheritanceRenderingInfo const * pInheritanceRenderingInfo)
397+ RenderPass::RenderPass (VkCommandBufferInheritanceRenderingInfo const * pInheritanceRenderingInfo)
411398 : StateObject(static_cast <VkRenderPass>(VK_NULL_HANDLE), kVulkanObjectTypeRenderPass),
412399 use_dynamic_rendering(false ),
413400 use_dynamic_rendering_inherited(true ),
414- rasterization_enabled(true ),
415401 inheritance_rendering_info(pInheritanceRenderingInfo),
416402 dynamic_rendering_color_attachment_count(inheritance_rendering_info.colorAttachmentCount),
417403 has_multiview_enabled(false ) {}
0 commit comments