From b8aa40cba8a5ba3e50bf326b1c46cd0dc04bc5cb Mon Sep 17 00:00:00 2001 From: h4570 Date: Sun, 14 Aug 2022 18:58:49 +0200 Subject: [PATCH] increased spammer count for stapip --- .../renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp | 2 +- engine/src/renderer/3d/pipeline/dynamic/dynamic_pipeline.cpp | 2 ++ .../renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp | 2 ++ .../pipeline/minecraft/programs/mcpip_programs_manager.cpp | 3 ++- .../3d/pipeline/static/core/stapip_qbuffer_renderer.cpp | 5 +++-- engine/src/renderer/3d/pipeline/static/static_pipeline.cpp | 2 ++ 6 files changed, 12 insertions(+), 4 deletions(-) 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 baafdfd..c174740 100644 --- a/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp +++ b/engine/src/renderer/3d/pipeline/dynamic/core/dynpip_renderer.cpp @@ -56,7 +56,6 @@ void DynPipRenderer::init(RendererCore* t_core, programsRepo = t_programRepo; dma_channel_initialize(DMA_CHANNEL_VIF1, NULL, 0); - dma_channel_fast_waits(DMA_CHANNEL_VIF1); setProgramsCache(); @@ -188,6 +187,7 @@ void DynPipRenderer::addBufferDataToPacket(DynPipVU1Program* program, void DynPipRenderer::sendPacket() { dma_channel_wait(DMA_CHANNEL_VIF1, 0); + // dma_wait_fast(); // This have no impact on performance dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true); TYRA_ASSERT(packet2_get_qw_count(currentPacket) <= packetSize, diff --git a/engine/src/renderer/3d/pipeline/dynamic/dynamic_pipeline.cpp b/engine/src/renderer/3d/pipeline/dynamic/dynamic_pipeline.cpp index ff1fe9a..8163dcd 100644 --- a/engine/src/renderer/3d/pipeline/dynamic/dynamic_pipeline.cpp +++ b/engine/src/renderer/3d/pipeline/dynamic/dynamic_pipeline.cpp @@ -29,6 +29,8 @@ void DynamicPipeline::setRenderer(RendererCore* t_core) { } void DynamicPipeline::onUse() { + dma_channel_fast_waits(DMA_CHANNEL_VIF1); + colorsCache = new Vec4[4]; buffers = new DynPipBag[buffersCount]; diff --git a/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp b/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp index e50d2c7..8fbb9ae 100644 --- a/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp +++ b/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp @@ -58,6 +58,8 @@ void MinecraftPipeline::setLod() { } void MinecraftPipeline::onUse() { + dma_channel_fast_waits(DMA_CHANNEL_VIF1); + spamBuffers = new McpipBlock**[spamBuffersCount]; spamCounts = new u32[spamBuffersCount]; 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 b037ab5..08b6853 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 @@ -18,7 +18,6 @@ BlockizerProgramsManager::BlockizerProgramsManager() { vu1BlockData = BlockNotUploaded; dma_channel_initialize(DMA_CHANNEL_VIF1, NULL, 0); - dma_channel_fast_waits(DMA_CHANNEL_VIF1); setProgramsCache(); } @@ -169,6 +168,8 @@ void BlockizerProgramsManager::sendPacket(McpipProgram* program) { packet2_utils_vu_add_end_tag(currentPacket); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + // dma_wait_fast(); // This have no impact on performance + dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true); context = !context; } 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 7b78a0a..266555b 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 @@ -42,7 +42,7 @@ namespace Tyra { * */ -const u16 StaPipQBufferRenderer::buffersCount = 16; +const u16 StaPipQBufferRenderer::buffersCount = 32; StaPipQBufferRenderer::StaPipQBufferRenderer() { currentBufferIndex = 0; @@ -99,7 +99,6 @@ void StaPipQBufferRenderer::init(RendererCore* t_core, prim_t* t_prim, lod = t_lod; dma_channel_initialize(DMA_CHANNEL_VIF1, NULL, 0); - dma_channel_fast_waits(DMA_CHANNEL_VIF1); setProgramsCache(); @@ -365,6 +364,8 @@ void StaPipQBufferRenderer::sendPacket() { "Packet is too big. Internal error"); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + // dma_wait_fast(); // This have no impact on performance + dma_channel_send_packet2(currentPacket, DMA_CHANNEL_VIF1, true); // Switch packet, so we can proceed during DMA transfer diff --git a/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp b/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp index 0a91654..2efa033 100644 --- a/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp +++ b/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp @@ -26,6 +26,8 @@ void StaticPipeline::setRenderer(RendererCore* t_core) { } void StaticPipeline::onUse() { + dma_channel_fast_waits(DMA_CHANNEL_VIF1); + colorsCache = new Vec4[4]; core.allocateOnUse(); core.reinitVU1Programs();