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
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å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
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
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
b79ecc159f
GPU: Update postshader uniforms for each.
2020-05-16 12:04:36 -07: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
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
fa6544b737
GPU: Cleanup leftover postshader stuff.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
cb94487a16
GPU: Move post shader handling to new class.
...
Currently, Vulkan is not working properly and direct (RAM -> output) is
not hooked up. But in general, it works.
2020-05-13 18:10:06 -07:00