Commit Graph

102 Commits

Author SHA1 Message Date
Henrik Rydgård ccd594dae7 Revert "VertexLoader: Remove now-unused weights translation code"
This reverts commit 44100c6c1d.
2018-04-10 12:30:49 +02:00
Henrik Rydgård 8953d7ff73 Revert "Comment fixes, reindentation."
This reverts commit 6fa9fcefb2.
2018-04-10 12:14:23 +02:00
Henrik Rydgård 69309aa400 Revert "Remove some remains of software skinning"
This reverts commit 2d33d526b8.
2018-04-10 11:21:56 +02:00
Henrik Rydgård 614cabb115 Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
The raw pipeline cache got pretty large. Instead, store IDs like GL.

There's still a disabled option to store the pipeline cache objects.
2018-03-16 21:03:03 +01:00
Henrik Rydgård 2d33d526b8 Remove some remains of software skinning 2018-03-16 20:38:05 +01:00
Henrik Rydgård 6fa9fcefb2 Comment fixes, reindentation. 2018-03-05 00:03:47 +01:00
Henrik Rydgård 44100c6c1d VertexLoader: Remove now-unused weights translation code 2018-03-05 00:03:47 +01:00
Henrik Rydgård 66cbad443a Add necessary decode functions to support morph+skin 2018-03-05 00:03:47 +01:00
Henrik Rydgård 45cfda4aa0 Small refactoring in VertexDecoderCommon 2018-03-05 00:03:47 +01:00
Henrik Rydgård 28b60a724f Process immediate draw commands. Not yet sending to graphics backends. 2017-11-24 17:54:56 +01:00
Henrik Rydgård 3e749a94ce Vulkan: Fix bug where we ended up creating duplicate pipelines even if vertices decoded to the same format, if they were created from different formats.
This can cut down the number of pipelines to a third or less in some
games. However, benefit is likely smaller since Vulkan drivers will
deduplicate shaders inside each vkPipelineCache object.

Helps #10106 while not actually implementing any of the suggestions inside.
2017-11-13 11:22:33 +01:00
Henrik Rydgård 6a1fa728d8 Remove Globals.h 2017-08-31 17:15:22 +02:00
Henrik Rydgård 2f85e6516e Minor optimizations (use the new hashmap in a few more places) 2017-08-20 19:18:46 +02:00
Unknown W. Brackets d62f5f9fe2 GE Debugger: Add some comments and cleanup. 2017-06-04 14:51:27 -07:00
Unknown W. Brackets b2bd966adf GE Debugger: Implement basic recording.
A bit slow since it searches really hard for dups, but otherwise the file
is often very large.
2017-06-03 15:29:09 -07:00
Unknown W. Brackets 257f8dbbc6 GPU: Remove now-unused vertex decoder funcs.
We always convert to float now, so these functions are no longer used.
2017-05-06 18:55:16 -07:00
Unknown W. Brackets ede9025447 SoftGPU: Simplify index conversion. 2017-04-15 21:01:17 -07:00
Henrik Rydgard 1dbeca0618 Only support decoding UV to float in vertex formats. Supporting u8 and 16 was more complexity than it's worth. 2016-12-20 13:42:54 +01:00
Henrik Rydgard 5d5f10d956 Attempts to counter crashes seen in the Google Play developer console 2016-12-01 22:07:03 +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 ebce8d2753 Don't convert to float with prescale off.
Since we assume we need to normalize, it seems.
2016-04-16 19:00:34 -07:00
Unknown W. Brackets ff802a983a vertexjit: Implement x86 tc morph decoding. 2016-04-16 18:38:08 -07:00
Unknown W. Brackets 614665068a Implement morphing for texcoords.
Tests show that this can be used.
2016-04-16 18:38:06 -07:00
Unknown W. Brackets a0397bce4c Hopefully fix prescale in remasters.
Don't actually have a remaster to test, though.
2016-04-13 23:15:41 -07:00
Henrik Rydgard da50370328 Split out VulkanTexture from VulkanContext.cpp/h into VulkanImage.cpp/h 2016-03-20 19:31:02 +01:00
Henrik Rydgard 58b07e00d7 Assorted fixes and cleanups. 2016-03-06 11:46:41 -08:00
gmvbif 281f0e18e6 Fixed some errors from PVS-Studio in Core project
FixedSizeQueue
- Added private operator=
- Changed signature of EndPop
Some changed to printf like functions.
Fixed typo in syn-att.c
2015-12-31 10:25:11 +03:00
Henrik Rydgard 6a373fe09a Make it possible to view vertex decoders through the shader viewing mechanism (even though they aren't strictly shaders, they fit the model). 2015-10-24 10:41:31 +02:00
Unknown W. Brackets 327ca4c96e Stub invalid vertex decoder colors to avoid crash.
These values are invalid, but before we'd call a null pointer if we hit
them.  Should do tests to see what actual behavior is.
2015-04-17 23:24:21 -07:00
Henrik Rydgard 5496b3d3b1 ARM64: Some minor vertex decoder work. Hm, I think SCVTF will actually divide by 128.0, not 127.0 :/ 2015-04-06 18:13:20 +02:00
Henrik Rydgard b309c83973 Initial work on ARM64, based on the ARM jit. 2015-04-06 18:13:01 +02:00
Unknown W. Brackets 39cb74a8d3 Simplify transform in throughmode/sw (rectangles.)
This should make it a bit faster, a bit less work.
2015-03-08 13:12:13 -07:00
Unknown W. Brackets 29e6197e6f Floor float z coords in throughmode.
Fixes #6766 in 32-bit mode only.
2015-02-22 21:04:48 -08:00
xSacha 88b1c00a67 MIPS: Complete MIPSX rename for buildfix. 2014-11-19 07:55:44 +10:00
xSacha 3172fa22e2 Integrate new MIPS emitter. 2014-11-18 08:40:57 -08:00
xSacha 57e4088216 Introduce fake vertex decoder JIT as well.
Compiles and links on CI20 but gets unknown crash in GL driver.
2014-11-13 17:10:29 +10:00
Henrik Rydgard 7cb5e7f53f Some very minor optimizations. Remove little-used stat counter. 2014-10-19 21:12:25 +02:00
Unknown W. Brackets 5276487611 vertexjit: Use SSE for all weights, u8/u16. 2014-09-17 23:14:36 -07:00
Unknown W. Brackets 4c1061ff4a vertexjit: Optimize the d3d9 weights a bit.
Only used without skinning on, or with morph, of course.
2014-09-17 08:39:56 -07:00
Unknown W. Brackets f426be59b4 vertexjit: Initial u8/u16 weights for d3d9. 2014-09-16 23:28:35 -07:00
Henrik Rydgard 1407648b59 D3D vtxdec: Convert weights and normals to float 2014-09-12 02:00:33 +02:00
Henrik Rydgard 37e3cf362f Move vertexdecoder files into GPU/Common 2014-09-12 02:00:32 +02:00
Unknown W. Brackets 385df1c54e Force positions to scale by 128/32768 as psp does.
This makes everything use floats for positions.  On some hardware/drivers,
this may be faster.  On some it may be slower.  We'll need testing to see
the performance impact.

Fixes Final Fantasy 4's pos misalignments, and probably others (like
Tekken 5 I suspect.)
2014-08-17 14:31:49 -07:00
Unknown W. Brackets 678237aa6c Improve SSE usage in software transform.
It's actually already pretty decent (unlike the softgpu), but there were a
few places it could use a bit of help.  Speeds up things with hardware
transform off, or areas that need to use software transform.
2014-03-17 23:05:48 -07:00
chinhodado cb39a5d978 fix buffer overflow 2014-02-19 12:07:45 -05:00
Unknown W. Brackets 97192388b6 Clamp float z in throughmode, rather than wrapping.
Matches tests, fixes sky in Tales of Eternia (#4572.)
2014-02-13 08:03:56 -08:00
Unknown W. Brackets ad8488ecc4 Reset reporting on a new game.
This way "once" and "spam" no longer persist between runs.  Makes it
easier to test a bunch of games in a row without restarting in between.
2014-02-09 17:39:16 -08:00
Berkan Diler 68d518727f Remove unnecessary comment 2013-11-27 19:51:35 +01:00
Unknown W. Brackets fcc77f525f Implement some basic vertex previews on prim.
3D doesn't work correctly (sometimes it does...)  2D should be working.
2013-11-17 13:27:50 -08:00
Henrik Rydgard 82e5787bbe Preparation for proper spline/bez: Convert control points to a simple format.
The bezier/spline code will no longer need to handle morph and splines,
when it's finally written. This is done by pre-skinning in software and
pre-decoding to get rid of the morph.
2013-09-21 23:37:14 +02:00