From 1dbd2d6a5ac99a5ec0db0e3d4451bc10ddd54e47 Mon Sep 17 00:00:00 2001 From: h4570 Date: Mon, 12 Feb 2024 00:10:40 +0100 Subject: [PATCH] Fix glitched texture --- .../src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp | 2 ++ .../3d/pipeline/minecraft/programs/mcpip_programs_manager.cpp | 3 +++ .../3d/pipeline/static/core/stapip_qbuffer_renderer.cpp | 3 +++ 3 files changed, 8 insertions(+) diff --git a/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp b/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp index fef2f6f..de4c204 100644 --- a/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp +++ b/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp @@ -189,6 +189,8 @@ void DynPipRenderer::addBufferDataToPacket(DynPipBag** bags, const u32& count) { void DynPipRenderer::sendPacket() { dma_channel_wait(DMA_CHANNEL_VIF1, 0); + dma_channel_wait(DMA_CHANNEL_GIF, 0); // Wait for texture. Issue #182. + // dma_wait_fast(); // This have no impact on performance dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true); diff --git a/engine/src/renderer/3d/pipeline/minecraft/programs/mcpip_programs_manager.cpp b/engine/src/renderer/3d/pipeline/minecraft/programs/mcpip_programs_manager.cpp index 248a7a6..ddcda2b 100644 --- a/engine/src/renderer/3d/pipeline/minecraft/programs/mcpip_programs_manager.cpp +++ b/engine/src/renderer/3d/pipeline/minecraft/programs/mcpip_programs_manager.cpp @@ -87,6 +87,7 @@ void BlockizerProgramsManager::uploadBlock(bool isMulti) { vu1BlockData = isMulti ? BlockMultiUploaded : BlockSingleUploaded; dma_channel_wait(DMA_CHANNEL_VIF1, 0); + // dma_channel_wait(DMA_CHANNEL_GIF, 0); // ? - ? dma_channel_send_packet2(staticPacket, DMA_CHANNEL_VIF1, true); } @@ -168,6 +169,8 @@ void BlockizerProgramsManager::sendPacket(McpipProgram* program) { packet2_utils_vu_add_end_tag(currentPacket); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + dma_channel_wait(DMA_CHANNEL_GIF, 0); // Wait for texture. Issue #182. + // dma_wait_fast(); // This have no impact on performance dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true); diff --git a/engine/src/renderer/3d/pipeline/static/core/stapip_qbuffer_renderer.cpp b/engine/src/renderer/3d/pipeline/static/core/stapip_qbuffer_renderer.cpp index 1bf1adc..3e32cc4 100644 --- a/engine/src/renderer/3d/pipeline/static/core/stapip_qbuffer_renderer.cpp +++ b/engine/src/renderer/3d/pipeline/static/core/stapip_qbuffer_renderer.cpp @@ -173,6 +173,7 @@ void StaPipQBufferRenderer::sendObjectData( packet2_utils_vu_add_end_tag(objectDataPacket); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + // dma_channel_wait(DMA_CHANNEL_GIF, 0); // 289 - 294 dma_channel_send_packet2(objectDataPacket, DMA_CHANNEL_VIF1, true); } @@ -365,6 +366,8 @@ void StaPipQBufferRenderer::sendPacket() { "Packet is too big. Internal error"); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + dma_channel_wait(DMA_CHANNEL_GIF, 0); // Wait for texture. Issue #182. + // dma_wait_fast(); // This have no impact on performance dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true);