mirror of
https://github.com/open-goal/jak-project
synced 2026-06-30 11:51:55 -04:00
fix sky and tfrag bugs (#1058)
This commit is contained in:
@@ -32,15 +32,17 @@ void blend_sky_initial_fast(u8 intensity, u8* out, const u8* in, u32 size) {
|
||||
|
||||
void blend_sky_fast(u8 intensity, u8* out, const u8* in, u32 size) {
|
||||
__m256i intensity_vec = _mm256_set1_epi16(intensity);
|
||||
__m256i max_intensity = _mm256_set1_epi16(255);
|
||||
for (u32 i = 0; i < size / 16; i++) {
|
||||
__m128i tex_data8 = _mm_loadu_si128((const __m128i*)(in + (i * 16)));
|
||||
__m128i out_val = _mm_loadu_si128((const __m128i*)(out + (i * 16)));
|
||||
__m256i tex_data16 = _mm256_cvtepu8_epi16(tex_data8);
|
||||
tex_data16 = _mm256_mullo_epi16(tex_data16, intensity_vec);
|
||||
tex_data16 = _mm256_srli_epi16(tex_data16, 7);
|
||||
tex_data16 = _mm256_min_epi16(max_intensity, tex_data16);
|
||||
auto hi = _mm256_extracti128_si256(tex_data16, 1);
|
||||
auto result = _mm_packus_epi16(_mm256_castsi256_si128(tex_data16), hi);
|
||||
out_val = _mm_add_epi16(out_val, result);
|
||||
out_val = _mm_adds_epu8(out_val, result);
|
||||
_mm_storeu_si128((__m128i*)(out + (i * 16)), out_val);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ bool Tfrag3::update_load(const std::vector<tfrag3::TFragmentTreeKind>& tree_kind
|
||||
case State::UPLOAD_VERTS: {
|
||||
constexpr u32 MAX_VERTS = 40000;
|
||||
bool remaining = false;
|
||||
for (size_t tree_idx = 0; tree_idx < lev_data->tie_trees.size(); tree_idx++) {
|
||||
for (size_t tree_idx = 0; tree_idx < lev_data->tfrag_trees.size(); tree_idx++) {
|
||||
const auto& tree = lev_data->tfrag_trees[tree_idx];
|
||||
|
||||
if (std::find(tree_kinds.begin(), tree_kinds.end(), tree.kind) != tree_kinds.end()) {
|
||||
|
||||
Reference in New Issue
Block a user