Commit Graph
3246 Commits
Author SHA1 Message Date
Henrik Rydgård 906a04f1fd Make sure to not leave cull distance uninitialized in other paths, if we do write to it in some path. 2021-10-26 09:56:38 +02:00
Unknown W. Brackets 09f0578a64 Replacement: Use a thread to load tex replacements. 2021-10-21 17:05:39 -07:00
Unknown W. Brackets ee882d1861 Replacement: Avoid rebuild until ready. 2021-10-21 17:05:38 -07:00
Unknown W. Brackets 0721405628 Replacement: Avoid clash with X define. 2021-10-21 17:05:38 -07:00
Unknown W. Brackets 83b7b33cfd Replacement: Centralize lookup logic.
And make sure we don't change our minds about using a replacement during a
draw.
2021-10-21 17:05:38 -07:00
Unknown W. Brackets 36fc2c2628 Replacement: Purge old cached decoded textures.
Not actually decoding into the cache, just setup.
2021-10-21 17:05:38 -07:00
Unknown W. Brackets 2356280a9c Replacement: Add structure for delayed loading. 2021-10-21 17:05:38 -07:00
Henrik Rydgård 16bf5197e4 Merge pull request #14833 from unknownbrackets/guardband
Handle guardband clip/cull better for hardware backends
2021-10-19 12:00:01 +02:00
Henrik Rydgård 09db22c841 Merge pull request #15027 from unknownbrackets/depth-blit
GPU: Blit framebuf depth on create too
2021-10-19 10:11:48 +02:00
Unknown W. Brackets 12ad2b05ef GPU: Blit framebuf depth on create too.
Before we only did it for an existing target framebuffer, and never for a
fresh one.  But there's not really a good reason to skip that, and this
may improve effects that are cemented after a single frame.
2021-10-17 21:53:23 -07:00
Unknown W. Brackets 9306bbd4e4 GPU: Refactor framebuffer depth blit for reuse.
Shouldn't change anything yet, just moving logic around.
2021-10-17 21:51:45 -07:00
Unknown W. Brackets 24c77dc937 GPU: Fix matrix uvgen in software transform.
Fixes #15015.
2021-10-16 23:41:24 -07:00
Unknown W. Brackets 275baccc5b GLES: Support GL_APPLE_clip_distance too.
Seems modern Apple mobile chips only support clip.
2021-10-12 20:34:44 -07:00
Unknown W. Brackets 33598f2e75 GPU: Support clip and cull distances separately.
Older GL devices, and it seems Apple devices, may not support cull.
2021-10-12 20:34:44 -07:00
Unknown W. Brackets 7b00c4a572 GPU: Move Z/W equal hack to bugs from supports.
It's really a bug (might even ideally cap the version?), and we already
have other bugs handled the same way.
2021-10-12 20:34:44 -07:00
Unknown W. Brackets c6a52909f9 D3D11: Support vertex clip/cull planes. 2021-10-12 20:34:43 -07:00
Unknown W. Brackets 1a603fedf5 Vulkan: Cull verts fully outside depth.
Following PSP rules of -1 to 1 pre-viewport Z.  This also enables it for
GLES/OpenGL.
2021-10-12 20:34:43 -07:00
Unknown W. Brackets 7d00b6ca90 GLES: Enable/disable clip distance 0. 2021-10-12 20:34:42 -07:00
Unknown W. Brackets 2271b41d07 Vulkan: Use clip distance only if supported. 2021-10-12 20:34:42 -07:00
Unknown W. Brackets 273b9a3dc1 Vulkan: Add negative Z clipping. 2021-10-12 20:34:42 -07:00
Unknown W. Brackets 24011c3754 GPU: Correct depth handling for guardband.
This culls based on pre-viewport Z and avoids culling based on the clip
range at negative Z.
2021-10-12 20:34:41 -07:00
Unknown W. Brackets 6252241c0f GPU: Verify throughmode for clears/rects. 2021-10-12 20:34:41 -07:00
Unknown W. Brackets 4ac36cb810 GPU: Cull rectangles more when depth clamp off.
If any vert is outside Z, it's culled when not clamping/clipping.
2021-10-12 20:34:41 -07:00
Unknown W. Brackets 5315c404c5 GPU: Cull rectangles outside valid Z.
Both TL and BR must be outside in the same direction to be culled when
depth clamp is enabled.
2021-10-12 20:34:41 -07:00
Henrik Rydgård 887f6101d5 Remove the "Auto" texture scale factor. It's a performance trap and not really useful. 2021-10-05 20:41:40 +02:00
Henrik Rydgård 992ad801e7 Add a crude way to blacklist post/texture shaders from certain vendors.
Use it to work around #14530 for now.
2021-09-28 23:39:52 +02:00
Unknown W. Brackets 2d9719ed26 TexCache: Avoid hashing videos at all in lazy mode. 2021-09-19 07:35:25 -07:00
Unknown W. Brackets e2c7366c92 TexCache: Prevent lazy cache on video textures. 2021-09-19 07:31:31 -07:00
Unknown W. Brackets 6762903087 TexCache: Correct confusing red/blue var names.
This decodes to RGBA (R least significant), so it's confusing to refer to
it as BGRA.  It's actually the 565 colors in the DXT data that are BGR.
2021-09-12 17:21:45 -07:00
Unknown W. Brackets a0eeb52444 softgpu: Decode DXT texels directly.
This improves performance a lot compared to decoding the whole block.
Eventually we may implement a cache, but threading makes that complex to
make properly fast.
2021-09-12 09:37:34 -07:00
Unknown W. Brackets 1ee5352d3e TexCache: Correct DXT5 alpha calculation.
This matches PSP alpha values from an exhaustive test.
2021-09-12 09:35:53 -07:00
Henrik Rydgård 5876388c65 Vulkan scissor fix (validation errors). 2021-09-10 01:15:29 +02:00
Stuart Kenny f442f4012c Expose texture shader core option. 2021-09-08 16:42:11 +01:00
Henrik Rydgård 5dab9994b6 Bezier/Spline: Fix logical error (must flush buffered data before we modify submitType).
Should fix #14774
2021-09-07 23:52:06 +02:00
Henrik Rydgård 6b76bcf070 Add new texture filtering "Auto Max Quality" that tweaks texture filtering for best quality.
It does this by enforcing mipmapping and minification filters, and
always autogenerates mipmaps and enforces anisotropic filtering for all
modes (if that's separately enabled).

This looks nice and flicker free in most games without any additional
tweaking, including GTA and Burnout which have long been painfully
flickery in the distance due to undersampling.

Needs a bit more testing before merge, maybe.

Fixes #13888
2021-09-03 00:14:58 +02:00
Henrik Rydgård 6e8e375eea Increase the range of cardboard setting sliders to 150%. See #14768 2021-08-29 15:27:51 +02:00
Henrik Rydgård c0d80b63a9 Hack the math better in cardboard VR mode, to avoid issues with very wide aspect ratios.
Fixes #12982
2021-08-28 22:28:02 +02:00
Unknown W. Brackets 4cb6976029 GPU: Use an empty vertex buf for reinterpret.
See #14552.
2021-08-07 22:22:36 -07:00
Henrik Rydgård bea9f67c02 Fix assorted path issues 2021-07-19 17:34:51 +02:00
Henrik Rydgård b0558b2174 Assorted directory fixes 2021-07-19 17:34:50 +02:00
Henrik Rydgård 69ae3f4c02 Better protection against broken viewports.
It's ok if this emits a single pixel sized viewport, since the cause of
this is generally the viewport being specified outside the scissor
rectangle.

Fixes #13921
2021-07-12 21:19:26 +02:00
Henrik Rydgård 7359c8f083 Revert "Make sure we don't try to set a negative viewport size."
This reverts commit 0386cafe53.
2021-07-12 21:03:29 +02:00
Henrik Rydgård 95dc7bb185 Minor cleanup 2021-07-10 20:00:50 +02:00
Henrik Rydgård 90460df9b5 HLSL depal simplification 2021-07-09 21:09:44 +02:00
Henrik Rydgård 4e8ffae024 Implement basic depth texturing for OpenGL, requires depth clamp for now.
Need to figure out what to do about other Z mappings.

Helps #6411 for OpenGL on desktop primarily, and certain other games affected by #13256
are likely working too like the fog in Harry Potter.
2021-07-09 21:09:44 +02:00
Unknown W. Brackets 87716a158f Merge pull request #14391 from hrydgard/new-threadpool
New ThreadManager, replacing threadpools and "PrioritizedWorkQueue"
2021-06-13 07:08:32 -07:00
Henrik Rydgård 3be5c7bd9a Make the minimum items per thread explicit. Found some bugs, optional arguments are evil. 2021-06-12 21:21:28 +02:00
Unknown W. Brackets 17071e7fec Postshader: Add uniform for delta since last frame.
Useful mainly when using previous frame output.
2021-06-12 11:27:26 -07:00
Unknown W. Brackets 7bbaae492b Postshader: Let shaders use the previous frame.
This is useful for i.e. simulating the slow update speed of the PSP's LCD
screen, but could in theory be used for other effects.
2021-06-12 10:54:36 -07:00
Henrik Rydgård 73871b9b7e Implement new thread manager, port stuff to it. 2021-06-12 13:03:53 +02:00