Commit Graph

57 Commits

Author SHA1 Message Date
Unknown W. Brackets
d70568abd2 GPU: Fix s8 norm with skin and morph.
Fixes #10851.
2018-04-02 19:18:16 -07: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
dcb773d624 Start removing support for hardware skinning. 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
5c50c007b7 Minor fix for previous commit. 2018-01-03 18:21:50 +01:00
Henrik Rydgård
e7893001e9 VertexDecoderCommon: A few more cases. 2018-01-03 17:02:07 +01:00
Henrik Rydgård
e472947488 VertexDecoderCommon: Avoid reading the destination during vertex decode, might be some kind of memory that's not good to read from... 2018-01-03 16:31:01 +01:00
Unknown W. Brackets
db300da1d7 Reporting: Improve no pos verts message. 2017-12-01 09:45:58 -08: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
22e65ba80d Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 2017-08-31 01:14:51 +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
Henrik Rydgård
0ec1e5e3b2 Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 2017-05-26 15:48:03 +02: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
Henrik Rydgard
c54999d26a Even the vertex interpreter, not just the jit, can crash from misaligned vertex data. 2017-04-02 23:57:59 +02:00
Henrik Rydgard
8956a823bb If the main CPU JIT is not enabled, don't try to vertex-jit. See #9404 2017-03-10 00:18:53 +01:00
Henrik Rydgard
a272a4ee3f Improve error message on vertex decoder compile fail. Also disable a broken vertex JIT function until it can be fixed. 2017-03-03 14:19:36 +01:00
Henrik Rydgard
389650e2a7 Need to include getUVGenMode in vertex cache hash. Fixes #9263 2017-02-04 11:15:47 +01: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
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
5d5f10d956 Attempts to counter crashes seen in the Google Play developer console 2016-12-01 22:07:03 +01:00