Commit Graph

150 Commits

Author SHA1 Message Date
xebra 65be0aa002 [spline/bezier]Move index conversion logic to tiny class. 2017-01-23 14:12:02 +01:00
Henrik Rydgard 9d7983eee8 Remove the ability to turn off prescaleUV entirely. It's simply better to do it in the vertex decoder. 2016-12-20 13:27:44 +01:00
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