Commit Graph
220 Commits
Author SHA1 Message Date
Henrik Rydgard 2430c283a5 More GPU cleaning, removing uses of GPUState.h where not needed.
Want to get rid of direct accesses to GPUState in modules that may be reused in
my future next-gen backends, that will reformat display lists into command lists that will
then be optimized and executed, out of sync with the real GPUState.

Candidate modules that may be reused in full are Framebuffer and Depal, possibly TextureCache to some degree.
2015-07-29 12:37:49 +02:00
Henrik Rydgard 38a31fbd8b Get rid of more uses of gstate from SplineCommon 2015-07-29 12:04:52 +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
Unknown W. Brackets 8fdceba7ca Add timing for all the basics.
This way we can see overall stats for a frame.
2015-07-03 12:05:08 -07:00
Henrik Rydgard 0b2a1dfe53 Profile a few more scopes 2015-05-26 00:39:27 +02:00
Henrik Rydgard 26624709f7 Hook up the frame profiler to a few measurements 2015-05-24 23:45:36 +02:00
Unknown W. Brackets 425ff3d78f Track bone matrix updates for future morph usage.
This makes them upload later, if/when they're needed.

Fixes #7746, Shadow of Destiny artifacts when software skinning is
enabled.
2015-05-16 21:49:25 -07:00
Unknown W. Brackets 2450724be2 Make Memory::Memcpy() execute memchecks directly.
This makes it easier to handle breakpoints in HLE.
2015-04-05 18:09:20 -07:00
Unknown W. Brackets 6b26e1a591 Read pending vertex data before exiting gpu loop.
Fixes save pictures in Crimson Gem Saga.
2015-03-14 18:11:24 -07:00
Henrik Rydgard 018b134545 Fix issue where on-screen UI might be invisible in non-buffered rendering 2015-02-04 17:29:49 +01: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 c37d41c88c Assert state on first frame.
This won't matter much for games, but makes tests run more sanely.
2014-12-30 15:26:16 -08:00
Unknown W. Brackets 0a6a70f53f Allow switching cpu thread on/off ingame. 2014-12-20 17:39:42 -08:00
Unknown W. Brackets 962d8c5224 dx9: Take screenshots (fixes #7197.) 2014-12-20 08:31:56 -08:00
Henrik Rydgard 308e45420a GLES: Add some currently unused information to the opcode table. Keep downcount in a local as much as possible. 2014-12-06 11:35:02 +01:00
xebra ab0eeb18f3 [spline/bezier]Support drawing primitives lines and points. 2014-11-25 22:32:50 +09:00
Henrik Rydgard c62255f1d9 GetPointerUnchecked is ok around display list pc, checked elsewhere 2014-10-19 23:13:54 +02:00
Unknown W. Brackets 01bdb6e160 Cleanup some minor vertex cache stuff. 2014-09-15 07:08:55 -07:00
Henrik Rydgard 9b587bb144 Make the D3D backend cmd processing work more similar to the GL backend 2014-09-13 12:11:34 +02:00
Unknown W. Brackets f7b669a740 Fix infinite recursion in framebuf create upload.
Needs to be done *after* currentRenderVfb_ is set.

Fixes #6872.
2014-09-10 23:59:12 -07:00
Unknown W. Brackets 94c1271761 Add an experiment with using a texture for tests.
Using an option for now so it's easy to test, if it works well we can
maybe remove the option.
2014-09-07 10:04:57 -07:00
Unknown W. Brackets 337b34ef6a Eat cycles during block transfers.
Tests show this takes a number very close to 1.9 times the number of bytes
in cycles @222.

Using that value caused a tiny fps drop in one area of the God of War
demo, which may be correct but might also cause complaints.  A lot of our
other timing is not accurate, so using a lower value (1.6) to be on the
safer side.

This may cause things to reschedule more accurately when games drawsync,
and improves the gpu/commands/blocktransfer test.
2014-08-30 22:02:28 -07:00
Unknown W. Brackets 95f4341838 Allow changing prescale uv at runtime. 2014-06-28 21:51:25 -07:00
Unknown W. Brackets 1c3b60a8ee Allow changing software skinning at runtime. 2014-06-28 21:46:43 -07:00
Unknown W. Brackets d2d7d6e34b Destroy all FBOs/textures upon sceKernelLoadExec().
It can confuse our heuristics about size, attachment, memcpy, etc.
2014-06-28 12:29:09 -07:00
Unknown W. Brackets 6d104edb5d Make sure not to leak any enabled vertex arrays.
When returning to EmuScreen, we need to reset any enabled vertex arrays or
we could crash in EmuScreen.  Also, when starting a frame / dirting the
shader, make sure also to toggle the vertex arrays.
2014-06-22 21:42:29 -07:00
Unknown W. Brackets b8ad665b53 Clear vertex attrib arrays before output to screen.
Doesn't seem to help the mis-enabled arrays, though.
2014-06-22 21:03:33 -07:00
Unknown W. Brackets ef390c5c40 Double check upload/download are VRAM addresses. 2014-06-19 23:09:15 -07:00
Unknown W. Brackets 359f72078d Disable vsync when exiting the game.
Not sure why, but with some drivers not doing this makes the process burn
cpu usage when back in the menu.  Fixes #6351.
2014-06-17 01:06:25 -07:00
Unknown W. Brackets 2038bc5527 Support alpha / color test masks on desktop/gles3.
Won't work on GLES 2, though...
2014-06-16 00:33:48 -07:00
Unknown W. Brackets e762689ea8 Update vsync on resize, and before first FBO.
May take care of #4440.
2014-06-15 15:19:49 -07:00
Unknown W. Brackets eaf3288304 Add debug interface for non-L0 texture preview. 2014-06-15 09:30:37 -07:00
Unknown W. Brackets 1d9f7b04fc Implement in-shader blending on gles2 / gl2.
I'm sure it'll be slow, though...
2014-06-13 23:42:59 -07:00
Unknown W. Brackets b9f805c71f Fix graphical artifact in Jeanne d'Arc world map.
We need to use the last set render framebuffer, not the current one at
copy to output.
2014-06-11 00:54:54 -07:00
Unknown W. Brackets c49ba888b5 Flush draws before doing any block transfers.
Otherwise, we might flush on top, or we might download the wrong thing.
2014-06-11 00:28:28 -07:00
Unknown W. Brackets dd4b191003 Correct Gods Eater Burst tex download size.
Probably takes care of #6289, although it doesn't crash for me.
2014-06-10 22:59:08 -07:00
Unknown W. Brackets adee76cd62 Add a matching PerformMemoryUpload().
Just so we have both Download and Upload to use later.
2014-06-10 00:45:03 -07:00
Henrik Rydgård 0c7c736522 Merge pull request #6205 from unknownbrackets/replace-funcs
Initial replacement for Star Ocean's stencil upload
2014-06-01 12:22:11 +02:00
Unknown W. Brackets 580143e5e2 Disable vertex arrays before depal as well. 2014-05-31 22:07:42 -07:00
Unknown W. Brackets bd67cdab3f Add basic decimation to the depal clut cache. 2014-05-31 22:07:41 -07:00
Unknown W. Brackets 089ee41d9c Implement a very basic stencil upload.
This is not fast or efficient, but works.
2014-05-31 21:48:09 -07:00
Unknown W. Brackets c142207a93 Fix a few warnings, mostly type comparisons. 2014-05-31 21:42:57 -07:00
Unknown W. Brackets 1433b98c46 Clean up the framebuffer force downloads. 2014-05-31 10:03:03 -07:00
Henrik Rydgard 634add3a46 Depalettize works at other resolutions than 1x. For some strange reason though if you change resolution in game it breaks. 2014-05-27 22:09:26 +02:00
Henrik Rydgard 8fba7fa98e Initial work on depalettization. 2014-05-27 22:07:24 +02:00
Henrik Rydgård 8d84c912eb Merge pull request #6070 from unknownbrackets/gpu-blend
Apply unsupported blending modes in the shader
2014-05-27 17:45:33 +02:00
Unknown W. Brackets 8dcc09c9e1 Use a separate func for gpu memset(). 2014-05-27 07:50:01 -07:00
Unknown W. Brackets 4b978ed6f9 Apply unsupported blending modes in the shader.
This handles unsupported fixed color combinations, alpha doubling, etc.
Where possible, tries to avoid it - it means using a blit (without the
framebuffer fetch extension), which can slow things down a lot with tons
of drawcalls.
2014-05-27 01:45:17 -07:00
Unknown W. Brackets e4dc702d68 Schedule the FBO blit during multithreading.
This was it's properly ordered with draws, and it runs on the right GL
context.
2014-05-25 22:08:15 -07:00
Unknown W. Brackets 9894b38a1d Support memcpy uploads to fbos.
Makes Vempire look right (has never worked before in any rendering mode.)
2014-05-25 22:01:08 -07:00