dynpip programs

This commit is contained in:
h4570
2022-07-18 22:52:05 +02:00
parent a5e1a28164
commit 9850028811
19 changed files with 377 additions and 11 deletions
@@ -0,0 +1,39 @@
; ______ ____ ___
; | \/ ____| |___|
; | | | \ | |
;---------------------------------------------------------------
; Copyright 2022, tyra - https://github.com/h4570/tyra
; Licenced under Apache License 2.0
; Sandro Sobczyński <sandro.sobczynski@gmail.com>
;
;---------------------------------------------------------------
; Triangle list
; Cull = Standard PS2 way. clipw polys are culled.
; Animation
; Colors
;---------------------------------------------------------------
.syntax new
.name DynPipVU1_C
.vu
.init_vf_all
.init_vi_all
#include "src/renderer/3d/pipeline/shared_macros/vcl_sml.i"
#include "src/renderer/3d/pipeline/shared_macros/tyra_macros.i"
#include "inc/renderer/3d/pipeline/dynamic/programs/dynpip_vu1_shared_defines.h"
#define RGBA_STORE_OFFSET 0
#define XYZ2_STORE_OFFSET 1
--enter
--endenter
#vuprog DynPipVU1C
--cont
#endvuprog
--exit
--endexit
@@ -0,0 +1,46 @@
/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#include "debug/debug.hpp"
#include "renderer/3d/pipeline/dynamic/programs/dynpip_c_vu1_program.hpp"
extern u32 DynPipVU1_C_CodeStart __attribute__((section(".vudata")));
extern u32 DynPipVU1_C_CodeEnd __attribute__((section(".vudata")));
namespace Tyra {
DynPipCVU1Program::DynPipCVU1Program()
: DynPipVU1Program(
DynPipColor, &DynPipVU1_C_CodeStart, &DynPipVU1_C_CodeEnd,
((u64)GIF_REG_RGBAQ) << 0 | ((u64)GIF_REG_XYZ2) << 4, 2, 2) {}
DynPipCVU1Program::~DynPipCVU1Program() {}
std::string DynPipCVU1Program::getStringName() const {
return std::string("DynPip - C");
}
void DynPipCVU1Program::addProgramQBufferDataToPacket(
packet2_t* packet, DynPipQBuffer* qbuffer) const {
// u32 addr = VU1_VERT_DATA_ADDR;
// // Add vertices
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->vertices,
// qbuffer->size, true);
// // Add colors
// if (qbuffer->bag->color->single == nullptr) {
// addr += qbuffer->size;
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->colors,
// qbuffer->size, true);
// }
}
} // namespace Tyra
@@ -0,0 +1,39 @@
; ______ ____ ___
; | \/ ____| |___|
; | | | \ | |
;---------------------------------------------------------------
; Copyright 2022, tyra - https://github.com/h4570/tyra
; Licenced under Apache License 2.0
; Sandro Sobczyński <sandro.sobczynski@gmail.com>
;
;---------------------------------------------------------------
; Triangle list
; Cull = Standard PS2 way. clipw polys are culled.
; Animation
; Directional lights
;---------------------------------------------------------------
.syntax new
.name DynPipVU1_D
.vu
.init_vf_all
.init_vi_all
#include "src/renderer/3d/pipeline/shared_macros/vcl_sml.i"
#include "src/renderer/3d/pipeline/shared_macros/tyra_macros.i"
#include "inc/renderer/3d/pipeline/dynamic/programs/dynpip_vu1_shared_defines.h"
#define RGBA_STORE_OFFSET 0
#define XYZ2_STORE_OFFSET 1
--enter
--endenter
#vuprog DynPipVU1D
--cont
#endvuprog
--exit
--endexit
@@ -0,0 +1,51 @@
/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#include "debug/debug.hpp"
#include "renderer/3d/pipeline/dynamic/programs/dynpip_d_vu1_program.hpp"
extern u32 DynPipVU1_D_CodeStart __attribute__((section(".vudata")));
extern u32 DynPipVU1_D_CodeEnd __attribute__((section(".vudata")));
namespace Tyra {
DynPipDVU1Program::DynPipDVU1Program()
: DynPipVU1Program(
DynPipDirLights, &DynPipVU1_D_CodeStart, &DynPipVU1_D_CodeEnd,
((u64)GIF_REG_RGBAQ) << 0 | ((u64)GIF_REG_XYZ2) << 4, 2, 3) {}
DynPipDVU1Program::~DynPipDVU1Program() {}
std::string DynPipDVU1Program::getStringName() const {
return std::string("DynPip - D");
}
void DynPipDVU1Program::addProgramQBufferDataToPacket(
packet2_t* packet, DynPipQBuffer* qbuffer) const {
// u32 addr = VU1_VERT_DATA_ADDR;
// // Add vertices
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->vertices,
// qbuffer->size, true);
// addr += qbuffer->size;
// // Add normal
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->normals,
// qbuffer->size, true);
// // Add colors
// if (qbuffer->bag->color->single == nullptr) {
// addr += qbuffer->size;
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->colors,
// qbuffer->size, true);
// }
}
} // namespace Tyra
@@ -0,0 +1,40 @@
; ______ ____ ___
; | \/ ____| |___|
; | | | \ | |
;---------------------------------------------------------------
; Copyright 2022, tyra - https://github.com/h4570/tyra
; Licenced under Apache License 2.0
; Sandro Sobczyński <sandro.sobczynski@gmail.com>
;
;---------------------------------------------------------------
; Triangle list
; Cull = Standard PS2 way. clipw polys are culled.
; Animation
; Lighting, texture, colors
;---------------------------------------------------------------
.syntax new
.name DynPipVU1_TC
.vu
.init_vf_all
.init_vi_all
#include "src/renderer/3d/pipeline/shared_macros/vcl_sml.i"
#include "src/renderer/3d/pipeline/shared_macros/tyra_macros.i"
#include "inc/renderer/3d/pipeline/dynamic/programs/dynpip_vu1_shared_defines.h"
#define STQ_STORE_OFFSET 0
#define RGBA_STORE_OFFSET 1
#define XYZ2_STORE_OFFSET 2
--enter
--endenter
#vuprog DynPipVU1TC
--cont
#endvuprog
--exit
--endexit
@@ -0,0 +1,53 @@
/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#include "debug/debug.hpp"
#include "renderer/3d/pipeline/dynamic/programs/dynpip_tc_vu1_program.hpp"
extern u32 DynPipVU1_TC_CodeStart __attribute__((section(".vudata")));
extern u32 DynPipVU1_TC_CodeEnd __attribute__((section(".vudata")));
namespace Tyra {
DynPipTCVU1Program::DynPipTCVU1Program()
: DynPipVU1Program(DynPipTextureColor, &DynPipVU1_TC_CodeStart,
&DynPipVU1_TC_CodeEnd,
((u64)GIF_REG_ST) << 0 | ((u64)GIF_REG_RGBAQ) << 4 |
((u64)GIF_REG_XYZ2) << 8,
3, 3) {}
DynPipTCVU1Program::~DynPipTCVU1Program() {}
std::string DynPipTCVU1Program::getStringName() const {
return std::string("DynPip - TC");
}
void DynPipTCVU1Program::addProgramQBufferDataToPacket(
packet2_t* packet, DynPipQBuffer* qbuffer) const {
// u32 addr = VU1_VERT_DATA_ADDR;
// // Add vertices
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->vertices,
// qbuffer->size, true);
// addr += qbuffer->size;
// // Add sts
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->sts, qbuffer->size,
// true);
// // Add colors
// if (qbuffer->bag->color->single == nullptr) {
// addr += qbuffer->size;
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->colors,
// qbuffer->size, true);
// }
}
} // namespace Tyra
@@ -0,0 +1,40 @@
; ______ ____ ___
; | \/ ____| |___|
; | | | \ | |
;---------------------------------------------------------------
; Copyright 2022, tyra - https://github.com/h4570/tyra
; Licenced under Apache License 2.0
; Sandro Sobczyński <sandro.sobczynski@gmail.com>
;
;---------------------------------------------------------------
; Triangle list
; Cull = Standard PS2 way. clipw polys are culled.
; Animation
; Texture, directional lights
;---------------------------------------------------------------
.syntax new
.name DynPipVU1_TD
.vu
.init_vf_all
.init_vi_all
#include "src/renderer/3d/pipeline/shared_macros/vcl_sml.i"
#include "src/renderer/3d/pipeline/shared_macros/tyra_macros.i"
#include "inc/renderer/3d/pipeline/dynamic/programs/dynpip_vu1_shared_defines.h"
#define STQ_STORE_OFFSET 0
#define RGBA_STORE_OFFSET 1
#define XYZ2_STORE_OFFSET 2
--enter
--endenter
#vuprog DynPipVU1TD
--cont
#endvuprog
--exit
--endexit
@@ -0,0 +1,58 @@
/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#include "debug/debug.hpp"
#include "renderer/3d/pipeline/dynamic/programs/dynpip_td_vu1_program.hpp"
extern u32 DynPipVU1_TD_CodeStart __attribute__((section(".vudata")));
extern u32 DynPipVU1_TD_CodeEnd __attribute__((section(".vudata")));
namespace Tyra {
DynPipTDVU1Program::DynPipTDVU1Program()
: DynPipVU1Program(DynPipTextureDirLights, &DynPipVU1_TD_CodeStart,
&DynPipVU1_TD_CodeEnd,
((u64)GIF_REG_ST) << 0 | ((u64)GIF_REG_RGBAQ) << 4 |
((u64)GIF_REG_XYZ2) << 8,
3, 4) {}
DynPipTDVU1Program::~DynPipTDVU1Program() {}
std::string DynPipTDVU1Program::getStringName() const {
return std::string("DynPip - TD");
}
void DynPipTDVU1Program::addProgramQBufferDataToPacket(
packet2_t* packet, DynPipQBuffer* qbuffer) const {
// u32 addr = VU1_VERT_DATA_ADDR;
// // Add vertices
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->vertices,
// qbuffer->size, true);
// addr += qbuffer->size;
// // Add sts
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->sts, qbuffer->size,
// true);
// addr += qbuffer->size;
// // Add normal
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->normals,
// qbuffer->size, true);
// // Add colors
// if (qbuffer->bag->color->single == nullptr) {
// addr += qbuffer->size;
// packet2_utils_vu_add_unpack_data(packet, addr, qbuffer->colors,
// qbuffer->size, true);
// }
}
} // namespace Tyra
@@ -22,7 +22,7 @@ McpipAsIsVU1Program::McpipAsIsVU1Program()
McpipAsIsVU1Program::~McpipAsIsVU1Program() {} McpipAsIsVU1Program::~McpipAsIsVU1Program() {}
std::string McpipAsIsVU1Program::getStringName() const { std::string McpipAsIsVU1Program::getStringName() const {
return std::string("As is"); return std::string("McPip - As is");
} }
} // namespace Tyra } // namespace Tyra
@@ -22,7 +22,7 @@ McpipCullVU1Program::McpipCullVU1Program()
McpipCullVU1Program::~McpipCullVU1Program() {} McpipCullVU1Program::~McpipCullVU1Program() {}
std::string McpipCullVU1Program::getStringName() const { std::string McpipCullVU1Program::getStringName() const {
return std::string("Cull"); return std::string("McPip - Cull");
} }
} // namespace Tyra } // namespace Tyra
@@ -25,7 +25,7 @@ StaPipAsIsCVU1Program::StaPipAsIsCVU1Program()
StaPipAsIsCVU1Program::~StaPipAsIsCVU1Program() {} StaPipAsIsCVU1Program::~StaPipAsIsCVU1Program() {}
std::string StaPipAsIsCVU1Program::getStringName() const { std::string StaPipAsIsCVU1Program::getStringName() const {
return std::string("As is - C"); return std::string("StaPip - As is - C");
} }
void StaPipAsIsCVU1Program::addProgramQBufferDataToPacket( void StaPipAsIsCVU1Program::addProgramQBufferDataToPacket(
@@ -25,7 +25,7 @@ StaPipAsIsDVU1Program::StaPipAsIsDVU1Program()
StaPipAsIsDVU1Program::~StaPipAsIsDVU1Program() {} StaPipAsIsDVU1Program::~StaPipAsIsDVU1Program() {}
std::string StaPipAsIsDVU1Program::getStringName() const { std::string StaPipAsIsDVU1Program::getStringName() const {
return std::string("As is - LC"); return std::string("StaPip - As is - D");
} }
void StaPipAsIsDVU1Program::addProgramQBufferDataToPacket( void StaPipAsIsDVU1Program::addProgramQBufferDataToPacket(
@@ -26,7 +26,7 @@ StaPipAsIsTCVU1Program::StaPipAsIsTCVU1Program()
StaPipAsIsTCVU1Program::~StaPipAsIsTCVU1Program() {} StaPipAsIsTCVU1Program::~StaPipAsIsTCVU1Program() {}
std::string StaPipAsIsTCVU1Program::getStringName() const { std::string StaPipAsIsTCVU1Program::getStringName() const {
return std::string("As is - TC"); return std::string("StaPip - As is - TC");
} }
void StaPipAsIsTCVU1Program::addProgramQBufferDataToPacket( void StaPipAsIsTCVU1Program::addProgramQBufferDataToPacket(
@@ -26,7 +26,7 @@ StaPipAsIsTDVU1Program::StaPipAsIsTDVU1Program()
StaPipAsIsTDVU1Program::~StaPipAsIsTDVU1Program() {} StaPipAsIsTDVU1Program::~StaPipAsIsTDVU1Program() {}
std::string StaPipAsIsTDVU1Program::getStringName() const { std::string StaPipAsIsTDVU1Program::getStringName() const {
return std::string("As is - LTC"); return std::string("StaPip - As is - TD");
} }
void StaPipAsIsTDVU1Program::addProgramQBufferDataToPacket( void StaPipAsIsTDVU1Program::addProgramQBufferDataToPacket(
@@ -9,7 +9,7 @@
;--------------------------------------------------------------- ;---------------------------------------------------------------
; Triangle list ; Triangle list
; Cull = Standard PS2 way. clipw polys are culled. ; Cull = Standard PS2 way. clipw polys are culled.
; Volors ; Colors
;--------------------------------------------------------------- ;---------------------------------------------------------------
.syntax new .syntax new
@@ -24,7 +24,7 @@ StaPipCullCVU1Program::StaPipCullCVU1Program()
StaPipCullCVU1Program::~StaPipCullCVU1Program() {} StaPipCullCVU1Program::~StaPipCullCVU1Program() {}
std::string StaPipCullCVU1Program::getStringName() const { std::string StaPipCullCVU1Program::getStringName() const {
return std::string("Cull - C"); return std::string("StaPip - Cull - C");
} }
void StaPipCullCVU1Program::addProgramQBufferDataToPacket( void StaPipCullCVU1Program::addProgramQBufferDataToPacket(
@@ -25,7 +25,7 @@ StaPipCullDVU1Program::StaPipCullDVU1Program()
StaPipCullDVU1Program::~StaPipCullDVU1Program() {} StaPipCullDVU1Program::~StaPipCullDVU1Program() {}
std::string StaPipCullDVU1Program::getStringName() const { std::string StaPipCullDVU1Program::getStringName() const {
return std::string("Cull - LC"); return std::string("StaPip - Cull - D");
} }
void StaPipCullDVU1Program::addProgramQBufferDataToPacket( void StaPipCullDVU1Program::addProgramQBufferDataToPacket(
@@ -26,7 +26,7 @@ StaPipCullTCVU1Program::StaPipCullTCVU1Program()
StaPipCullTCVU1Program::~StaPipCullTCVU1Program() {} StaPipCullTCVU1Program::~StaPipCullTCVU1Program() {}
std::string StaPipCullTCVU1Program::getStringName() const { std::string StaPipCullTCVU1Program::getStringName() const {
return std::string("Cull - TC"); return std::string("StaPip - Cull - TC");
} }
void StaPipCullTCVU1Program::addProgramQBufferDataToPacket( void StaPipCullTCVU1Program::addProgramQBufferDataToPacket(
@@ -26,7 +26,7 @@ StaPipCullTDVU1Program::StaPipCullTDVU1Program()
StaPipCullTDVU1Program::~StaPipCullTDVU1Program() {} StaPipCullTDVU1Program::~StaPipCullTDVU1Program() {}
std::string StaPipCullTDVU1Program::getStringName() const { std::string StaPipCullTDVU1Program::getStringName() const {
return std::string("Cull - LTC"); return std::string("StaPip - Cull - TD");
} }
void StaPipCullTDVU1Program::addProgramQBufferDataToPacket( void StaPipCullTDVU1Program::addProgramQBufferDataToPacket(