diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2020-07-22 17:00:40 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-22 17:00:40 +0200 | 
| commit | 938e2e966fb92ce51656b8d50b37bebf256fb6fb (patch) | |
| tree | 0272e1b7a107d9150ff61108b08b3d0efe86a420 | |
| parent | f54fd5ac100f4430b4fa4cc5d926e7a38c54291f (diff) | |
| parent | dfdfee04dfac14b965830ba3a8f54a24ed1e8e70 (diff) | |
Merge pull request #40599 from akien-mga/vulkan-init-structs
Vulkan: Fix struct init for VkClearAttachment
| -rw-r--r-- | drivers/vulkan/rendering_device_vulkan.cpp | 29 | 
1 files changed, 2 insertions, 27 deletions
diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp index cb26d3ce92..fb890491a4 100644 --- a/drivers/vulkan/rendering_device_vulkan.cpp +++ b/drivers/vulkan/rendering_device_vulkan.cpp @@ -2997,16 +2997,10 @@ VkRenderPass RenderingDeviceVulkan::_render_pass_create(const Vector<AttachmentF  		ERR_FAIL_COND_V_MSG(!(p_format[i].usage_flags & (TEXTURE_USAGE_COLOR_ATTACHMENT_BIT | TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | TEXTURE_USAGE_RESOLVE_ATTACHMENT_BIT)),  				VK_NULL_HANDLE, "Texture format for index (" + itos(i) + ") requires an attachment (depth, stencil or resolve) bit set."); -		VkAttachmentDescription description; +		VkAttachmentDescription description = {};  		description.flags = 0;  		description.format = vulkan_formats[p_format[i].format];  		description.samples = rasterization_sample_count[p_format[i].samples]; -		description.loadOp = VK_ATTACHMENT_LOAD_OP_MAX_ENUM; // Invalid value. -		description.storeOp = VK_ATTACHMENT_STORE_OP_MAX_ENUM; // Invalid value. -		description.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_MAX_ENUM; // Invalid value. -		description.stencilStoreOp = VK_ATTACHMENT_STORE_OP_MAX_ENUM; // Invalid value. -		description.initialLayout = VK_IMAGE_LAYOUT_MAX_ENUM; // Invalid value. -		description.finalLayout = VK_IMAGE_LAYOUT_MAX_ENUM; // Invalid value.  		bool is_depth_stencil = p_format[i].usage_flags & TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;  		bool is_sampled = p_format[i].usage_flags & TEXTURE_USAGE_SAMPLING_BIT; @@ -3120,15 +3114,6 @@ VkRenderPass RenderingDeviceVulkan::_render_pass_create(const Vector<AttachmentF  			}  		} -		// Ensure VkAttachmentDescription has been initialized properly. -		ERR_CONTINUE_MSG(description.loadOp == VK_ATTACHMENT_LOAD_OP_MAX_ENUM || -								 description.storeOp == VK_ATTACHMENT_STORE_OP_MAX_ENUM || -								 description.stencilLoadOp == VK_ATTACHMENT_LOAD_OP_MAX_ENUM || -								 description.stencilStoreOp == VK_ATTACHMENT_STORE_OP_MAX_ENUM || -								 description.initialLayout == VK_IMAGE_LAYOUT_MAX_ENUM || -								 description.finalLayout == VK_IMAGE_LAYOUT_MAX_ENUM, -				"Bug: VkAttachmentDescription not initialized properly."); -  		attachments.push_back(description);  		VkAttachmentReference reference; @@ -5658,10 +5643,7 @@ void RenderingDeviceVulkan::_draw_list_insert_clear_region(DrawList *draw_list,  	int color_index = 0;  	for (int i = 0; i < framebuffer->texture_ids.size(); i++) {  		Texture *texture = texture_owner.getornull(framebuffer->texture_ids[i]); -		VkClearAttachment clear_at; -		clear_at.aspectMask = VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM; // Invalid value. -		clear_at.colorAttachment = uint32_t(-1); // Invalid value. -		clear_at.clearValue.depthStencil.stencil = uint32_t(-1); // Invalid value. +		VkClearAttachment clear_at = {};  		if (p_clear_color && texture->usage_flags & TEXTURE_USAGE_COLOR_ATTACHMENT_BIT) {  			ERR_FAIL_INDEX(color_index, p_clear_colors.size()); //a bug @@ -5683,13 +5665,6 @@ void RenderingDeviceVulkan::_draw_list_insert_clear_region(DrawList *draw_list,  		} else {  			ERR_CONTINUE(true);  		} - -		// Ensure VkClearAttachment has been initialized properly. -		ERR_CONTINUE_MSG(clear_at.aspectMask == VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM || -								 clear_at.colorAttachment == uint32_t(-1) || -								 clear_at.clearValue.depthStencil.stencil == uint32_t(-1), -				"Bug: VkClearAttachment not initialized properly."); -  		clear_attachments.push_back(clear_at);  	}  |