From c4f0afc8a28da597f713be466a5b574b6cece298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 9 Oct 2017 12:43:56 +0200 Subject: [PATCH] Clean out some obsolete code --- GPU/Vulkan/FramebufferVulkan.cpp | 42 +++-------------------- GPU/Vulkan/VulkanUtil.cpp | 27 --------------- GPU/Vulkan/VulkanUtil.h | 27 --------------- ext/native/thin3d/VulkanQueueRunner.cpp | 1 + ext/native/thin3d/VulkanRenderManager.cpp | 10 +++--- 5 files changed, 9 insertions(+), 98 deletions(-) diff --git a/GPU/Vulkan/FramebufferVulkan.cpp b/GPU/Vulkan/FramebufferVulkan.cpp index a9b5d0a99..f9c6946e9 100644 --- a/GPU/Vulkan/FramebufferVulkan.cpp +++ b/GPU/Vulkan/FramebufferVulkan.cpp @@ -175,7 +175,6 @@ void FramebufferManagerVulkan::DestroyDeviceObjects() { } void FramebufferManagerVulkan::NotifyClear(bool clearColor, bool clearAlpha, bool clearDepth, uint32_t color, float depth) { - // if (!useBufferedRendering_) { float x, y, w, h; CenterDisplayOutputRect(&x, &y, &w, &h, 480.0f, 272.0f, (float)pixelWidth_, (float)pixelHeight_, ROTATION_LOCKED_HORIZONTAL); @@ -196,9 +195,6 @@ void FramebufferManagerVulkan::NotifyClear(bool clearColor, bool clearAlpha, boo if (clearDepth) { SetDepthUpdated(); } - //} else { - // TODO: Clever render pass magic. - //} } void FramebufferManagerVulkan::UpdatePostShaderUniforms(int bufferWidth, int bufferHeight, int renderWidth, int renderHeight) { @@ -486,50 +482,20 @@ VkImageView FramebufferManagerVulkan::BindFramebufferAsColorTexture(int stage, V } bool FramebufferManagerVulkan::CreateDownloadTempBuffer(VirtualFramebuffer *nvfb) { - // When updating VRAM, it need to be exact format. - if (!gstate_c.Supports(GPU_PREFER_CPU_DOWNLOAD)) { - switch (nvfb->format) { - case GE_FORMAT_4444: - nvfb->colorDepth = VK_FBO_4444; - break; - case GE_FORMAT_5551: - nvfb->colorDepth = VK_FBO_5551; - break; - case GE_FORMAT_565: - nvfb->colorDepth = VK_FBO_565; - break; - case GE_FORMAT_8888: - default: - nvfb->colorDepth = VK_FBO_8888; - break; - } - } + nvfb->colorDepth = Draw::FBO_8888; - /* - nvfb->fbo = CreateFramebuffer(nvfb->width, nvfb->height, 1, false, (FBOColorDepth)nvfb->colorDepth); + nvfb->fbo = draw_->CreateFramebuffer({ nvfb->width, nvfb->height, 1, 1, true, (Draw::FBColorDepth)nvfb->colorDepth }); if (!(nvfb->fbo)) { ERROR_LOG(FRAMEBUF, "Error creating FBO! %i x %i", nvfb->renderWidth, nvfb->renderHeight); return false; } - BindFramebufferAsRenderTarget(nvfb->fbo); - */ + draw_->BindFramebufferAsRenderTarget(nvfb->fbo, { Draw::RPAction::CLEAR, Draw::RPAction::CLEAR }); return true; } void FramebufferManagerVulkan::UpdateDownloadTempBuffer(VirtualFramebuffer *nvfb) { - // _assert_msg_(G3D, nvfb->fbo, "Expecting a valid nvfb in UpdateDownloadTempBuffer"); - - // Discard the previous contents of this buffer where possible. - /* - if (gl_extensions.GLES3 && glInvalidateFramebuffer != nullptr) { - BindFramebufferAsRenderTargetnvfb->fbo); - GLenum attachments[3] = { GL_COLOR_ATTACHMENT0, GL_STENCIL_ATTACHMENT, GL_DEPTH_ATTACHMENT }; - glInvalidateFramebuffer(GL_FRAMEBUFFER, 3, attachments); - } else if (gl_extensions.IsGLES) { - BindFramebufferAsRenderTargetnvfb->fbo); - } - */ + // Nothing to do here. } void FramebufferManagerVulkan::BlitFramebuffer(VirtualFramebuffer *dst, int dstX, int dstY, VirtualFramebuffer *src, int srcX, int srcY, int w, int h, int bpp) { diff --git a/GPU/Vulkan/VulkanUtil.cpp b/GPU/Vulkan/VulkanUtil.cpp index 576315ff9..caf06cbac 100644 --- a/GPU/Vulkan/VulkanUtil.cpp +++ b/GPU/Vulkan/VulkanUtil.cpp @@ -20,33 +20,6 @@ #include "Common/Vulkan/VulkanContext.h" #include "GPU/Vulkan/VulkanUtil.h" -VulkanFBO::VulkanFBO() : color_(nullptr), depthStencil_(nullptr) {} - -VulkanFBO::~VulkanFBO() { - delete color_; - delete depthStencil_; -} - -void VulkanFBO::Create(VulkanContext *vulkan, VkCommandBuffer cmd, VkRenderPass rp_compatible, int width, int height, VkFormat color_Format) { - color_ = new VulkanTexture(vulkan); - VkImageCreateFlags flags = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - color_->CreateDirect(cmd, width, height, 1, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, flags | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, nullptr); - depthStencil_->CreateDirect(cmd, width, height, 1, VK_FORMAT_D24_UNORM_S8_UINT, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, flags | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, nullptr); - - VkImageView views[2] = { color_->GetImageView(), depthStencil_->GetImageView() }; - - VkFramebufferCreateInfo fb = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO }; - fb.pAttachments = views; - fb.attachmentCount = 2; - fb.flags = 0; - fb.renderPass = rp_compatible; - fb.width = width; - fb.height = height; - fb.layers = 1; - - vkCreateFramebuffer(vulkan->GetDevice(), &fb, nullptr, &framebuffer_); -} - Vulkan2D::Vulkan2D(VulkanContext *vulkan) : vulkan_(vulkan), curFrame_(0) { InitDeviceObjects(); } diff --git a/GPU/Vulkan/VulkanUtil.h b/GPU/Vulkan/VulkanUtil.h index fefb35544..3c32a63fa 100644 --- a/GPU/Vulkan/VulkanUtil.h +++ b/GPU/Vulkan/VulkanUtil.h @@ -42,33 +42,6 @@ // // Each FBO will get its own command buffer for each pass. -// -struct VulkanFBOPass { - VkCommandBuffer cmd; -}; - -class VulkanFBO { -public: - VulkanFBO(); - ~VulkanFBO(); - - // Depth-format is chosen automatically depending on hardware support. - // Color format will be 32-bit RGBA. - void Create(VulkanContext *vulkan, VkCommandBuffer cmd, VkRenderPass rp_compatible, int width, int height, VkFormat colorFormat); - - VulkanTexture *GetColor() { return color_; } - VulkanTexture *GetDepthStencil() { return depthStencil_; } - - VkFramebuffer GetFramebuffer() { return framebuffer_; } - -private: - VulkanTexture *color_; - VulkanTexture *depthStencil_; - - // This point specifically to color and depth. - VkFramebuffer framebuffer_; -}; - // Similar to a subset of Thin3D, but separate. // This is used for things like postprocessing shaders, depal, etc. // No UBO data is used, only PushConstants. diff --git a/ext/native/thin3d/VulkanQueueRunner.cpp b/ext/native/thin3d/VulkanQueueRunner.cpp index e69de29bb..ad86d0bce 100644 --- a/ext/native/thin3d/VulkanQueueRunner.cpp +++ b/ext/native/thin3d/VulkanQueueRunner.cpp @@ -0,0 +1 @@ +#include "VulkanQueueRunner.h" diff --git a/ext/native/thin3d/VulkanRenderManager.cpp b/ext/native/thin3d/VulkanRenderManager.cpp index f7357b86e..804b67797 100644 --- a/ext/native/thin3d/VulkanRenderManager.cpp +++ b/ext/native/thin3d/VulkanRenderManager.cpp @@ -80,9 +80,9 @@ void CreateImage(VulkanContext *vulkan, VkCommandBuffer cmd, VKRImage &img, int VulkanRenderManager::VulkanRenderManager(VulkanContext *vulkan) : vulkan_(vulkan) { VkSemaphoreCreateInfo semaphoreCreateInfo = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; semaphoreCreateInfo.flags = 0; - VkResult res = vkCreateSemaphore(vulkan_->GetDevice(), &semaphoreCreateInfo, NULL, &acquireSemaphore_); + VkResult res = vkCreateSemaphore(vulkan_->GetDevice(), &semaphoreCreateInfo, nullptr, &acquireSemaphore_); assert(res == VK_SUCCESS); - res = vkCreateSemaphore(vulkan_->GetDevice(), &semaphoreCreateInfo, NULL, &renderingCompleteSemaphore_); + res = vkCreateSemaphore(vulkan_->GetDevice(), &semaphoreCreateInfo, nullptr, &renderingCompleteSemaphore_); assert(res == VK_SUCCESS); for (int i = 0; i < vulkan_->GetInflightFrames(); i++) { @@ -145,7 +145,7 @@ void VulkanRenderManager::CreateBackbuffers() { VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, 0, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); - res = vkCreateImageView(vulkan_->GetDevice(), &color_image_view, NULL, &sc_buffer.view); + res = vkCreateImageView(vulkan_->GetDevice(), &color_image_view, nullptr, &sc_buffer.view); swapchainImages_.push_back(sc_buffer); assert(res == VK_SUCCESS); } @@ -267,8 +267,6 @@ void VulkanRenderManager::BeginFrame() { } VkCommandBuffer VulkanRenderManager::GetInitCmd() { - // assert(insideFrame_ || firstFrame_); - int curFrame = vulkan_->GetCurFrame(); FrameData &frameData = frameData_[curFrame]; if (!frameData.hasInitCommands) { @@ -389,7 +387,7 @@ void VulkanRenderManager::InitBackbufferRenderPass() { rp_info.dependencyCount = 0; rp_info.pDependencies = nullptr; - res = vkCreateRenderPass(vulkan_->GetDevice(), &rp_info, NULL, &backbufferRenderPass_); + res = vkCreateRenderPass(vulkan_->GetDevice(), &rp_info, nullptr, &backbufferRenderPass_); assert(res == VK_SUCCESS); }