diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 7443019832..86844b7afa 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -176,20 +176,11 @@ VKGSRender::VKGSRender() : GSRender(frame_type::Vulkan) m_command_buffer_pool.create((*m_device)); m_command_buffer.create(m_command_buffer_pool); - VkCommandBufferInheritanceInfo inheritance_info; + VkCommandBufferInheritanceInfo inheritance_info = {}; inheritance_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO; - inheritance_info.pNext = nullptr; - inheritance_info.renderPass = VK_NULL_HANDLE; - inheritance_info.subpass = 0; - inheritance_info.framebuffer = VK_NULL_HANDLE; - inheritance_info.occlusionQueryEnable = VK_FALSE; - inheritance_info.queryFlags = 0; - inheritance_info.pipelineStatistics = 0; - VkCommandBufferBeginInfo begin_infos; - begin_infos.flags = 0; + VkCommandBufferBeginInfo begin_infos = {}; begin_infos.pInheritanceInfo = &inheritance_info; - begin_infos.pNext = nullptr; begin_infos.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; CHECK_RESULT(vkBeginCommandBuffer(m_command_buffer, &begin_infos)); @@ -375,17 +366,14 @@ namespace void VKGSRender::end() { - VkRenderPassBeginInfo rp_begin; + VkRenderPassBeginInfo rp_begin = {}; rp_begin.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - rp_begin.pNext = NULL; rp_begin.renderPass = m_render_pass; rp_begin.framebuffer = m_framebuffer; rp_begin.renderArea.offset.x = 0; rp_begin.renderArea.offset.y = 0; rp_begin.renderArea.extent.width = m_frame->client_size().width; rp_begin.renderArea.extent.height = m_frame->client_size().height; - rp_begin.clearValueCount = 0; - rp_begin.pClearValues = nullptr; vkCmdBeginRenderPass(m_command_buffer, &rp_begin, VK_SUBPASS_CONTENTS_INLINE); @@ -452,7 +440,7 @@ void VKGSRender::set_viewport() // u32 shader_window = rsx::method_registers[NV4097_SET_SHADER_WINDOW]; // rsx::window_origin shader_window_origin = rsx::to_window_origin((shader_window >> 12) & 0xf); - VkViewport viewport; + VkViewport viewport = {}; viewport.x = viewport_x; viewport.y = viewport_y; viewport.width = viewport_w; @@ -462,7 +450,7 @@ void VKGSRender::set_viewport() vkCmdSetViewport(m_command_buffer, 0, 1, &viewport); - VkRect2D scissor; + VkRect2D scissor = {}; scissor.extent.height = scissor_h; scissor.extent.width = scissor_w; scissor.offset.x = scissor_x; @@ -607,8 +595,7 @@ void VKGSRender::init_render_pass(VkFormat surface_format, VkFormat depth_format { //TODO: Create buffers as requested by the game. Render to swapchain for now.. /* Describe a render pass and framebuffer attachments */ - VkAttachmentDescription attachments[2]; - memset(&attachments, 0, sizeof attachments); + std::array attachments; attachments[0].format = surface_format; attachments[0].samples = VK_SAMPLE_COUNT_1_BIT; @@ -628,17 +615,17 @@ void VKGSRender::init_render_pass(VkFormat surface_format, VkFormat depth_format attachments[1].initialLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; attachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - VkAttachmentReference template_color_reference; + VkAttachmentReference template_color_reference = {}; template_color_reference.attachment = VK_ATTACHMENT_UNUSED; template_color_reference.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - VkAttachmentReference depth_reference; + VkAttachmentReference depth_reference = {}; depth_reference.attachment = num_draw_buffers; depth_reference.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; //Fill in draw_buffers information... - VkAttachmentDescription real_attachments[4]; - VkAttachmentReference color_references[4]; + std::array real_attachments; + std::array color_references; for (int i = 0; i < num_draw_buffers; ++i) { @@ -650,28 +637,18 @@ void VKGSRender::init_render_pass(VkFormat surface_format, VkFormat depth_format real_attachments[num_draw_buffers] = attachments[1]; - VkSubpassDescription subpass; + VkSubpassDescription subpass = {}; subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - subpass.flags = 0; - subpass.inputAttachmentCount = 0; - subpass.pInputAttachments = nullptr; subpass.colorAttachmentCount = num_draw_buffers; - subpass.pColorAttachments = num_draw_buffers? color_references: nullptr; - subpass.pResolveAttachments = nullptr; + subpass.pColorAttachments = num_draw_buffers? color_references.data() : nullptr; subpass.pDepthStencilAttachment = &depth_reference; - subpass.preserveAttachmentCount = 0; - subpass.pPreserveAttachments = nullptr; - VkRenderPassCreateInfo rp_info; + VkRenderPassCreateInfo rp_info = {}; rp_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; - rp_info.pNext = NULL; - rp_info.attachmentCount = num_draw_buffers+1; - rp_info.pAttachments = real_attachments; + rp_info.attachmentCount = num_draw_buffers + 1; + rp_info.pAttachments = real_attachments.data(); rp_info.subpassCount = 1; rp_info.pSubpasses = &subpass; - rp_info.dependencyCount = 0; - rp_info.pDependencies = NULL; - rp_info.flags = 0; CHECK_RESULT(vkCreateRenderPass((*m_device), &rp_info, NULL, &m_render_pass)); } @@ -775,9 +752,7 @@ void VKGSRender::init_buffers(bool skip_reading) if (dirty_frame) { //Prepare surface for new frame - VkSemaphoreCreateInfo semaphore_info; - semaphore_info.flags = 0; - semaphore_info.pNext = nullptr; + VkSemaphoreCreateInfo semaphore_info = {}; semaphore_info.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; vkCreateSemaphore((*m_device), &semaphore_info, nullptr, &m_present_semaphore); @@ -808,20 +783,11 @@ void VKGSRender::write_buffers() void VKGSRender::begin_command_buffer_recording() { - VkCommandBufferInheritanceInfo inheritance_info; + VkCommandBufferInheritanceInfo inheritance_info = {}; inheritance_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO; - inheritance_info.pNext = nullptr; - inheritance_info.renderPass = VK_NULL_HANDLE; - inheritance_info.subpass = 0; - inheritance_info.framebuffer = VK_NULL_HANDLE; - inheritance_info.occlusionQueryEnable = VK_FALSE; - inheritance_info.queryFlags = 0; - inheritance_info.pipelineStatistics = 0; - VkCommandBufferBeginInfo begin_infos; - begin_infos.flags = 0; + VkCommandBufferBeginInfo begin_infos = {}; begin_infos.pInheritanceInfo = &inheritance_info; - begin_infos.pNext = nullptr; begin_infos.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; if (m_submit_fence) @@ -922,25 +888,18 @@ void VKGSRender::execute_command_buffer(bool wait) if (m_submit_fence) throw EXCEPTION("Synchronization deadlock!"); - VkFenceCreateInfo fence_info; + VkFenceCreateInfo fence_info = {}; fence_info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; - fence_info.flags = 0; - fence_info.pNext = nullptr; CHECK_RESULT(vkCreateFence(*m_device, &fence_info, nullptr, &m_submit_fence)); VkPipelineStageFlags pipe_stage_flags = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; VkCommandBuffer cmd = m_command_buffer; - VkSubmitInfo infos; + VkSubmitInfo infos = {}; infos.commandBufferCount = 1; infos.pCommandBuffers = &cmd; - infos.pNext = nullptr; - infos.pSignalSemaphores = nullptr; infos.pWaitDstStageMask = &pipe_stage_flags; - infos.signalSemaphoreCount = 0; - infos.waitSemaphoreCount = 0; - infos.pWaitSemaphores = nullptr; infos.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; CHECK_RESULT(vkQueueSubmit(m_swap_chain->get_present_queue(), 1, &infos, m_submit_fence)); @@ -989,7 +948,7 @@ void VKGSRender::flip(int buffer) VkSwapchainKHR swap_chain = (VkSwapchainKHR)(*m_swap_chain); uint32_t next_image_temp = 0; - VkPresentInfoKHR present; + VkPresentInfoKHR present = {}; present.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; present.pNext = nullptr; present.swapchainCount = 1; diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.cpp b/rpcs3/Emu/RSX/VK/VKHelpers.cpp index a9c2c54a32..d8c95bf616 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.cpp +++ b/rpcs3/Emu/RSX/VK/VKHelpers.cpp @@ -136,8 +136,7 @@ namespace vk if (g_null_sampler) return g_null_sampler; - VkSamplerCreateInfo sampler_info; - memset(&sampler_info, 0, sizeof(sampler_info)); + VkSamplerCreateInfo sampler_info = {}; sampler_info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; sampler_info.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER; @@ -146,7 +145,6 @@ namespace vk sampler_info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; sampler_info.anisotropyEnable = VK_FALSE; sampler_info.compareEnable = VK_FALSE; - sampler_info.pNext = nullptr; sampler_info.unnormalizedCoordinates = VK_FALSE; sampler_info.mipLodBias = 0; sampler_info.maxAnisotropy = 0; @@ -216,9 +214,8 @@ namespace vk VkImageSubresourceRange range = default_image_subresource_range(); range.aspectMask = aspect_flags; - VkImageMemoryBarrier barrier; + VkImageMemoryBarrier barrier = {}; barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - barrier.pNext = nullptr; barrier.newLayout = new_layout; barrier.oldLayout = current_layout; barrier.image = image; diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.h b/rpcs3/Emu/RSX/VK/VKHelpers.h index 326233f4f0..1d10e15e85 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.h +++ b/rpcs3/Emu/RSX/VK/VKHelpers.h @@ -384,15 +384,12 @@ namespace vk owner = &dev; - VkBufferCreateInfo infos; - infos.pNext = nullptr; + VkBufferCreateInfo infos = {}; infos.size = size; infos.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; infos.sharingMode = VK_SHARING_MODE_EXCLUSIVE; infos.flags = flags; infos.usage = usage; - infos.pQueueFamilyIndices = nullptr; - infos.queueFamilyIndexCount = 0; CHECK_RESULT(vkCreateBuffer(dev, &infos, nullptr, &m_buffer)); @@ -503,12 +500,9 @@ namespace vk if (!(format_properties.bufferFeatures & VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT)) throw EXCEPTION("Can't map view to requested format"); - VkBufferViewCreateInfo view_info; + VkBufferViewCreateInfo view_info = {}; view_info.buffer = m_buffer; - view_info.flags = 0; view_info.format = format; - view_info.offset = 0; - view_info.pNext = nullptr; view_info.range = m_size; view_info.sType = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO; @@ -552,12 +546,10 @@ namespace vk void create(vk::render_device &dev, VkRenderPass pass, VkImageView *attachments, u32 nb_attachments, u32 width, u32 height) { - VkFramebufferCreateInfo infos; + VkFramebufferCreateInfo infos = {}; infos.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - infos.flags = 0; infos.width = width; infos.height = height; - infos.pNext = nullptr; infos.attachmentCount = nb_attachments; infos.pAttachments = attachments; infos.renderPass = pass; @@ -593,10 +585,9 @@ namespace vk void create(vk::render_device &dev, VkImage &swap_image, VkFormat format) { - VkImageViewCreateInfo color_image_view; + VkImageViewCreateInfo color_image_view = {}; color_image_view.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - color_image_view.pNext = nullptr; color_image_view.format = format; color_image_view.components.r = VK_COMPONENT_SWIZZLE_R; @@ -611,7 +602,6 @@ namespace vk color_image_view.subresourceRange.layerCount = 1; color_image_view.viewType = VK_IMAGE_VIEW_TYPE_2D; - color_image_view.flags = 0; color_image_view.image = swap_image; vkCreateImageView(dev, &color_image_view, nullptr, &view); @@ -774,9 +764,8 @@ namespace vk if (surface_descriptors.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) pre_transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; - VkSwapchainCreateInfoKHR swap_info; + VkSwapchainCreateInfoKHR swap_info = {}; swap_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; - swap_info.pNext = nullptr; swap_info.surface = m_surface; swap_info.minImageCount = nb_swap_images; swap_info.imageFormat = m_surface_format; @@ -787,8 +776,6 @@ namespace vk swap_info.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; swap_info.imageArrayLayers = 1; swap_info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; - swap_info.queueFamilyIndexCount = 0; - swap_info.pQueueFamilyIndices = nullptr; swap_info.presentMode = swapchain_present_mode; swap_info.oldSwapchain = old_swapchain; swap_info.clipped = true; @@ -860,10 +847,8 @@ namespace vk void create(vk::render_device &dev) { owner = &dev; - VkCommandPoolCreateInfo infos; + VkCommandPoolCreateInfo infos = {}; infos.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - infos.pNext = nullptr; - infos.queueFamilyIndex = 0; infos.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; CHECK_RESULT(vkCreateCommandPool(dev, &infos, nullptr, &pool)); @@ -900,12 +885,11 @@ namespace vk void create(vk::command_pool &cmd_pool) { - VkCommandBufferAllocateInfo infos; + VkCommandBufferAllocateInfo infos = {}; infos.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; infos.commandBufferCount = 1; infos.commandPool = (VkCommandPool)cmd_pool; infos.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; - infos.pNext = nullptr; CHECK_RESULT(vkAllocateCommandBuffers(cmd_pool.get_owner(), &infos, &commands)); pool = &cmd_pool; @@ -973,11 +957,9 @@ namespace vk createDebugReportCallback = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(m_instance, "vkCreateDebugReportCallbackEXT"); destroyDebugReportCallback = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(m_instance, "vkDestroyDebugReportCallbackEXT"); - VkDebugReportCallbackCreateInfoEXT dbgCreateInfo; + VkDebugReportCallbackCreateInfoEXT dbgCreateInfo = {}; dbgCreateInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT; - dbgCreateInfo.pNext = NULL; dbgCreateInfo.pfnCallback = callback; - dbgCreateInfo.pUserData = NULL; dbgCreateInfo.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT; CHECK_RESULT(createDebugReportCallback(m_instance, &dbgCreateInfo, NULL, &m_debugger)); @@ -986,10 +968,9 @@ namespace vk uint32_t createInstance(const char *app_name) { //Initialize a vulkan instance - VkApplicationInfo app; + VkApplicationInfo app = {}; app.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; - app.pNext = nullptr; app.pApplicationName = app_name; app.applicationVersion = 0; app.pEngineName = app_name; @@ -1009,9 +990,8 @@ namespace vk if (rpcs3::config.rsx.d3d12.debug_output.value()) layers.push_back("VK_LAYER_LUNARG_standard_validation"); - VkInstanceCreateInfo instance_info; + VkInstanceCreateInfo instance_info = {}; instance_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - instance_info.pNext = nullptr; instance_info.pApplicationInfo = &app; instance_info.enabledLayerCount = layers.size(); instance_info.ppEnabledLayerNames = layers.data(); @@ -1078,10 +1058,8 @@ namespace vk #ifdef _WIN32 vk::swap_chain* createSwapChain(HINSTANCE hInstance, HWND hWnd, vk::physical_device &dev) { - VkWin32SurfaceCreateInfoKHR createInfo; + VkWin32SurfaceCreateInfoKHR createInfo = {}; createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; - createInfo.pNext = NULL; - createInfo.flags = 0; createInfo.hinstance = hInstance; createInfo.hwnd = hWnd; @@ -1180,10 +1158,9 @@ namespace vk void create(vk::render_device &dev, VkDescriptorPoolSize *sizes, u32 size_descriptors_count) { - VkDescriptorPoolCreateInfo infos; + VkDescriptorPoolCreateInfo infos = {}; infos.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; infos.maxSets = 2; - infos.pNext = nullptr; infos.poolSizeCount = size_descriptors_count; infos.pPoolSizes = sizes; infos.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; diff --git a/rpcs3/Emu/RSX/VK/VKRenderTargets.h b/rpcs3/Emu/RSX/VK/VKRenderTargets.h index ed2ec5d87d..eff7a96b42 100644 --- a/rpcs3/Emu/RSX/VK/VKRenderTargets.h +++ b/rpcs3/Emu/RSX/VK/VKRenderTargets.h @@ -47,8 +47,8 @@ namespace rsx rtt.change_layout(*cmd, VK_IMAGE_LAYOUT_GENERAL); //Clear new surface.. - VkClearDepthStencilValue clear_depth; - VkImageSubresourceRange range; + VkClearDepthStencilValue clear_depth = {}; + VkImageSubresourceRange range = {}; range.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; range.baseArrayLayer = 0; range.baseMipLevel = 0; diff --git a/rpcs3/Emu/RSX/VK/VKTexture.cpp b/rpcs3/Emu/RSX/VK/VKTexture.cpp index 9fe0bc4db8..7fb08b06fe 100644 --- a/rpcs3/Emu/RSX/VK/VKTexture.cpp +++ b/rpcs3/Emu/RSX/VK/VKTexture.cpp @@ -10,7 +10,7 @@ namespace vk { VkComponentMapping default_component_map() { - VkComponentMapping result; + VkComponentMapping result = {}; result.a = VK_COMPONENT_SWIZZLE_A; result.r = VK_COMPONENT_SWIZZLE_R; result.g = VK_COMPONENT_SWIZZLE_G; @@ -21,7 +21,7 @@ namespace vk VkImageSubresource default_image_subresource() { - VkImageSubresource subres; + VkImageSubresource subres = {}; subres.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; subres.mipLevel = 0; subres.arrayLayer = 0; @@ -31,7 +31,7 @@ namespace vk VkImageSubresourceRange default_image_subresource_range() { - VkImageSubresourceRange subres; + VkImageSubresourceRange subres = {}; subres.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; subres.baseArrayLayer = 0; subres.baseMipLevel = 0; @@ -43,7 +43,7 @@ namespace vk void copy_image(VkCommandBuffer cmd, VkImage &src, VkImage &dst, VkImageLayout srcLayout, VkImageLayout dstLayout, u32 width, u32 height, u32 mipmaps, VkImageAspectFlagBits aspect) { - VkImageSubresourceLayers a_src, a_dst; + VkImageSubresourceLayers a_src = {}, a_dst = {}; a_src.aspectMask = aspect; a_src.baseArrayLayer = 0; a_src.layerCount = 1; @@ -51,7 +51,7 @@ namespace vk a_dst = a_src; - VkImageCopy rgn; + VkImageCopy rgn = {}; rgn.extent.depth = 1; rgn.extent.width = width; rgn.extent.height = height; @@ -83,7 +83,7 @@ namespace vk void copy_scaled_image(VkCommandBuffer cmd, VkImage & src, VkImage & dst, VkImageLayout srcLayout, VkImageLayout dstLayout, u32 src_width, u32 src_height, u32 dst_width, u32 dst_height, u32 mipmaps, VkImageAspectFlagBits aspect) { - VkImageSubresourceLayers a_src, a_dst; + VkImageSubresourceLayers a_src = {}, a_dst = {}; a_src.aspectMask = aspect; a_src.baseArrayLayer = 0; a_src.layerCount = 1; @@ -91,7 +91,7 @@ namespace vk a_dst = a_src; - VkImageBlit rgn; + VkImageBlit rgn = {}; rgn.srcOffsets[0] = { 0, 0, 0 }; rgn.srcOffsets[1] = { (int32_t)src_width, (int32_t)src_height, 1 }; rgn.dstOffsets[0] = { 0, 0, 0 }; @@ -143,11 +143,9 @@ namespace vk owner = &device; //First create the image - VkImageCreateInfo image_info; - memset(&image_info, 0, sizeof(image_info)); + VkImageCreateInfo image_info = {}; image_info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; - image_info.pNext = nullptr; image_info.imageType = image_type; image_info.format = format; image_info.extent = { width, height, 1 }; @@ -166,15 +164,13 @@ namespace vk CHECK_RESULT(vkBindImageMemory(device, m_image_contents, vram_allocation, 0)); - VkImageViewCreateInfo view_info; + VkImageViewCreateInfo view_info = {}; view_info.format = format; view_info.image = m_image_contents; - view_info.pNext = nullptr; view_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; view_info.viewType = view_type; view_info.components = swizzle; view_info.subresourceRange = default_image_subresource_range(); - view_info.flags = 0; if (usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) { @@ -200,18 +196,16 @@ namespace vk VkSamplerAddressMode clamp_t = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; VkSamplerAddressMode clamp_r = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; - VkSamplerCreateInfo sampler_info; + VkSamplerCreateInfo sampler_info = {}; sampler_info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; sampler_info.addressModeU = clamp_s; sampler_info.addressModeV = clamp_t; sampler_info.addressModeW = clamp_r; sampler_info.anisotropyEnable = VK_FALSE; sampler_info.compareEnable = VK_FALSE; - sampler_info.pNext = nullptr; sampler_info.unnormalizedCoordinates = VK_FALSE; sampler_info.mipLodBias = 0; sampler_info.maxAnisotropy = 0; - sampler_info.flags = 0; sampler_info.magFilter = VK_FILTER_LINEAR; sampler_info.minFilter = VK_FILTER_LINEAR; sampler_info.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; @@ -325,18 +319,16 @@ namespace vk VkSamplerAddressMode clamp_t = vk_wrap_mode(tex.wrap_t()); VkSamplerAddressMode clamp_r = vk_wrap_mode(tex.wrap_r()); - VkSamplerCreateInfo sampler_info; + VkSamplerCreateInfo sampler_info = {}; sampler_info.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; sampler_info.addressModeU = clamp_s; sampler_info.addressModeV = clamp_t; sampler_info.addressModeW = clamp_r; sampler_info.anisotropyEnable = VK_TRUE; sampler_info.compareEnable = VK_FALSE; - sampler_info.pNext = nullptr; sampler_info.unnormalizedCoordinates = !!(tex.format() & CELL_GCM_TEXTURE_UN); sampler_info.mipLodBias = tex.bias(); sampler_info.maxAnisotropy = max_aniso(tex.max_aniso()); - sampler_info.flags = 0; sampler_info.maxLod = tex.max_lod(); sampler_info.minLod = tex.min_lod(); sampler_info.magFilter = VK_FILTER_LINEAR; @@ -379,7 +371,7 @@ namespace vk if (!m_sampler) sampler_setup(tex, best_type, default_component_map()); - VkImageSubresource subres; + VkImageSubresource subres = {}; subres.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; subres.mipLevel = 0; subres.arrayLayer = 0;