Commit Graph

1769 Commits

Author SHA1 Message Date
Henrik Rydgård
4bcd8df079 Logging improvements and warning fixes.
(Had a super odd crash that I can't repro anymore in PPGe init...)
2020-06-22 22:46:03 +02:00
Henrik Rydgård
cd1d73436d Vulkan: Recreate the swapchain if we get too many "out of date" frames.
Should help an issue on my Linux laptop with Intel GPU.
2020-06-22 00:45:05 +02:00
Henrik Rydgård
737688a22a Annotate calls to RebindFramebuffer with their cause. 2020-06-02 09:51:38 +02:00
Henrik Rydgård
d141e0cf84
Merge pull request #12989 from hrydgard/display-layout-inset-fixes
Display layout editor inset fix/workaround
2020-06-02 00:27:45 +02:00
Henrik Rydgård
34a2713c3f Have DisplayLayoutScreen implemented insets manually. Gave up refactoring it. 2020-05-31 23:23:13 +02:00
Henrik Rydgård
8e7d2109fe VulkanQueueRunner: Fix some uninitialized struct members (not sure if it has any effect) 2020-05-31 19:35:19 +02:00
Henrik Rydgård
774bea4f33
Merge pull request #12977 from unknownbrackets/travis
Make UWP build again and build on Travis
2020-05-26 23:05:03 +02:00
Unknown W. Brackets
40a0525aea Vulkan: Ensure depth/stencil load match on Mali. 2020-05-25 12:14:03 -07:00
Unknown W. Brackets
c90c29df32 Vulkan: Trivially kill more empty steps.
Just in case we have a DONT_CARE step.
2020-05-25 12:04:18 -07:00
Unknown W. Brackets
f232352457 UWP: Include TextDrawer in main MSVC project. 2020-05-25 09:44:05 -07:00
Unknown W. Brackets
c46015e237 UWP: Fix TextDrawer with latest changes. 2020-05-25 09:44:05 -07:00
Unknown W. Brackets
24c844445e GPU: Don't allow step id to decrease at a sync.
This might've caused us to miss necessary dynamic state dirtying in games,
but only in fairly specific cases.  But it happens a lot when stepping via
the GE debugger.
2020-05-24 22:39:29 -07:00
Unknown W. Brackets
c8f8d55118 Vulkan: Correct viewport flag reset on rebind.
Can't break since we're checking two separate flags.
2020-05-24 21:36:23 -07:00
Unknown W. Brackets
8fa84fd717
Merge pull request #12968 from hrydgard/dirty-from-drawengine
Dirty state from each DrawEngine
2020-05-24 15:35:05 -04: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
Unknown W. Brackets
544576e6c2 UI: Lock around removal from dispatch queue. 2020-05-24 10:57:32 -07:00
Henrik Rydgård
bef078a3bd GLRenderManager: Removes some redundant dirtying. Preserves blend state (color mask) across clears. 2020-05-24 19:18:04 +02:00
Henrik Rydgård
23bdc40715
Merge pull request #12942 from unknownbrackets/vulkan-debug
When debugging, expose pass tags to RenderDoc
2020-05-22 09:28:09 +02:00
Unknown W. Brackets
2dbb7a598d Vulkan: Label render passes in RenderDoc/etc. 2020-05-21 08:55:36 -07:00
Henrik Rydgård
4aec10d04f Correct an issue where reformat didn't work if no renderpass was active due to the use of clear.
Also instantly convert to a clear when binding the framebuffer in cases
when we know it's the optimal thing. The QueueRunner would have later merged
anyway hopefully, but I like the simplicity of this.
2020-05-21 12:01:15 +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
8d900bb432 Vulkan: Check driver version for Adreno 5xx bug.
It's now fixed at least as of this version (possibly earlier.)
2020-05-19 22:13:15 -07:00
Unknown W. Brackets
2e05d22eb7 Vulkan: Move Harvest Moon fix to Draw::Bugs.
Also, make it so you can skip using ini settings.
2020-05-19 22:12:30 -07:00
Henrik Rydgård
e64fdfa0c3 Fix a case of pointer truncation in Vulkan on 32-bit. Fixes #12932 2020-05-19 20:53:51 +02:00
Henrik Rydgård
69c092dce1 Vulkan crashfix (pNext was uninitialized) 2020-05-19 20:52:47 +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
cb23c0c01d Vulkan: Create FB compatible pipelines in Draw.
The easiest way is just to create both and support both.  Perhaps we could
optimize out the creation of the framebuffer one.

Fixes #12928.
2020-05-18 22:45:20 -07:00
Unknown W. Brackets
396bf1d1c7 Vulkan: Expand logging of render steps a bit. 2020-05-18 21:38:36 -07:00
Henrik Rydgård
612fdb957e Revert "Experimental commit that effectively reverts the Vulkan part of #12882."
This reverts commit 29d1f97dd5.
2020-05-19 00:44:42 +02:00
Henrik Rydgård
29d1f97dd5 Experimental commit that effectively reverts the Vulkan part of #12882.
For the #12927 investigation.
2020-05-19 00:42:34 +02:00
Henrik Rydgård
d37893d1ac Track scissors like we track viewports (bugfix?). 2020-05-18 23:21:03 +02:00
Unknown W. Brackets
7fffe1d885 Vulkan: Verify scissor as well.
Vulkan spec requires both are set - we do set both, so let's catch any
mistakes.
2020-05-17 21:23:32 -07:00
Unknown W. Brackets
d295feda82 Vulkan: Add asserts to catch no viewport render.
Also assert to prevent a sync outside a frame, which goes badly.

The curRenderStep_ reset on same fb made some debugging easier, but should
not actually be hit in any real case.
2020-05-17 21:01:08 -07:00
Unknown W. Brackets
059e2e5e16 Vulkan: Stop merge at clear/touched read only.
Before we would merge on a future render after a clear, which can't be
good.  But we can safely ignore a draw to another FB that reads from a
touched FB.
2020-05-17 15:04:21 -07:00
Unknown W. Brackets
112a58cb1a Vulkan: Make merge pass a bit easier to read. 2020-05-17 14:53:37 -07:00
Unknown W. Brackets
caf9d39fec GLES: Fix invalidation of backbuffer.
And of the stencil buffer.
2020-05-17 11:06:39 -07:00
Unknown W. Brackets
47bc11a682 Vulkan: Generalize dependency tracking.
Might as well track on all steps.  We also can know if the dst was fully
written to here.
2020-05-17 11:06:39 -07:00
Unknown W. Brackets
a36239473d GLES: Add dependency tracking for render passes.
Let's try to invalidate when it's possible.  We move the invalidate to the
end of the render when detected.
2020-05-17 11:06:39 -07:00
Henrik Rydgård
9ed9468d72 Make the IsValidPBP DISC_ID check a bit more lenient. Fixes an issue where some homebrew would no longer show in the list. 2020-05-17 15:12:38 +02:00
Unknown W. Brackets
d88099e701 GLES: Specify buffer type just to be safe.
Probably doesn't matter, but maybe some drivers take it as a hint?
2020-05-16 23:48:56 -07:00
Henrik Rydgård
4bf92a66c5 Thin3D: use 16-bit indices. Fixes #12898. 2020-05-15 18:07:07 +02: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
cb0f8cb373 D3D11: Allow pixel shader uniforms in Draw. 2020-05-13 18:10:09 -07:00
Unknown W. Brackets
8fdc557040 D3D9: Attempt PS/VS 3.0 if it doesn't work with 2.
So that postshaders can work.  Downside is, if we write a UI shader that
requires 2.0, we may not notice... but I think the risk is not that high.
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
f9697c2c32 Vulkan: Allow frag shader UBO reads. 2020-05-13 18:10:09 -07:00
Unknown W. Brackets
e309712fed Vulkan: Correct missing offsets in Draw.
Was silently ignoring them.  Caused stretch in postshaders.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
ddd3af2297 Draw: Actually use the index offset parameter.
I'm not sure we need it, but having a param used only on one backend is
confusing.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
b91b7aaa0a Draw: Enable backwards compat on D3D11 shaders.
To match/support postshaders.
2020-05-13 18:07:25 -07:00