Commit graph

137 commits

Author SHA1 Message Date
Henrik Rydgård
898716cc26 Unify DownloadFramebufferForClut 2017-10-18 12:34:01 +02:00
Henrik Rydgård
981c49615c Unify FlushBeforeCopy. Remove old dummy methods from Vulkan framebuffer manager. 2017-10-18 12:26:02 +02:00
Henrik Rydgård
0d85f86e2d Add some safety checks. Fix some inadvertent Y-flips (bit hacky). 2017-10-18 11:40:07 +02:00
Henrik Rydgård
4e3a9bc3e3 Unify some more framebuffer functions. Leave the GL stuff alone for now due to async. 2017-10-18 11:20:58 +02:00
Henrik Rydgård
f2ea0ce472 Unify (well, almost) GetOutputFramebuffer (D3D11/GL) 2017-10-18 10:54:26 +02:00
Henrik Rydgård
214270d192 Unify GetDepthBuffer/GetStencilBuffer in GL/D3D11 2017-10-18 10:54:26 +02:00
Henrik Rydgård
9b1ee6fce6 Unify GetFramebuffer in GLES and D3D11.
D3D9 is left behind for now, and Vulkan still needs implementation - got a branch with initial work towards that.
2017-10-11 13:39:34 +02:00
LunaMoo
5b75d2af20 Add uniform to make post process aware of videos.
And an example effect ~ subtle AA in-game/heavy smoothing for videos.
2017-09-13 08:13:51 +02:00
Unknown W. Brackets
55ef501739 GPU: Dirty viewport on RT width/height change.
Fixes #9959.
2017-09-09 20:46:03 -07:00
Unknown W. Brackets
96ed8564ab Add some missing fragment shader state changes. 2017-08-14 11:36:07 +02:00
Henrik Rydgard
078e1151f9 Dirty-flag the fragment shader ID. 2017-08-14 11:36:07 +02:00
Henrik Rydgard
4e55654522 Add some missing VIEWPORTSCISSOR dirtying. 2017-08-14 11:35:11 +02:00
Unknown W. Brackets
aa2269020a Dirty viewport state on framebuf resize. 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e439055a32 All: Only convert raster state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e2b179d6e2 All: Only convert depth stencil state if dirty 2017-08-14 11:14:26 +02:00
Henrik Rydgard
e4567c694c All: Only convert blend state if "dirty" 2017-08-14 11:14:26 +02:00
Unknown W. Brackets
d6affac72d GPU: Correct 1080p/720p crop for ultrawide/similar.
If the display is 1280x1080 or 2560x1080, we don't want to stretch width.
2017-07-30 08:32:49 -07:00
Unknown W. Brackets
41b485aa0a Core: Refactor repeating disc id homebrew code. 2017-06-03 15:29:08 -07:00
Henrik Rydgård
0ac979505c Fixes for D3D11 postprocessing 2017-06-02 17:04:08 +02:00
Unknown W. Brackets
f1e9180676 Vulkan: Fix Cardboard rendering.
Mostly the Viewport2D flush issue, which may possibly have broken
something else.
2017-05-31 23:26:38 -07:00
Henrik Rydgård
6bd1a16c35 Merge pull request #9748 from hrydgard/delete-clearbuffer
Delete obsolete function ClearBuffer
2017-05-31 14:11:12 +02:00
Henrik Rydgård
cb9b63e75a Fix scaling post-shaders on OpenGL. See #9742 2017-05-31 13:57:57 +02:00
Henrik Rydgård
2b14c6b531 Delete obsolete function ClearBuffer 2017-05-31 13:38:22 +02:00
Henrik Rydgård
3e76863b8a Postprocessing fix after the Vulkan refactor. Should help #9742. 2017-05-30 17:11:30 +02:00
LunaMoo
939b26475d Fix a bunch of emu features for Homebrew by better identification. 2017-05-30 12:20:29 +02:00
Henrik Rydgård
4c8dc24834 Vulkan: Implement depth buffer copies. Not sure all the barriers are right.. 2017-05-30 09:38:08 +02:00
Henrik Rydgård
e8890e3c4a Address a bunch of review comments. 2017-05-30 09:36:17 +02:00
Henrik Rydgard
0c70735bc4 Buffered rendering is starting to work, though still kinda broken. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
2b93338255 Vulkan backend: Fix various issues, can almost run in buffered now (except the final blit) 2017-05-30 09:36:17 +02:00
Henrik Rydgard
32728553bd Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
a7dd6d6085 Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
6bcfe539f7 Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet.
Also removes a bunch of redundant render target binds.
2017-05-30 09:36:17 +02:00
Henrik Rydgård
ce9e864e4b Remove some unnecessary framebuffer binding 2017-05-30 09:36:17 +02:00
Henrik Rydgård
35aefe4a2a BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) 2017-05-30 09:36:17 +02:00
Henrik Rydgård
3b6fa9be87 Start work on separating frame from backbuffer renderpass 2017-05-30 09:36:17 +02:00
Unknown W. Brackets
d7ca05b6b5 GPU: Fix black screen on buffered render enable.
We were never clearing the skip flag.  Has been a bug since before v1.0.
2017-04-24 12:10:08 -07:00
Unknown W. Brackets
fd4399e108 GPU: Centralize fb resize, move to begin of frame.
It makes more sense here, because otherwise when you change it from the UI
settings, it takes a frame to "kick in".
2017-04-24 12:02:52 -07:00
Unknown W. Brackets
6c2f87b1df GPU: Consistently use useBufferedRendering_. 2017-04-24 11:57:16 -07:00
Unknown W. Brackets
c29f70e5e9 GPU: Attempt recreate of FBOs if failed. 2017-04-24 09:41:41 -07:00
Unknown W. Brackets
97620d4cca GPU: Rebuild FBOs when they now have storage. 2017-04-24 09:37:54 -07:00
Unknown W. Brackets
98ba7afa83 Destroy FBOs only on actual resize.
As a side effect, this means going to settings won't reset all FBOs
anymore.  The behavior can still be obtained by changing render resolution
or rendering mode.

This makes resizing the window faster on Windows, and resumes quicker from
pause.
2017-04-13 23:36:17 -07:00
Henrik Rydgård
0cb4344da1 Merge pull request #9603 from unknownbrackets/fb-resize
Fix framebuffer size flopping back and forth
2017-04-12 09:54:03 +02:00
Unknown W. Brackets
5a7ad5b176 Fix largest framebuf size in throughmode.
This was probably always meant to be <=, since it logically makes sense
for them to be equal.

Might fix cases of resizing down a framebuf in throughmode, where viewport
isn't as good a heuristic.
2017-04-12 00:20:50 -07:00
Unknown W. Brackets
088ced7261 Fix framebuffer size flopping back and forth.
If block transfers are keeping it larger, keep it larger.
2017-04-12 00:19:02 -07:00
Henrik Rydgård
a85b76e671 Merge pull request #9585 from unknownbrackets/gpu-clear
Skip VRAM clears when no download has been made
2017-04-10 00:51:01 +02:00
Unknown W. Brackets
4a8c661c00 Skip downloads of cleared VRAM.
If we've just cleared VRAM, make sure we don't also download that clear.
2017-04-09 15:19:06 -07:00
Unknown W. Brackets
fe07b14a22 Cleanup 16-bit VRAM clearing. 2017-04-09 15:12:56 -07:00
Unknown W. Brackets
70d17d1bc7 Track flags to reduce unnecessary VRAM zeroing.
If we haven't downloaded to RAM since the last zero, no need to zero
again.  This is the most common case.
2017-04-09 15:10:07 -07:00
Unknown W. Brackets
ff14495511 Fix out-of-bounds framebuffer blit on color bind.
This corrects a crash reported in Persona 3 using D3D11.
2017-04-06 18:49:48 -07:00
Unknown W. Brackets
3fbb545451 Allow MakePixelTexture to use a subrange.
For example, if it has a larger texture it wants to reuse, it can control
this via texcoords.  Let's keep it at top left, though.
2017-03-22 20:56:26 -07:00