3751 Commits

Author SHA1 Message Date
Henrik Rydgard
129c706cfc Just some work on the shader generators 2016-03-20 19:26:12 +01:00
Henrik Rydgard
73d6d2dc72 More vulkan in thin3d 2016-03-20 19:25:53 +01:00
Henrik Rydgard
2a449f78bb More vulkan fixing 2016-03-20 19:25:30 +01:00
Henrik Rydgard
c64064024d Initial vulkan code.
This was squashed from nine commits but using old versions of Vulkan.
2016-03-20 19:18:35 +01:00
Henrik Rydgård
54a37f9bb8 Merge pull request #8591 from unknownbrackets/thin3d
Use thin3d for softgpu drawing (+thin3d improvements)
2016-03-20 18:06:53 +01:00
Henrik Rydgard
4c0e6d0138 Some renaming, fixes and tweaks to the gl_lost mechanism, which is again needed 2016-03-17 21:30:16 +01:00
Henrik Rydgard
c8457d39ed Fix a bunch of compiler warnings, delete some unused code 2016-03-13 15:17:31 +01:00
Unknown W. Brackets
944a1f380b Disable alpha test optimization with logic ops.
We still need to discard the pixels in the case of a logic op, like
invert.  Otherwise we will invert the blended pixels too.

See #8632.
2016-03-12 09:27:18 -08:00
Henrik Rydgard
58b07e00d7 Assorted fixes and cleanups. 2016-03-06 11:46:41 -08:00
Henrik Rydgard
9d8d810395 Clear detection: Don't need to check the even vertices, as the odd vertices are the ones used for color.
This lets us detect and replace cube.elf's clear, and probably others.
2016-03-06 11:36:32 -08:00
Henrik Rydgard
d67b148712 Add math dataconv funcs for packed values. 2016-03-06 11:33:53 -08:00
Unknown W. Brackets
6b9b00aa16 Assume DUALSOURCE replace alpha means supported.
We already check supports when generating this value, don't need to check
again when using it.
2016-03-05 17:18:04 -08:00
Unknown W. Brackets
212848c1cc Explicitly enable dual source blending in shader.
Without this, the shader fails to compile on SHIELD devices with
up-to-date drivers.  It may have also been failing on other devices.

The specification notes that the #extension line must be used.
2016-03-05 13:27:27 -08:00
Unknown W. Brackets
7dfe8b58dc Clear attrMask on bad shader compile.
This prevents various crashes when incorrect attributes are enabled.
2016-03-05 13:14:25 -08:00
Unknown W. Brackets
505ff99461 Maintain and use a freelist for buffer objects.
Only for sized buffers, which are the ones we gain something from reusing.
2016-02-28 15:10:41 -08:00
Henrik Rydgard
5f761c346b Attempt workaround for #8610 2016-02-28 11:06:49 +01:00
Unknown W. Brackets
818a0d846a d3d9: Correct for half-pixel offset in softgpu. 2016-02-13 14:52:35 -08:00
Unknown W. Brackets
f84ebdc3e4 thin3d: Use floats directly for 4x4 matrices. 2016-02-13 14:50:06 -08:00
Unknown W. Brackets
05fee24ccf thin3d: Add sampler state selection. 2016-02-13 14:03:43 -08:00
Unknown W. Brackets
0d68a172a9 softgpu: Draw using thin3d.
This way it ought to work for all backends.
2016-02-13 14:03:37 -08:00
Unknown W. Brackets
b33e39788f d3d9: Use thin3d for reporting info. 2016-02-13 10:53:28 -08:00
Unknown W. Brackets
095624867a d3d9: Enable GPU info in D3D9 reporting. 2016-02-13 09:51:09 -08:00
Unknown W. Brackets
346e98046d Forgot to remove this report, not needed now. 2016-02-13 09:31:03 -08:00
Unknown W. Brackets
5894431fa0 Correct buffer size for offset download.
We need h, not h - y.  Should be #7819.
2016-02-11 22:30:44 -08:00
Henrik Rydgard
5bfeafc037 PackFramebufferSync_: Check for bad parameters that could cause crash
My theory for the #7819 crash
2016-02-11 22:10:54 +01:00
Unknown W. Brackets
271829c991 Consider depth blitting a slow framebuffer effect. 2016-02-10 21:02:19 -08:00
Henrik Rydgard
35b6c7341b Fix a bunch of memory leaks, after enabling file+line-number memory leak tracking for the MS Debug CRT.
Few of these were serious, most were on-exit, but good to have a cleaner memory report after running.
2016-02-10 15:36:10 +01:00
Unknown W. Brackets
8b51bc5b0b Fix debugging and depth packing with old depth.
Which means, OpenGL in general right now.
2016-02-07 22:42:47 -08:00
Unknown W. Brackets
eab0278af4 Fallback to per-vertex depth rounding on GLES2.
Instead of not-working 24->16 now that it's disabled.
2016-02-06 20:42:01 -08:00
Unknown W. Brackets
0e85225e29 Bring back the depth range hack. 2016-02-06 20:28:45 -08:00
Unknown W. Brackets
f1c06d25ea Switch to old-style depth in OpenGL.
Some devices really aren't handling the new method well.  There seem to be
accuracy problems when specifying the values to OpenGL.
2016-02-06 20:21:14 -08:00
Unknown W. Brackets
87b75235e7 Improve depth accuracy a bit in 16-bit slice mode. 2016-02-06 20:02:18 -08:00
Victor Xie
dc32805256 Made commit 0920f6c a little more robust.
Eliminated division-by-zero when depth range is zero.
2016-02-01 13:17:15 +08:00
Unknown W. Brackets
4ff78d3c55 d3d9: Use SSE at least for depth copies. 2016-01-31 09:00:00 -08:00
Unknown W. Brackets
623448f852 d3d9: Support blitting depth on frame switch.
Can be optimized more, but this makes Jeanne d'Arc work in D3D9 now.  Not
sure why it didn't work before.
2016-01-30 23:47:51 -08:00
Henrik Rydgård
3be90586b1 Merge pull request #8486 from unknownbrackets/gpu-clut
Ignored rendered CLUTs that are in the margins
2016-01-23 18:07:53 +01:00
Unknown W. Brackets
c593b7cdfd Ignored rendered CLUTs that are in the margins.
Fixes issues with Ridge Racer on some mobile devices.
2016-01-23 09:02:30 -08:00
Henrik Rydgard
82ed16fbfd Make sure we detect ES 3.0 the same way in both vertex and fragment shaders 2016-01-23 16:57:24 +01:00
Unknown W. Brackets
e30ab95179 d3d9: Fix maxSeenV when not known.
And just make the code reused between both.  Fixes #8478.
2016-01-22 18:48:54 -08:00
Unknown W. Brackets
e964e15ed3 Correct savestate of running GE list.
Fixes #8459.
2016-01-21 22:14:47 -08:00
Henrik Rydgård
cd35684a46 Merge pull request #8454 from unknownbrackets/gpu-depth-round
Add pixel depth rounding to d3d9, gles2 and support forcing via config
2016-01-21 09:41:26 +01:00
Henrik Rydgård
24cad4cab5 Merge pull request #8468 from unknownbrackets/minor
Add a small assert and some warning fixes
2016-01-21 09:40:32 +01:00
Unknown W. Brackets
9354e253bd Fix some warnings in shader cache read.
In case something gets truncated.
2016-01-21 00:24:45 -08:00
Unknown W. Brackets
597596884e Add a smart C FILE * helper.
When all you want is for it to close by itself on error.
2016-01-20 23:33:56 -08:00
Unknown W. Brackets
79792a3c38 d3d9: Account for half-pixel z offset. 2016-01-20 22:53:47 -08:00
Unknown W. Brackets
0443fbebd0 Add methods to download depth to PSP RAM. 2016-01-20 22:11:03 -08:00
Unknown W. Brackets
2916298695 gedbg: Add scaled 16-bit z support. 2016-01-20 22:11:02 -08:00
Unknown W. Brackets
f9970dba94 d3d9: Respect per-pixel depth rounding.
Using the 16-bit depth range.
2016-01-20 22:11:01 -08:00
Unknown W. Brackets
27dba51e70 Add fallbacks where low quality depth is required.
Even on GLES2, this should work.  Also check the depth before applying
rounding - we might even already be 24-bit.
2016-01-20 22:11:01 -08:00
Unknown W. Brackets
79750ed1ad Add a config setting to control depth quality.
For those who want 1x PSP like behavior.
2016-01-20 22:11:00 -08:00