Commit graph

62 commits

Author SHA1 Message Date
Henrik Rydgård
4427cb4fc3 Add parameter to thin3d::CopyFramebufferToMemory to specify blocking mode. Not yet implemented. 2023-02-04 23:40:36 +01:00
Unknown W. Brackets
6ac67b0a99 D3D9: Fix backbuffer screenshots. 2023-01-04 22:08:50 -08:00
Henrik Rydgård
d83f84fdfd DrawContext destructor: Need to call DestroyPresets earlier. 2022-12-29 17:32:49 +01:00
Unknown W. Brackets
3e77cb1475 D3D9: Support old-style user clip planes.
This fixes negative Z issues on D3D9 in many cases, such as #14168
and #16574, but only when clip planes are supported.
2022-12-18 11:04:33 -08:00
Henrik Rydgård
675c282286 Hides the D3D9 option on Intel Xe graphics.
For whatever reason, it really doesn't work for me, while all three other
backends work perfectly. So let's just hide it.

You can still enable it through the ini file for debugging purposes.
2022-12-11 20:55:09 +01:00
Unknown W. Brackets
9cfcbc46e6 Global: Cleanup initialization/pointer checks.
Cleaning up a lot of cases of uninitialized data, unchecked return values
for failures, and similar.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets
f44852bb18 Global: Cleanup virtual/override specifiers.
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Henrik Rydgård
4dfce4f6bc Basically working MSAA on desktop GPUs! Some glitches remain. 2022-12-01 22:49:00 +01:00
Henrik Rydgård
6daecb4e2b Add check for tiling GPUs. We'll use this to inform on what MSAA modes to support. 2022-12-01 22:48:59 +01:00
Henrik Rydgård
331d024a8c Add a flags parameter to InvalidateCachedState and rename it Invalidate.
Also rename the old InvalidationFlags enum to InvalidateCallbackFlags.
2022-12-01 19:15:38 +01:00
Henrik Rydgård
d97035fffc
Merge pull request #16434 from unknownbrackets/stencil-opt
Vulkan: Use stencil export when available
2022-11-25 10:06:41 +01:00
Unknown W. Brackets
b33662550f Vulkan: Use stencil export when available.
This prevents multiple passes to upload stencil buffers.
2022-11-24 18:48:46 -08:00
Henrik Rydgård
70d1d8fa07 Replace the "GetCurrentStepId"-based state invalidation with callbacks 2022-11-24 10:52:42 +01:00
Henrik Rydgård
763afd4a8e Improve compatibility checks for stereo rendering. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
91259aaad7 Always use array textures for framebuffers in Vulkan for simplicity. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
0de12f5ca9 Some refactoring of framebuffer views, layer issues, more work. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
fb250c4b29 More multiview work 2022-10-27 11:05:58 +02:00
Henrik Rydgård
7a620962aa thin3d: Replace hint at future MRT support with basic multi layer support 2022-10-27 11:05:58 +02:00
Henrik Rydgård
90d395a10d Remove "attachment" parameter from BindFramebufferAsTexture everywhere.
Not actually useful since our framebuffer objects don't support multiple
color images, and probably won't ever need to.
2022-10-20 10:15:19 +02:00
Unknown W. Brackets
8156f6fe28 D3D9: Correct scissor state cache in Draw.
Gets reset when updating the render target.  This fixes UI scissors.
2022-10-15 12:50:27 -07:00
Unknown W. Brackets
c89cf1cde7 D3D9: Implement CopyFramebufferToMemorySync().
This works like other backends, including D3D11.  This allows us to get
rid of the old implementation and reuse more code.
2022-10-10 21:28:14 -07:00
Unknown W. Brackets
81cf76a619 D3D9: Correct sampler states for binding 1+. 2022-10-08 15:34:00 -07:00
Unknown W. Brackets
59a489f883 Draw: Add COLOR1 semantic. 2022-10-01 12:14:46 -07:00
Unknown W. Brackets
81e8336985 D3D9: Allow INTZ depth buffers more correctly.
The FBO check was wrong and just always failed.
2022-09-24 15:17:18 -07:00
Henrik Rydgård
09bcf3ec13 Unify range culling detection 2022-09-20 10:15:04 +02:00
Henrik Rydgård
1ae7c0132c Start unifying setting of the GPU feature flags, now that thin3d has feature detection. 2022-09-20 10:07:01 +02:00
Henrik Rydgård
e8aaf22163 D3D9 crashfix (flare doesn't render correctly though) 2022-09-15 17:22:09 +02:00
Henrik Rydgård
f745e94899 Allow binding "native" texture objects to thin3d 2022-09-14 22:18:35 +02:00
Henrik Rydgård
a52e62a187 Enable depth uploads on render-to-clut-buffer. Esoteric but needed for #11100. Compat flag for now. 2022-09-14 22:18:34 +02:00
Henrik Rydgård
347f7c4e5a Vulkan: Improve tagging of pipelines for debugging purposes 2022-09-08 00:47:22 +02:00
Henrik Rydgård
4da2ca0935 Implement shader blending for D3D9
This was easy, dunno why I never got around to it before..
I guess I didn't know about VPOS.

This does raise our minimum shader model requirement to ps_3_0.
2022-08-30 12:19:56 +02:00
Henrik Rydgård
d459eac891 Fix checks for depth texture support, GLES syntax errors 2022-08-24 11:26:07 +02:00
Henrik Rydgård
bd6f79e473 Fix the raster depth blit again, which I recently broke. 2022-08-17 16:52:49 +02:00
Henrik Rydgård
d0cdb360fd Remove the DX9 namespace, for consistency with the other backends 2022-08-16 21:49:16 +02:00
Henrik Rydgård
1e57a358b8 thin3d: Properly AddRef and Release shader modules from the pipeline in backends that need it 2022-08-16 15:10:48 +02:00
Henrik Rydgård
79ee532609 Fix feature checks 2022-08-09 20:05:44 +02:00
Henrik Rydgård
4ff8f85110 Forgot these... 2022-08-07 11:48:59 +02:00
Henrik Rydgård
5987c355d3 D3D9: Fix a lot of stuff 2022-08-06 18:27:04 +02:00
Henrik Rydgård
da65af832a D3D11 prep 2022-08-06 18:27:03 +02:00
Henrik Rydgård
4e89174b85 OpenGL: Fix shader depal too. 2022-08-06 18:27:03 +02:00
Henrik Rydgård
3e1ccf1311 Need a separate cap bit for stencil blits to prevent misuse on D3D9 2022-08-03 13:40:21 +02:00
Henrik Rydgård
269bff9c0b Get D3D shaders to build (though not working correctly) 2022-08-03 13:31:15 +02:00
Henrik Rydgård
d4d92e39ff Implement DrawUP for D3D11
This is so we can do simple drawing without buffer management through
thin3d on all backends.
2022-08-03 13:28:54 +02:00
Henrik Rydgård
19931c003f Clean up blit/copy feature detection. Don't need fast GPU flags for these. 2022-08-02 09:53:46 +02:00
Henrik Rydgård
46d6b43618 Support 3D textures in OpenGL ES, add feature check 2022-07-31 10:43:48 +02:00
Henrik Rydgård
a0febce3a9 Make the D3D9 backend handle stencil state in more similar ways to the others. 2022-07-30 10:47:18 +02:00
Henrik Rydgård
e43b5e2081 thin3d: Make writeMask and compareMask dynamic in all backends. D3D11 needs emulation. 2022-07-30 10:47:18 +02:00
Henrik Rydgård
4a18629e63 thin3d: Remove dual sided stencil, not supported by all backends anyway 2022-07-30 10:47:18 +02:00
Henrik Rydgård
62ded69344 Switch to using the D3D9 state cache in thin3d, to avoid confusion 2022-07-24 21:49:03 +02:00
Unknown W. Brackets
1e66a66ed7 D3D11: Correct clearing samplers. 2021-10-12 20:34:43 -07:00