mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Updated meshoptimizer.
This commit is contained in:
2
3rdparty/meshoptimizer/LICENSE.md
vendored
2
3rdparty/meshoptimizer/LICENSE.md
vendored
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016-2020 Arseny Kapoulkine
|
||||
Copyright (c) 2016-2021 Arseny Kapoulkine
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
8
3rdparty/meshoptimizer/src/meshoptimizer.h
vendored
8
3rdparty/meshoptimizer/src/meshoptimizer.h
vendored
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* meshoptimizer - version 0.15
|
||||
* meshoptimizer - version 0.16
|
||||
*
|
||||
* Copyright (C) 2016-2020, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
||||
* Copyright (C) 2016-2021, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
||||
* Report bugs and download new versions at https://github.com/zeux/meshoptimizer
|
||||
*
|
||||
* This library is distributed under the MIT License. See notice at the end of this file.
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
/* Version macro; major * 1000 + minor * 10 + patch */
|
||||
#define MESHOPTIMIZER_VERSION 150 /* 0.15 */
|
||||
#define MESHOPTIMIZER_VERSION 160 /* 0.16 */
|
||||
|
||||
/* If no API is defined, assume default */
|
||||
#ifndef MESHOPTIMIZER_API
|
||||
@@ -1004,7 +1004,7 @@ inline void meshopt_spatialSortTriangles(T* destination, const T* indices, size_
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Copyright (c) 2016-2020 Arseny Kapoulkine
|
||||
* Copyright (c) 2016-2021 Arseny Kapoulkine
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
|
||||
14
3rdparty/meshoptimizer/src/vertexcodec.cpp
vendored
14
3rdparty/meshoptimizer/src/vertexcodec.cpp
vendored
@@ -710,18 +710,12 @@ static v128_t decodeShuffleMask(unsigned char mask0, unsigned char mask1)
|
||||
SIMD_TARGET
|
||||
static void wasmMoveMask(v128_t mask, unsigned char& mask0, unsigned char& mask1)
|
||||
{
|
||||
v128_t mask_0 = wasm_v32x4_shuffle(mask, mask, 0, 2, 1, 3);
|
||||
|
||||
uint64_t mask_1a = wasm_i64x2_extract_lane(mask_0, 0) & 0x0804020108040201ull;
|
||||
uint64_t mask_1b = wasm_i64x2_extract_lane(mask_0, 1) & 0x8040201080402010ull;
|
||||
// magic constant found using z3 SMT assuming mask has 8 groups of 0xff or 0x00
|
||||
const uint64_t magic = 0x000103070f1f3f80ull;
|
||||
|
||||
// TODO: This can use v8x16_bitmask in the future
|
||||
uint64_t mask_2 = mask_1a | mask_1b;
|
||||
uint64_t mask_4 = mask_2 | (mask_2 >> 16);
|
||||
uint64_t mask_8 = mask_4 | (mask_4 >> 8);
|
||||
|
||||
mask0 = uint8_t(mask_8);
|
||||
mask1 = uint8_t(mask_8 >> 32);
|
||||
mask0 = uint8_t((wasm_i64x2_extract_lane(mask, 0) * magic) >> 56);
|
||||
mask1 = uint8_t((wasm_i64x2_extract_lane(mask, 1) * magic) >> 56);
|
||||
}
|
||||
|
||||
SIMD_TARGET
|
||||
|
||||
Reference in New Issue
Block a user