mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Then add the early-outs for NEON too.
This commit is contained in:
parent
9647872a09
commit
0eb3702ecb
1 changed files with 16 additions and 12 deletions
|
@ -163,19 +163,23 @@ void IndexGenerator::AddStrip(int numVerts, bool clockwise) {
|
||||||
u16 *dst = inds_;
|
u16 *dst = inds_;
|
||||||
uint16x8_t offsets0 = vaddq_u16(ibase8, vld1q_u16(offsets));
|
uint16x8_t offsets0 = vaddq_u16(ibase8, vld1q_u16(offsets));
|
||||||
vst1q_u16(dst, offsets0);
|
vst1q_u16(dst, offsets0);
|
||||||
uint16x8_t offsets1 = vaddq_u16(ibase8, vld1q_u16(offsets + 8));
|
if (numTris > 2) {
|
||||||
vst1q_u16(dst + 8, offsets1);
|
uint16x8_t offsets1 = vaddq_u16(ibase8, vld1q_u16(offsets + 8));
|
||||||
uint16x8_t offsets2 = vaddq_u16(ibase8, vld1q_u16(offsets + 16));
|
|
||||||
vst1q_u16(dst + 16, offsets2);
|
|
||||||
uint16x8_t increment = vdupq_n_u16(8);
|
|
||||||
for (int i = 1; i < numChunks; i++) {
|
|
||||||
dst += 3 * 8;
|
|
||||||
offsets0 = vaddq_u16(offsets0, increment);
|
|
||||||
offsets1 = vaddq_u16(offsets1, increment);
|
|
||||||
offsets2 = vaddq_u16(offsets2, increment);
|
|
||||||
vst1q_u16(dst, offsets0);
|
|
||||||
vst1q_u16(dst + 8, offsets1);
|
vst1q_u16(dst + 8, offsets1);
|
||||||
vst1q_u16(dst + 16, offsets2);
|
if (numTris > 5) {
|
||||||
|
uint16x8_t offsets2 = vaddq_u16(ibase8, vld1q_u16(offsets + 16));
|
||||||
|
vst1q_u16(dst + 16, offsets2);
|
||||||
|
uint16x8_t increment = vdupq_n_u16(8);
|
||||||
|
for (int i = 1; i < numChunks; i++) {
|
||||||
|
dst += 3 * 8;
|
||||||
|
offsets0 = vaddq_u16(offsets0, increment);
|
||||||
|
offsets1 = vaddq_u16(offsets1, increment);
|
||||||
|
offsets2 = vaddq_u16(offsets2, increment);
|
||||||
|
vst1q_u16(dst, offsets0);
|
||||||
|
vst1q_u16(dst + 8, offsets1);
|
||||||
|
vst1q_u16(dst + 16, offsets2);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
inds_ += numTris * 3;
|
inds_ += numTris * 3;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Reference in a new issue