Commit Graph
1235 Commits
Author SHA1 Message Date
Henrik Rydgård 737688a22a Annotate calls to RebindFramebuffer with their cause. 2020-06-02 09:51:38 +02:00
Henrik Rydgård 4fa6c7fd7f Typo fix. Will hopefully help #12992. 2020-06-01 16:19:17 +02:00
Henrik Rydgård c8d48a8777 Handle insets correctly for the in-game final screen blit.
Should help #12982 in case of phones with inset cameras.
2020-05-31 20:14:40 +02:00
Henrik Rydgård e559fc022f Minor refactor in PresentationCommon (combine loose coordinates to a struct) 2020-05-31 19:45:28 +02:00
Henrik Rydgård 370678c498 Do a similar thing for D3D (let the backend handle the dirtying). 2020-05-24 20:57:59 +02:00
Henrik Rydgård bebf649705 OpenGL/Vulkan: Rework the contract around dynamic state. Removes some ugly dirtying from the GL render manager. 2020-05-24 20:27:58 +02:00
Henrik Rydgård 4f7e5df29a Remove all those "GLES reset the blend state" comments. 2020-05-24 19:21:46 +02:00
Henrik Rydgård cba0d16583 Vulkan: After binding a new framebuffer, we always need to dirty the viewport/scissor state.
So that viewport and scissor commands get written to the new render pass.

Temporary solution until I can figure out how to abstract this away
in the RenderManager without losing perf.
2020-05-24 17:59:52 +02:00
Henrik Rydgård defa8aa480 DarkStalkers: Handle the "normal" screen stretch too, not just "wide", to avoid a surprising performance drop. 2020-05-24 16:53:44 +02:00
Unknown W. Brackets 3a1bc6a86b GPU: Never set safe size larger than the buffer.
Maybe this indicates the buffer size is wrong, but a safe size larger than
the buffer will make us try to download outside the buffer and lose the
Vulkan device.
2020-05-23 00:12:22 -07:00
Henrik RydgårdandGitHub 1dec772145 Merge pull request #12944 from unknownbrackets/gpu-minor
GPU: Ignore viewport for scissor of 481
2020-05-21 22:47:42 +02:00
Unknown W. Brackets cd869d469d GPU: Ignore viewport for scissor of 481.
Assume it's still wrong in this case and take 480x272.  See #12746.
2020-05-21 11:37:36 -07:00
Henrik Rydgård 7d10a0c609 Remove a redundant framebuffer bind in CopyDisplayToOutput 2020-05-21 11:54:08 +02:00
Henrik Rydgård fabe987c8f Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step"). 2020-05-21 11:24:05 +02:00
Henrik RydgårdandGitHub f1b9943947 Merge pull request #12930 from unknownbrackets/gpu-stencil
GPU: Avoid unnecessary clear on stencil upload
2020-05-19 09:05:58 +02:00
Unknown W. Brackets 966ac4458a Vulkan: Fix leak and remove extra allocator.
The leak was because we restored immediately after initializing, and
therefore leaked several pipelines.

This allocator isn't used right now, so just using up memory.
2020-05-18 23:07:44 -07:00
Unknown W. Brackets 4ef4325fdb GPU: Avoid unnecessary clear on stencil upload.
In this common case, we've typically just bound the buffer to upload a
texture to it.  No need to start a new render pass.

This dodges #12927 but doesn't really fix the underlying issue.
2020-05-18 21:36:06 -07:00
Unknown W. Brackets 32a7e7345e GPU: Centralize framebuffer download.
And try not to use a potentially-null nvfb.  Primarily this can happen on
Direct3D backends.
2020-05-17 10:59:33 -07:00
Henrik RydgårdandGitHub 7a6489ebb4 Merge pull request #12905 from unknownbrackets/postshader
Allow chained post-processing shaders
2020-05-17 16:09:05 +02:00
Unknown W. Brackets 7910b4029a arm64jit: Track writable and non-writable pointers.
Switch uses different memory regions.  We can handle this, might as well
cleanup some const abuse.
2020-05-17 00:15:12 -07:00
Unknown W. Brackets cb739fc0b9 GPU: Allow each shader in chain to have settings.
It'll be up to the author to make the setting names make sense, though.
They'll show from first shader to last.
2020-05-16 12:33:35 -07:00
Unknown W. Brackets ff68a0d50f UI: Translate shader setting names.
Also, only save settings in ini that have names.
2020-05-16 12:33:35 -07:00
Unknown W. Brackets 1e0c5db3a9 GPU: Keep last output size in chained postshaders. 2020-05-16 12:33:35 -07:00
Unknown W. Brackets 978aa89768 GPU: Prevent infinite loops in postshader chains. 2020-05-16 12:33:35 -07:00
Unknown W. Brackets 8a626dffc5 GPU: Force nearest only for the upscaling filter.
So, if we upscale and then apply an effect, we won't use nearest on that
effect.
2020-05-16 12:33:35 -07:00
Unknown W. Brackets d9195c68b3 GPU: Move calculating render res to presentation.
Since it best understands what the first postshader wants.
2020-05-16 12:33:35 -07:00
Unknown W. Brackets 477e988a68 GPU: Allow postshaders to have parents. 2020-05-16 12:33:35 -07:00
Unknown W. Brackets b79ecc159f GPU: Update postshader uniforms for each. 2020-05-16 12:04:36 -07:00
Unknown W. Brackets 2d8ea9576a GPU: Process all postshader pipelines. 2020-05-16 12:04:36 -07:00
Unknown W. Brackets 5612f9b0af GPU: Cleanup a comment, we use shorts now. 2020-05-16 12:04:36 -07:00
Unknown W. Brackets 31ffbbf44f GPU: Move things around to be per postshader. 2020-05-16 12:04:36 -07:00
Henrik RydgårdandGitHub 67ab51bb90 Merge pull request #12901 from iota97/postshader-setting
Post shader setting uniform
2020-05-16 21:01:23 +02:00
Henrik Rydgård a63706925f Very minor optimization in PresentationCommon (don't upload the indices every frame). 2020-05-16 14:56:38 +02:00
iota97 b07874cd00 Fix per game setting and pack setting in vec4 2020-05-16 09:27:53 +02:00
iota97 a666635fa2 Post shader setting uniform 2020-05-15 18:08:52 +02:00
Henrik Rydgård 4bf92a66c5 Thin3D: use 16-bit indices. Fixes #12898. 2020-05-15 18:07:07 +02:00
Unknown W. Brackets 192198ef3b GPU: Oops, don't skip copy if stride different.
Should've tested that change better, but wanted the mip level fix...
2020-05-14 18:45:06 -07:00
Unknown W. Brackets 8b4821bc05 Draw: Small optimization to callback.
This allows the callback to say "I didn't copy, please copy for me."  This
helps when additional conversions will be applied during the copy, or a
copy can be skipped.

Also, fixed a couple cases of the wrong mip level being used.
2020-05-13 20:30:24 -07:00
Unknown W. Brackets 7024a2877d GPU: Take A off RGB565 conversion funcs. 2020-05-13 18:17:58 -07:00
Unknown W. Brackets 203da7d6e1 GPU: Use texclamp for postshader/present draw. 2020-05-13 18:15:04 -07:00
Unknown W. Brackets 22e46b51c2 GPU: Centralize DestroyAllFBOs().
This cleans up the postshader update code.
2020-05-13 18:15:04 -07:00
Unknown W. Brackets 03e3a935da GPU: Cleanup presentation flipping a bit. 2020-05-13 18:11:25 -07:00
Unknown W. Brackets 884a64b932 GPU: Cleanup skip buffer texture draws.
These will be used when a game does multiple transfers from RAM to the
screen, rather than one big one.  Wasn't clearing some state, though.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets 6b251dac4c GPU: Simplify direct render when skipping buffers.
This may have been uploading twice before, so there may be a small
performance improvement in some games now.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets 2faab0e082 GPU: Use postshader for direct VRAM draws again.
Also centralize the pixel texture code while at it.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets 762b656ea2 GPU: Use a texture directly for MakePixelTexture.
This makes it easier to do things with it.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets 2653e50200 softgpu: Avoid RB swizzle when using a postshader.
So that it can post-process correctly.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets d4f4e87e66 Vulkan: Correct postshader sampler binding.
This was causing a lost device.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets 3aa8287b74 softgpu: Enable postshader support. 2020-05-13 18:10:09 -07:00
Unknown W. Brackets 0e5b17eb9c GLES: Fix reuse of vertex data buffer.
Direct3D 11 and OpenGL had some issues with this being reused for both
renders.  Caused OpenGL to appear flipped.
2020-05-13 18:10:09 -07:00