From 8306af298f30919636a851e9bbdd31041860fa7e Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Tue, 18 Aug 2020 11:42:50 +0200 Subject: [PATCH] Switch to use a single triangle when drawing screen quads for a slight cache locality improvement --- src/common/rendering/gl/gl_postprocess.cpp | 2 +- src/common/rendering/hwrenderer/data/flatvertices.cpp | 6 +++--- src/common/rendering/vulkan/renderer/vk_postprocess.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/common/rendering/gl/gl_postprocess.cpp b/src/common/rendering/gl/gl_postprocess.cpp index 4beed0577..949fee4b0 100644 --- a/src/common/rendering/gl/gl_postprocess.cpp +++ b/src/common/rendering/gl/gl_postprocess.cpp @@ -49,7 +49,7 @@ void FGLRenderer::RenderScreenQuad() { auto buffer = static_cast(screen->mVertexData->GetBufferObjects().first); buffer->Bind(nullptr); - glDrawArrays(GL_TRIANGLE_STRIP, FFlatVertexBuffer::PRESENT_INDEX, 4); + glDrawArrays(GL_TRIANGLE_STRIP, FFlatVertexBuffer::PRESENT_INDEX, 3); } void FGLRenderer::PostProcessScene(int fixedcm, float flash, const std::function &afterBloomDrawEndScene2D) diff --git a/src/common/rendering/hwrenderer/data/flatvertices.cpp b/src/common/rendering/hwrenderer/data/flatvertices.cpp index bdee1e5c1..47ae19ec3 100644 --- a/src/common/rendering/hwrenderer/data/flatvertices.cpp +++ b/src/common/rendering/hwrenderer/data/flatvertices.cpp @@ -63,9 +63,9 @@ FFlatVertexBuffer::FFlatVertexBuffer(int width, int height) // and this is for the postprocessing copy operation vbo_shadowdata[8].Set(-1.0f, -1.0f, 0, 0.0f, 0.0f); - vbo_shadowdata[9].Set(-1.0f, 1.0f, 0, 0.0f, 1.f); - vbo_shadowdata[10].Set(1.0f, -1.0f, 0, 1.f, 0.0f); - vbo_shadowdata[11].Set(1.0f, 1.0f, 0, 1.f, 1.f); + vbo_shadowdata[9].Set(3.0f, -1.0f, 0, 2.f, 0.0f); + vbo_shadowdata[10].Set(-1.0f, 3.0f, 0, 0.0f, 2.f); + vbo_shadowdata[11].Set(3.0f, 3.0f, 0, 2.f, 2.f); // Note: not used anymore // The next two are the stencil caps. vbo_shadowdata[12].Set(-32767.0f, 32767.0f, -32767.0f, 0, 0); diff --git a/src/common/rendering/vulkan/renderer/vk_postprocess.cpp b/src/common/rendering/vulkan/renderer/vk_postprocess.cpp index ff2df7572..9d1702834 100644 --- a/src/common/rendering/vulkan/renderer/vk_postprocess.cpp +++ b/src/common/rendering/vulkan/renderer/vk_postprocess.cpp @@ -565,7 +565,7 @@ void VkPPRenderState::RenderScreenQuad(VkPPRenderPassSetup *passSetup, VulkanDes cmdbuffer->setStencilReference(VK_STENCIL_FRONT_AND_BACK, screen->stencilValue); if (pushConstantsSize > 0) cmdbuffer->pushConstants(passSetup->PipelineLayout.get(), VK_SHADER_STAGE_FRAGMENT_BIT, 0, pushConstantsSize, pushConstants); - cmdbuffer->draw(4, 1, FFlatVertexBuffer::PRESENT_INDEX, 0); + cmdbuffer->draw(3, 1, FFlatVertexBuffer::PRESENT_INDEX, 0); cmdbuffer->endRenderPass(); }