From e9febb5d8db01e446aed013e7dd2f4a11f363a2d Mon Sep 17 00:00:00 2001 From: h4570 Date: Sun, 22 Nov 2020 13:15:15 +0100 Subject: [PATCH] changed order of wait/send --- src/engine/modules/gif_sender.cpp | 3 ++- src/engine/modules/vif_sender.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/engine/modules/gif_sender.cpp b/src/engine/modules/gif_sender.cpp index 72b749b..2c69442 100644 --- a/src/engine/modules/gif_sender.cpp +++ b/src/engine/modules/gif_sender.cpp @@ -68,6 +68,7 @@ void GifSender::sendTexture(MeshTexture &texture, texbuffer_t *t_texBuffer) packet2_update(packet2, draw_texture_wrapping(packet2->next, 0, texture.getWrapSettings())); packet2_chain_close_tag(packet2); packet2_update(packet2, draw_texture_flush(packet2->next)); + dma_channel_wait(DMA_CHANNEL_GIF, 0); dma_channel_send_packet2(packet2, DMA_CHANNEL_GIF, true); dma_channel_wait(DMA_CHANNEL_GIF, 0); packet2_free(packet2); @@ -109,8 +110,8 @@ void GifSender::sendPacket() packet2_update(currentPacket, draw_finish(currentPacket->next)); packet2_chain_close_tag(currentPacket); } - dma_channel_send_packet2(currentPacket, DMA_CHANNEL_GIF, true); dma_channel_wait(DMA_CHANNEL_GIF, 0); + dma_channel_send_packet2(currentPacket, DMA_CHANNEL_GIF, true); } /** Adds clear screen to current packet */ diff --git a/src/engine/modules/vif_sender.cpp b/src/engine/modules/vif_sender.cpp index 8425207..2fb21c7 100644 --- a/src/engine/modules/vif_sender.cpp +++ b/src/engine/modules/vif_sender.cpp @@ -63,8 +63,8 @@ void VifSender::uploadMicroProgram() 1); packet2_vu_add_micro_program(packet2, 0, &VU1Draw3D_CodeStart, &VU1Draw3D_CodeEnd); packet2_vu_add_end_tag(packet2); - dma_channel_send_packet2(packet2, DMA_CHANNEL_VIF1, 1); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + dma_channel_send_packet2(packet2, DMA_CHANNEL_VIF1, 1); packet2_free(packet2); } @@ -77,8 +77,8 @@ void VifSender::sendMatrices(const RenderData &t_renderData, const Vector3 &t_po packet2_reset(matricesPacket, false); packet2_vu_add_unpack_data(matricesPacket, 0, &localScreen, 8, 0); packet2_vu_add_end_tag(matricesPacket); - dma_channel_send_packet2(matricesPacket, DMA_CHANNEL_VIF1, 1); dma_channel_wait(DMA_CHANNEL_VIF1, 0); + dma_channel_send_packet2(matricesPacket, DMA_CHANNEL_VIF1, 1); } void VifSender::drawMesh(RenderData *t_renderData, Matrix t_perspective, u32 vertCount2, VECTOR *vertices, VECTOR *normals, VECTOR *coordinates, Mesh &t_mesh, LightBulb *t_bulbs, u16 t_bulbsCount, texbuffer_t *textureBuffer)