Commit Graph

3080 Commits

Author SHA1 Message Date
Henrik Rydgård
376d92fcc9 Start messing with the draw engine... 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9340260802 Finish the shader manager (almost) 2018-01-27 15:10:17 +01:00
Henrik Rydgård
d565e23f4c Stencil copy: Avoid clearing the depth buffer. 2017-12-31 01:06:31 +01:00
Henrik Rydgård
b5e5d72a0a Complete the separation of depth and stencil renderpass flags 2017-12-30 22:52:22 +01:00
Henrik Rydgård
2dda2bfa78 Dual source blend: Remove bad #ifdef that killed dual src code on Android... oops. Re-enable on nVidia Shield TV/Tablet. Fixes #10136 properly. 2017-12-30 00:53:24 +01:00
Unknown W. Brackets
0151c5e649 GPU: Track stats on uploads.
A lot can lead to slowdown, so it's useful when logging frame drops.
2017-12-28 19:27:45 -08:00
Henrik Rydgård
c948a3df00
Merge pull request #10439 from unknownbrackets/intel-dualsrc
GLES: Allow dual src blend on newer Intel
2017-12-28 13:37:57 +01:00
Unknown W. Brackets
f9750dd137 Display: Avoid limiting FPS without a clear.
A bit of a dirty heuristic to avoid the slowdown in #8538.
2017-12-26 19:37:40 -08:00
Unknown W. Brackets
025a806ab4 GPU: Remove FBO auto-download hack.
See #6261.  This should be replaced now with block transfer detection,
which is faster and doesn't cause crashes.

Games that previously required this setting should use block transfer
instead.  If that doesn't work, it's a bug.
2017-12-25 11:17:59 -08:00
Unknown W. Brackets
0956fa3ff6 GPU: Reduce depth blits when not updated.
If the game initially clears the depth in a buffer, but then never uses
that depth again, don't keep blitting depth.

Improves #8538, by preventing the depth blits in this case.
2017-12-24 11:52:15 -08:00
Unknown W. Brackets
49b41d1629 GLES: Allow dual src blend on newer Intel.
Fixes #10117.
2017-12-24 09:41:00 -08:00
Henrik Rydgård
c3ac0659bd
Merge pull request #10430 from unknownbrackets/hwtess
Add another restriction for GL HW tessellation
2017-12-22 08:11:38 +01:00
Unknown W. Brackets
c5897a1c5c GPU: Cleanup some feature flags usage. 2017-12-21 18:50:41 -08:00
Unknown W. Brackets
510f9652a0 GLES: Improve HW tess requirements validation.
We also need texelFetch of some kind, seen in reporting.
2017-12-21 18:44:47 -08:00
Unknown W. Brackets
8e2682d93c GLES: Reduce conversion buf size if possible.
No need to use the stride for the temp buf.  May avoid issues if the
driver crashes when reading outside the FBO.
2017-12-21 12:02:45 -08:00
Unknown W. Brackets
30871bfcd1 GLES: Avoid buffer on GLES2 for h=1 / CLUT. 2017-12-21 11:52:11 -08:00
Unknown W. Brackets
75aa65908c GLES: Pack without stride where possible.
This may possibly help #10425 in case the behavior is different when going
over width when reading pixels.
2017-12-21 11:41:53 -08:00
Henrik Rydgård
5c1dad9909 Remove more obsolete ifdefs 2017-12-19 17:59:00 +01:00
Henrik Rydgård
dc6a4ea753 Fix annoying name clashes (Status is in X11 headers..) 2017-12-15 16:34:29 +01:00
Henrik Rydgård
b10b24feea GLES device lost/store fixes 2017-12-10 02:05:25 +01:00
Henrik Rydgård
299cb007c2 Add a comment, revert a reporting change. 2017-12-10 02:05:25 +01:00
Henrik Rydgård
6e3cb0cd48 Add missing IF statement for instance rendering check.. 2017-12-08 15:53:33 +01:00
Henrik Rydgård
99b34c7b45 Use glslang to translate GLSL 1.x postshaders to GLSL 3.0 or later to appease strict GL Core drivers. Should fix #10362
Fixed small bugs, now tested and working on mac.

Add spirv-cross to cmake build
2017-12-08 10:25:42 +01:00
Henrik Rydgård
3eda310009
Merge pull request #10366 from hrydgard/gl-lost-device-rework
Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc.
2017-12-07 22:48:43 +01:00
Henrik Rydgård
b75c8b72c6 Fix another little inconsistency (two uniforms were merged for bad reasons) 2017-12-07 21:39:09 +01:00
Henrik Rydgård
fb74c9dfeb Clean up a small inconsistency 2017-12-07 21:09:09 +01:00
Henrik Rydgård
7d0fc9ce65 Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc. 2017-12-07 15:05:59 +01:00
Henrik Rydgård
cf5ede493b
Merge pull request #10247 from unknownbrackets/ui-tween
UI: Show a loading message during shader preload
2017-12-06 14:24:21 +01:00
Unknown W. Brackets
715a7b7318 Global: Silence some unused declaration warnings.
These things aren't used on Android.
2017-12-03 19:22:03 -08:00
Unknown W. Brackets
9f000ddf35 GLES: Avoid hanging while precompiling shaders.
We want to continue updating the screen so it doesn't seem frozen.
2017-12-03 11:30:00 -08:00
Unknown W. Brackets
681ce953ec GLES: Log shader cache filesize error better. 2017-12-02 10:20:44 -08:00
Unknown W. Brackets
e50ec2c350 GLES: Validate shader cache filesize on preload. 2017-12-02 09:14:19 -08:00
Unknown W. Brackets
4731a2918c GPU: Use more typesafe shader IDs.
Since they really are fairly distinct, let's make sure we can't mix them
accidentally.
2017-12-02 09:07:27 -08:00
Henrik Rydgård
734d9c494c Fix bug in Vulkan non-buffered where clears could extend outside the frame, since Vulkan clears do not respect scissors. 2017-12-02 11:05:10 +01:00
Henrik Rydgård
a67357db05
Merge pull request #10223 from unknownbrackets/minor
Reporting: Use a different link message on preload
2017-12-01 20:28:37 +01:00
Unknown W. Brackets
2a540de329 Reporting: Use a different link message on preload.
May help us determine if this only happens from a corrupt cache.
2017-12-01 11:17:51 -08:00
Henrik Rydgård
46ffa8cc0b Try to help Mali 400 shader reg alloc by reusing variables. It's still commonly reported. 2017-12-01 18:47:01 +01:00
Henrik Rydgård
f8b70fe185 Clean up all the FBOs in DestroyAllFBOs. Missing any can have bad consequences after app switching on Android/Vulkan where we recreate stuff. 2017-12-01 12:17:10 +01:00
Henrik Rydgård
8a58b768f1 Check for HW-transform and through when loading GL shader cache. 2017-12-01 11:32:16 +01:00
Henrik Rydgård
24e5fbc115
Merge pull request #10215 from unknownbrackets/minor
Improvements for things found in reporting
2017-12-01 00:54:39 +01:00
Unknown W. Brackets
e0ccbd31b6 GLES: Report shader errors with shader desc. 2017-11-30 15:34:29 -08:00
Henrik Rydgård
7b2ad5fe72 Add some debug asserts, useful for debugging shader mismatches locally (though haven't found any..) 2017-12-01 00:28:07 +01:00
Henrik Rydgård
3e011238c5 Fix minor discrepancy in shader ID calculation, I don't think this will fix anything though. Bumping shader cache version and doing minor cleanup too. 2017-11-30 22:44:39 +01:00
Henrik Rydgård
6ea669368c Crash reports from 5% rollout of 1.5: Make some asserts dbg_asserts for now, try to fix an issue with framebuffers when postproc is enabled. 2017-11-29 18:53:52 +01:00
Henrik Rydgård
2c86217552 Cleanup GPU vendor detection a bit, use it to avoid the issue mentioned in #9545 2017-11-21 16:19:28 +01:00
Henrik Rydgård
674d5c7dbb
Merge pull request #10130 from hrydgard/lod-bias-fixes
Mipmaps: Disable slope mode pending a better method. Implementing it entirely as a LOD bias is not the way it works.
2017-11-20 13:49:39 +01:00
Henrik Rydgård
713afdfe49 Refactor: Unify DecodeVerts and move ComputeNumVertsToDecode to Common 2017-11-19 12:39:09 +01:00
Henrik Rydgård
33d3d2f178 GL: Compute "availableUniform" when generating shaders instead of by querying. 2017-11-19 11:25:31 +01:00
Henrik Rydgård
32df9e25da GL: Compute the attrMask while generating the vshader instead of querying.
This will help in the future when we defer GL rendering like we did Vulkan - we will be able to use uniforms, but we won't be able to react to the result of these queries immediately.

Also slightly faster though noone will notice.
2017-11-19 11:24:32 +01:00
Henrik Rydgård
23f7819329 Unify RebindFramebuffer, mostly. 2017-11-15 20:44:25 +01:00