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
1432cc9431
GPU: Try a bit harder to determine safe size.
2020-05-23 00:54:22 -07:00
Unknown W. Brackets
ea1f0a1195
Vulkan: Match safe size behavior on all backends.
...
Before, we would not mark a safe size for some Vulkan clears where depth
was not cleared, deviating from other backends. We also never detected
that on PowerVR. This makes things more consistent.
2020-05-23 00:25:39 -07: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
Unknown W. Brackets
49abe9ed6c
Io: Open sce_lbn references and whole ISO faster.
2020-05-21 18:58:24 -07:00
Henrik Rydgård
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ård
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ård
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ård
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