Commit Graph

3735 Commits

Author SHA1 Message Date
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
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
Unknown W. Brackets
57aa864c0c Blit depth when current, not max, size matches.
This is really what was implemented originally, this code was just not
updated to match when we started resizing framebuffers.

Fixes #6497.
2016-01-20 21:35:19 -08:00
Henrik Rydgård
4c8384aa09 Merge pull request #8461 from unknownbrackets/gpu-depth
Swap depth range to use minz/maxz
2016-01-20 10:19:51 +01:00
Unknown W. Brackets
02bf70a2d0 Where possible, rewrite 5551 stencil ops too.
We can in most cases fix INVERT, and also INCR so INVERT works when we
can't fix it.

Fixes #8422.
2016-01-19 23:17:58 -08:00
Unknown W. Brackets
e00c9940e8 Correct pixel depth rounding. 2016-01-19 20:19:50 -08:00
Unknown W. Brackets
5de7d2cf8f Oops, correctly center depth. 2016-01-19 07:51:56 -08:00
Unknown W. Brackets
6ef97f72d2 gedbg: Show scaled depth values properly. 2016-01-19 07:23:06 -08:00
Unknown W. Brackets
b80c02c272 Simulate depth clamping.
We'll allow extra space in both directions.  It's not exactly right, but
it's a fast approximation.
2016-01-19 07:12:58 -08:00
Unknown W. Brackets
0920f6c6eb Use minz/maxz as the depth range.
This allows values that fall outside the viewport, but still within the
depth range, to be drawn.
2016-01-19 07:12:57 -08:00
Henrik Rydgård
07a16705d8 Merge pull request #8452 from unknownbrackets/gpu-mpeg
Resize FBOs when video width is larger
2016-01-19 09:42:13 +01:00
Henrik Rydgård
b387795d2a Merge pull request #8447 from unknownbrackets/gpu-depth
Simplify depth calculation a bit
2016-01-19 08:51:43 +01:00
Unknown W. Brackets
d1b3768e49 Use a common func everywhere for float depth vals. 2016-01-18 19:29:45 -08:00
Unknown W. Brackets
51a4ba9950 softgpu: Support screen scaling filter.
No reason it has to be nearest, we have an option for that.
2016-01-17 23:47:42 -08:00
Unknown W. Brackets
83436991ec softgpu: Add support for normal UV projection. 2016-01-17 23:33:59 -08:00
Unknown W. Brackets
1a2c7ea487 softgpu: Recreate VAO on device lost. 2016-01-17 23:33:59 -08:00
Unknown W. Brackets
bf536e56f5 softgpu: Use common GLSL creation code.
This ought to handle leaving the app on Android, for example.  Not that
tons of Android users are using softgpu...
2016-01-17 23:33:58 -08:00
Unknown W. Brackets
99eb3f8a94 Instead, let's resize it in case there's rendering. 2016-01-17 23:07:00 -08:00