mirror of
https://github.com/open-goal/jak-project
synced 2026-08-05 01:30:22 -04:00
[jak2] Floating point blerc (#2715)
This moves the blerc math from mips2c to the Merc2 renderer, and uses floats instead. We could potentially do this on the GPU, which would be even faster, but this isn't that slow in the first place.
This commit is contained in:
@@ -398,6 +398,11 @@ void MercDraw::serialize(Serializer& ser) {
|
||||
ser.from_ptr(&num_triangles);
|
||||
}
|
||||
|
||||
void Blerc::serialize(Serializer& ser) {
|
||||
ser.from_pod_vector(&float_data);
|
||||
ser.from_pod_vector(&int_data);
|
||||
}
|
||||
|
||||
void MercModifiableDrawGroup::serialize(Serializer& ser) {
|
||||
if (ser.is_saving()) {
|
||||
ser.save<size_t>(mod_draw.size());
|
||||
@@ -420,6 +425,8 @@ void MercModifiableDrawGroup::serialize(Serializer& ser) {
|
||||
ser.from_pod_vector(&vertex_lump4_addr);
|
||||
ser.from_pod_vector(&fragment_mask);
|
||||
ser.from_ptr(&expect_vidx_end);
|
||||
|
||||
blerc.serialize(ser);
|
||||
}
|
||||
|
||||
void MercEffect::serialize(Serializer& ser) {
|
||||
@@ -537,6 +544,8 @@ void MercModifiableDrawGroup::memory_usage(MemoryUsageTracker* tracker) const {
|
||||
tracker->add(MemoryUsageCategory::MERC_MOD_DRAW_1, sizeof(MercDraw) * fix_draw.size());
|
||||
tracker->add(MemoryUsageCategory::MERC_MOD_DRAW_2, sizeof(MercDraw) * mod_draw.size());
|
||||
tracker->add(MemoryUsageCategory::MERC_MOD_TABLE, sizeof(u16) * vertex_lump4_addr.size());
|
||||
tracker->add(MemoryUsageCategory::BLERC, sizeof(BlercFloatData) * blerc.float_data.size());
|
||||
tracker->add(MemoryUsageCategory::BLERC, sizeof(u32) * blerc.int_data.size());
|
||||
}
|
||||
|
||||
void MercEffect::memory_usage(MemoryUsageTracker* tracker) const {
|
||||
@@ -688,6 +697,7 @@ void print_memory_usage(const tfrag3::Level& lev, int uncompressed_data_size) {
|
||||
{"merc-mod-table", mem_use.data[tfrag3::MemoryUsageCategory::MERC_MOD_TABLE]},
|
||||
{"merc-mod-draw-1", mem_use.data[tfrag3::MemoryUsageCategory::MERC_MOD_DRAW_1]},
|
||||
{"merc-mod-draw-2", mem_use.data[tfrag3::MemoryUsageCategory::MERC_MOD_DRAW_2]},
|
||||
{"blerc", mem_use.data[tfrag3::MemoryUsageCategory::BLERC]},
|
||||
};
|
||||
for (auto& known : known_categories) {
|
||||
total_accounted += known.second;
|
||||
|
||||
Reference in New Issue
Block a user