Commit Graph

456 Commits

Author SHA1 Message Date
Henrik Rydgård 51686f4936 Copy color from overlapping framebuffers on bind, under certain conditions.
Leads to much faster performance in Juiced 2.

This will later be expanded to handle more things in a more elegant way,
like the framebuffer overlap in God of War for the shadows and
color reinterpretation in a generic way.

Fixes #15728
2022-08-22 16:06:55 +02:00
Henrik Rydgård 8e7cf596b6 Address more feedback, cleanup scale parameter 2022-08-21 09:58:58 +02:00
Henrik Rydgård 668de1f544 Compatibility check 2022-08-21 09:58:58 +02:00
Henrik Rydgård 9cc8cfaa08 Use a DX9-compatible method to pass texwidth and height. the effect doesn't work on DX9 yet though. 2022-08-21 09:58:58 +02:00
Henrik Rydgård ca24f1b9aa Fixes for D3D11 2022-08-21 09:58:58 +02:00
Henrik Rydgård 412d44dc92 Fix glitch when changing render resolution 2022-08-21 09:58:58 +02:00
Henrik Rydgård 89c96142a1 Really not sure how we can detect whether a depth deswizzle is needed :( Hopefully temporary flag... 2022-08-21 09:58:58 +02:00
Henrik Rydgård e6b60026d1 Fix graphics in Ratchet & Clank. WIP 2022-08-21 09:58:58 +02:00
Henrik Rydgård 346a252593 Fix naming of temp fbos to be in PSP pixels 2022-08-21 09:58:58 +02:00
Henrik Rydgård 5046cbd015 Address feedback to PR #15858 2022-08-20 17:23:51 +02:00
Henrik Rydgård 29ea3ffe0c Restore the clearing optimization, avoiding unnecessary depth copies 2022-08-20 09:46:15 +02:00
Henrik Rydgård 12db0e52d4 Fix deferred-depth for bezier/spline. Move updating of last_frame_depth_render to GPUCommon. 2022-08-20 08:29:33 +02:00
Henrik Rydgård 97dbba0ec3 Minor fixes. Everything seems fine now. 2022-08-20 08:29:33 +02:00
Henrik Rydgård 5d8fe4c2a8 Implement copying color to depth on load. However, weird stuff is happening.. 2022-08-20 08:29:33 +02:00
Henrik Rydgård 94ade8c751 Extract depth copies to CopyToDepthFromOverlappingFramebuffers 2022-08-20 08:29:33 +02:00
Henrik Rydgård 886679c7ec Remove the color-to-depth mode 2022-08-20 08:29:33 +02:00
Henrik Rydgård a0ac2dffc7 Defer depth copies until depth buffer is actually used.
Fixes
2022-08-20 08:29:33 +02:00
Henrik Rydgård bd6f79e473 Fix the raster depth blit again, which I recently broke. 2022-08-17 16:52:49 +02:00
Henrik Rydgård 74f1c94ddb Use sequence numbers instead of a tracking array for depth buffers 2022-08-17 10:34:07 +02:00
Henrik Rydgård 078fc881a7 Revise comments according to feedback 2022-08-17 10:15:02 +02:00
Henrik Rydgård a8b1d1191e Oops, remove wrong comments 2022-08-17 10:09:12 +02:00
Henrik Rydgård 19367dd890 Comment updates 2022-08-17 10:09:12 +02:00
Henrik Rydgård 5785cf40ad Clean up and comment framebuffer struct better, add bind sequence numbers 2022-08-17 10:09:11 +02:00
Henrik Rydgård 35a1ca064a Refactor 2D pipeline creation 2022-08-16 19:27:46 +02:00
Henrik Rydgård 570e0326e7 Rely on refcounting for stencil upload shader modules 2022-08-16 15:10:48 +02:00
Henrik Rydgård 1e57a358b8 thin3d: Properly AddRef and Release shader modules from the pipeline in backends that need it 2022-08-16 15:10:48 +02:00
Henrik Rydgård ccdb1f7330 Move out the reinterpret stuff to ReinterpretFramebuffer.cpp. Draw2D refactor. 2022-08-16 11:11:59 +02:00
Henrik Rydgård 9f2447c0b4 Assorted minor cleanup 2022-08-16 10:55:44 +02:00
Henrik Rydgård 5f9718ef92 Merge pull request #15843 from unknownbrackets/gpu-minor
GPU: Skip fb create upload when clearing
2022-08-16 00:05:10 +02:00
Unknown W. Brackets 6060706fc8 GPU: Avoid using depth buffers for blending.
For now, until it's implemented.
2022-08-14 22:13:39 -07:00
Unknown W. Brackets 0b22c98404 GPU: Skip fb create upload when clearing.
This doesn't verify it's a full screen clear, but on a new framebuffer
that's very very common.
2022-08-14 13:19:52 -07:00
Henrik Rydgård 79ee532609 Fix feature checks 2022-08-09 20:05:44 +02:00
Henrik Rydgård 252550fbd2 Enable framebuffer depth blits through raster. Fixes games like Jeanne D'Arc on D3D9. 2022-08-09 20:00:32 +02:00
Henrik Rydgård 131098c4d4 Some enum renaming, move RasterChannel to GPU.h. 2022-08-09 19:58:48 +02:00
Henrik Rydgård d61909ca91 More framebuffer blit fixes. 2022-08-07 12:02:06 +02:00
Henrik Rydgård b91ad1d2d7 Remove optimization in BlitUsingRaster that shouldn't have been there (redundant, lacked feature check) 2022-08-07 10:55:44 +02:00
Unknown W. Brackets c212bd0fec GPU: Clarify new framebuf stencil upload.
Actually, this doesn't need alpha either.
2022-08-06 21:18:48 -07:00
Henrik Rydgård 4658962b09 Feature detection fix on old GL, more compiler warning fixing 2022-08-06 18:47:12 +02:00
Henrik Rydgård 5f230ee998 Fix some compiler warnings 2022-08-06 18:19:27 +02:00
Henrik Rydgård e28b45481b Delete more unused code 2022-08-03 22:47:31 +02:00
Henrik Rydgård f84d2e9ba7 Fixes, state invalidation 2022-08-03 22:23:07 +02:00
Henrik Rydgård f8e0c09463 Delete unused stuff in all backends 2022-08-03 22:22:52 +02:00
Henrik Rydgård 126ace770e Remove the D3D9 and Vulkan BlitFramebuffer functions 2022-08-03 22:22:52 +02:00
Henrik Rydgård 9d23939e28 Replace D3D11's BlitFramebuffer with the common one 2022-08-03 22:22:51 +02:00
Henrik Rydgård 1ab9293cb3 Convert FramebufferBlit from the GL backend to use thin3d 2022-08-03 22:22:51 +02:00
Henrik Rydgård 0f9bf47429 Reimplement filtering in DrawActiveTexture 2022-08-03 14:12:55 +02:00
Henrik Rydgård 1d3075566f Move to common (todo: merge with above) 2022-08-03 14:12:55 +02:00
Henrik Rydgård 59b3df0643 Draw2D 2022-08-03 14:12:55 +02:00
Henrik Rydgård 41e327a66b Cleanup and testfixes 2022-08-03 13:34:59 +02:00
Henrik Rydgård 9bead443c3 Unify stencil buffer upload using Draw. Only OpenGL tested yet (shaders need adaptation). 2022-08-03 13:31:13 +02:00