diff options
| author | 2020-07-16 19:10:49 -0400 | |
|---|---|---|
| committer | 2020-07-16 19:11:43 -0400 | |
| commit | 97e7663004f74114386de16e06937bfde88d9dde (patch) | |
| tree | e7c8c17d15f312eee73f64a40d06ebfc8fe9dd36 | |
| parent | vk_sampler_cache: Make use of designated initializers where applicable (diff) | |
| download | yuzu-97e7663004f74114386de16e06937bfde88d9dde.tar.gz yuzu-97e7663004f74114386de16e06937bfde88d9dde.tar.xz yuzu-97e7663004f74114386de16e06937bfde88d9dde.zip | |
vk_scheduler: Make use of designated initializers where applicable
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_scheduler.cpp | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index 56524e6f3..dbbd0961a 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp | |||
| @@ -100,16 +100,19 @@ void VKScheduler::RequestRenderpass(VkRenderPass renderpass, VkFramebuffer frame | |||
| 100 | state.framebuffer = framebuffer; | 100 | state.framebuffer = framebuffer; |
| 101 | state.render_area = render_area; | 101 | state.render_area = render_area; |
| 102 | 102 | ||
| 103 | VkRenderPassBeginInfo renderpass_bi; | 103 | const VkRenderPassBeginInfo renderpass_bi{ |
| 104 | renderpass_bi.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; | 104 | .sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, |
| 105 | renderpass_bi.pNext = nullptr; | 105 | .pNext = nullptr, |
| 106 | renderpass_bi.renderPass = renderpass; | 106 | .renderPass = renderpass, |
| 107 | renderpass_bi.framebuffer = framebuffer; | 107 | .framebuffer = framebuffer, |
| 108 | renderpass_bi.renderArea.offset.x = 0; | 108 | .renderArea = |
| 109 | renderpass_bi.renderArea.offset.y = 0; | 109 | { |
| 110 | renderpass_bi.renderArea.extent = render_area; | 110 | .offset = {.x = 0, .y = 0}, |
| 111 | renderpass_bi.clearValueCount = 0; | 111 | .extent = render_area, |
| 112 | renderpass_bi.pClearValues = nullptr; | 112 | }, |
| 113 | .clearValueCount = 0, | ||
| 114 | .pClearValues = nullptr, | ||
| 115 | }; | ||
| 113 | 116 | ||
| 114 | Record([renderpass_bi, end_renderpass](vk::CommandBuffer cmdbuf) { | 117 | Record([renderpass_bi, end_renderpass](vk::CommandBuffer cmdbuf) { |
| 115 | if (end_renderpass) { | 118 | if (end_renderpass) { |
| @@ -157,16 +160,17 @@ void VKScheduler::SubmitExecution(VkSemaphore semaphore) { | |||
| 157 | 160 | ||
| 158 | current_cmdbuf.End(); | 161 | current_cmdbuf.End(); |
| 159 | 162 | ||
| 160 | VkSubmitInfo submit_info; | 163 | const VkSubmitInfo submit_info{ |
| 161 | submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; | 164 | .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO, |
| 162 | submit_info.pNext = nullptr; | 165 | .pNext = nullptr, |
| 163 | submit_info.waitSemaphoreCount = 0; | 166 | .waitSemaphoreCount = 0, |
| 164 | submit_info.pWaitSemaphores = nullptr; | 167 | .pWaitSemaphores = nullptr, |
| 165 | submit_info.pWaitDstStageMask = nullptr; | 168 | .pWaitDstStageMask = nullptr, |
| 166 | submit_info.commandBufferCount = 1; | 169 | .commandBufferCount = 1, |
| 167 | submit_info.pCommandBuffers = current_cmdbuf.address(); | 170 | .pCommandBuffers = current_cmdbuf.address(), |
| 168 | submit_info.signalSemaphoreCount = semaphore ? 1 : 0; | 171 | .signalSemaphoreCount = semaphore ? 1U : 0U, |
| 169 | submit_info.pSignalSemaphores = &semaphore; | 172 | .pSignalSemaphores = &semaphore, |
| 173 | }; | ||
| 170 | switch (const VkResult result = device.GetGraphicsQueue().Submit(submit_info, *current_fence)) { | 174 | switch (const VkResult result = device.GetGraphicsQueue().Submit(submit_info, *current_fence)) { |
| 171 | case VK_SUCCESS: | 175 | case VK_SUCCESS: |
| 172 | break; | 176 | break; |
| @@ -181,19 +185,18 @@ void VKScheduler::SubmitExecution(VkSemaphore semaphore) { | |||
| 181 | void VKScheduler::AllocateNewContext() { | 185 | void VKScheduler::AllocateNewContext() { |
| 182 | ++ticks; | 186 | ++ticks; |
| 183 | 187 | ||
| 184 | VkCommandBufferBeginInfo cmdbuf_bi; | ||
| 185 | cmdbuf_bi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; | ||
| 186 | cmdbuf_bi.pNext = nullptr; | ||
| 187 | cmdbuf_bi.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; | ||
| 188 | cmdbuf_bi.pInheritanceInfo = nullptr; | ||
| 189 | |||
| 190 | std::unique_lock lock{mutex}; | 188 | std::unique_lock lock{mutex}; |
| 191 | current_fence = next_fence; | 189 | current_fence = next_fence; |
| 192 | next_fence = &resource_manager.CommitFence(); | 190 | next_fence = &resource_manager.CommitFence(); |
| 193 | 191 | ||
| 194 | current_cmdbuf = vk::CommandBuffer(resource_manager.CommitCommandBuffer(*current_fence), | 192 | current_cmdbuf = vk::CommandBuffer(resource_manager.CommitCommandBuffer(*current_fence), |
| 195 | device.GetDispatchLoader()); | 193 | device.GetDispatchLoader()); |
| 196 | current_cmdbuf.Begin(cmdbuf_bi); | 194 | current_cmdbuf.Begin({ |
| 195 | .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, | ||
| 196 | .pNext = nullptr, | ||
| 197 | .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, | ||
| 198 | .pInheritanceInfo = nullptr, | ||
| 199 | }); | ||
| 197 | 200 | ||
| 198 | // Enable counters once again. These are disabled when a command buffer is finished. | 201 | // Enable counters once again. These are disabled when a command buffer is finished. |
| 199 | if (query_cache) { | 202 | if (query_cache) { |