Commit graph

48 commits

Author SHA1 Message Date
Henrik Rydgard
fe6d2d4017 Avoid unaligned accesses when hashing vertex data on ARM. Fixes #9114, may help #9128 and #9129. 2016-12-01 15:56:05 +01:00
Florent Castelli
8c3552de74 cmake: Detect features at compile time
Instead of relying on manually passed down flags from CMake,
we now have ppsspp_config.h file to create the platform defines for us.
This improves support for multiplatform builds (such as iOS).
2016-10-19 12:31:19 +02:00
Unknown W. Brackets
9224eb375f Correct bezier handling for 0 division.
This should still be drawn and treated as 1.
2016-04-10 17:53:50 -07:00
Unknown W. Brackets
0cd44e838b Allow spline subdivisions below 2. 2016-04-10 17:33:34 -07:00
Unknown W. Brackets
b1f0d4869c Advance pointers after drawing splines.
Tests show this is just like beziers.
2016-04-10 17:12:48 -07:00
Unknown W. Brackets
868bbb8ebe Advance vertex/index pointers on bezier submit.
Just like other primitives.
2016-04-10 12:59:06 -07:00
Unknown W. Brackets
808c807448 Allow tessellation with less than a 4 factor.
Per tests on real hardware, this is allowed.  It works fine without the
clamping and matches the result on hardware.
2016-04-10 12:10:15 -07:00
Unknown W. Brackets
277b76e2ae Treat GE_PATCHPRIM_UNKNOWN as points.
Confirmed by tests on hardware - although it's doubtful any games use
this type.
2016-04-10 11:58:15 -07:00
Unknown W. Brackets
1e0051a792 Add support for 32-bit indices.
Not clear how often these are used by games.  Let's find out.
2016-04-10 02:24:58 -07:00
Unknown W. Brackets
c0660c5ee7 Simplify some repeated code patterns a bit.
Doesn't save many lines of actual code, though...
2016-04-09 22:25:10 -07:00
Unknown W. Brackets
555c76d439 Use bernstein for texcoord interpolation too.
This also closely matches hardware.
2016-04-09 22:14:15 -07:00
Unknown W. Brackets
2314a0f0ee Update note per hardware testing. 2016-04-09 21:46:50 -07:00
Unknown W. Brackets
2bafba3909 Interpolate bezier patch colors using bernstein.
This closely matches hardware (some color values seem to be off by one.)

See #7525.
2016-04-09 21:41:49 -07:00
Unknown W. Brackets
59d9524308 Switch bernsteins to use sse-friendly Vec3f. 2016-04-09 21:10:52 -07:00
Unknown W. Brackets
2e0f9e5603 Apply prescale to generated UVs with speedhack. 2015-12-20 20:47:36 -08:00
Unknown W. Brackets
7bfe100b0f Fix some unused variable warnings.
The CheckAlpha one looks like it will matter.
2015-11-25 16:11:53 -08:00
Henrik Rydgard
33246ffc8d Non-x86 buildfix 2015-07-29 12:19:15 +02:00
Henrik Rydgard
38a31fbd8b Get rid of more uses of gstate from SplineCommon 2015-07-29 12:04:52 +02:00
Henrik Rydgard
cde585a29a Include dependency cleanup 2015-07-29 11:48:20 +02:00
Henrik Rydgard
53f062b7b2 refactor: Remove some uses of gstate from SplineCommon and a fex texcache functions 2015-07-29 11:40:45 +02:00
Henrik Rydgard
26624709f7 Hook up the frame profiler to a few measurements 2015-05-24 23:45:36 +02:00
Henrik Rydgard
a9ff7c22fe Reject too-small spline patches. Might help #7690. 2015-04-17 08:33:05 +02:00
Henrik Rydgard
68893c763f Spline: Fix an unrelated kind-of-bug 2015-04-16 18:32:37 +02:00
Henrik Rydgard
6587f4de8f Spline: Fix #7684 by removing awful epsilons that "fixed" off-by-ones depending on vertex count because of fp rounding. 2015-04-16 18:32:13 +02:00
Henrik Rydgard
2e38762708 Spline: Add commented-out sanity check for debugging 2015-04-16 18:22:08 +02:00
Henrik Rydgard
b3305246a3 Spline: Not that it should matter, but move the patch_div clamping down after the subsampling 2015-04-16 18:18:49 +02:00
Henrik Rydgard
6bc9a525f8 Spline: remove n and m, confusing 2015-04-16 18:14:46 +02:00
Henrik Rydgard
058499e5bf De-dupe the spline code 2015-04-08 21:44:54 +02:00
Chin
37f50a3792 Change to pass some arguments by reference 2015-03-01 16:49:00 +01:00
Unknown W. Brackets
945ff359b2 Detect SSE4.1 support better when compiling. 2015-02-25 19:53:31 -08:00
Unknown W. Brackets
647e841959 Use SSE in spline value generation too. 2015-02-25 19:51:10 -08:00
Unknown W. Brackets
588efa5a71 Use SSE4.1, if available, for spline normals. 2015-02-25 19:28:52 -08:00
Unknown W. Brackets
f070d6f5ed Use SSE when generating spline normals. 2015-02-25 19:22:48 -08:00
Unknown W. Brackets
8e19f568d7 Optimize spline weighting using SSE and templates.
Makes the Thundaga spell much more survivable on a i7, at least.
2015-02-22 13:24:48 -08:00
Henrik Rydgard
033798c796 Expand spline data into a separate buffer. Prevent overflowing it by reducing the size of spline draws if necessary (but shouldn't really happen).
Might help #7386
2015-01-29 16:04:00 +01:00
Unknown W. Brackets
2e9f492b24 Silence an initialization warning.
Pretty sure it's wrong but this isn't that hot anyway.
2014-12-13 18:36:28 -08:00
Unknown W. Brackets
7ed67ad066 Use floats and SSE for spline colors. 2014-12-13 10:36:09 -08:00
Unknown W. Brackets
e130c1648d Clean up some conversion warnings. 2014-12-13 10:35:47 -08:00
xebra
43e3028add [spline/bezier]Writing vertices to the buffer directly. 2014-12-14 01:08:00 +09:00
xebra
51a5935d9a [spline/bezier]Bernstein function does not need to calculate at the edges. 2014-12-10 01:50:28 +09:00
xebra
9a83c99e19 [spline/bezier]Precompute bernstein derivative functions. 2014-12-10 01:41:02 +09:00
xebra
8ef4a61bf6 [spline/bezier]Spline subdivision counts should be 2 or higher. Related to #4234 #7111 2014-12-09 02:42:52 +09:00
xebra
f6b937fe59 [spline/bezier]Fix sometimes spline disappear in medium quality. Reported on #7111. 2014-12-03 01:49:08 +09:00
xebra
2d59a15ade [spline/bezier]Fix spline tex coords correctly, it seems perfect! 2014-12-03 01:26:40 +09:00
xebra
ad22ffc679 [spline/bezier]Support medium quality. It's half of high quality. High quality is the original. 2014-11-26 12:23:02 +09:00
xebra
8cc7d8c71a [spline/bezier]Fix patch subdivision counts correctly. 2014-11-25 23:47:29 +09:00
Henrik Rydgard
02a89306d1 Warning fixes, sprintf->snprintf 2014-09-13 23:51:07 +02:00
Henrik Rydgard
a4ae0f951a Move spline generation to SplineCommon, make SplineDX9.cpp identical to Spline.cpp (merge later somehow) 2014-09-13 15:13:34 +02:00