1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-23 17:52:10 +01:00

413 Commits

Author SHA1 Message Date
Joshua Ashton
0f52c85d21 [d3d9] Account for vertex declaration size for UP draws
The stride may not give us the full picture here as the stride
may not encompass the vertex declaration entirely.

Consider a vertex declaration of size 20, and a stride of 12,
we may not have covered the whole range of space the draw wants with
VertexCount * Stride.

Some games such as FF13 Lightning Returns have two float3s in the vertex decl
and draw two triangles with the last float being out of bounds. This causes
the whole vertex element to be set to 0 on NVIDIA which breaks their fullscreen passes.

Instead, take (VertexCount - 1) * Stride + VertexDeclSize for the buffer size
and pad with 0s outside of the VertexCount * Stride range.

Closes: #2046
Closes: #1908
2021-05-05 19:25:46 +01:00
Joshua Ashton
4a4b96611d
[d3d9] Only log WaitForVBlank stub once 2021-04-30 19:33:24 +01:00
Robin Kertels
525fd53bbc [d3d9] Fix FlushBuffer
Use stored mapped slice and use correct dst offset.
2021-04-23 18:06:29 +01:00
Robin Kertels
da23771df4 [d3d9] Remove unused variable 2021-04-23 18:06:29 +01:00
Robin Kertels
13f53531e5 [d3d9] Fix offset in UpdateSurface 2021-04-22 20:18:50 +01:00
Robin Kertels
0bc8b0b33a [d3d9] Align pitch to 4 2021-04-22 17:44:58 +01:00
Robin Kertels
2ba433bbd8 [d3d9+util] Remove option to disable implicit discard 2021-04-22 17:44:58 +01:00
Robin Kertels
03f5893011 [d3d9] Remove implicit discard 2021-04-22 17:44:58 +01:00
Robin Kertels
b9512a4063 [d3d9] Only copy dirty parts of managed/sysmem resources 2021-04-22 17:44:58 +01:00
Robin Kertels
4261ff6ec1 [d3d9] Use staging buffer for managed copies 2021-04-22 17:44:58 +01:00
Robin Kertels
bb11d7dee8 [d3d9] Refactor AllocUpBuffer so it can be used for managed uploads 2021-04-22 17:44:58 +01:00
Robin Kertels
8cc0c9a0f1 [d3d9] Clamp dirty buffer range
And always maintain dirty range.
2021-04-22 17:44:58 +01:00
Georg Lehmann
77d80acf75 [d3d9] respect Vector4 alignment in UpdateStateConstants 2021-04-15 22:25:11 +01:00
Georg Lehmann
1ed6edf096 [d3d9] respect Vector4 alignment in GetShaderConstants 2021-04-15 22:25:11 +01:00
Georg Lehmann
5d3b130ec8 [d3d9] respect Matrix4 alignment in ConvertMatrix 2021-04-15 22:25:11 +01:00
Philip Rebohle
c3feea2bce [dxvk] Make samplerAnisotropy feature optional 2021-04-04 20:01:30 +01:00
Philip Rebohle
0a787683b6 [dxvk] Don't require shaderStorageImageExtendedFormats
No real reason to, not sure why we did this in the first place.
2021-04-04 20:01:30 +01:00
Robin Kertels
9d0c46b9c6 [d3d9] FF: use correct vector type when dealing with tex coords 2021-04-04 16:31:39 +01:00
Robin Kertels
d17f62902d [d3d9+util] Remove AllowLockFlagReadonly option 2021-03-22 17:43:07 +00:00
Robin Kertels
dba7525954 [d3d9] Mark non default resources as dirty by default 2021-03-22 17:43:07 +00:00
Robin Kertels
8159e87331 [d3d9] Fix some issues with dirty box handling
- The dst texture in UpdateSurface must be in D3DPOOL_DEFAULT
  which doesn't do dirty tracking. So we don't need to
  call AddDirtyBox there.
- Clear DirtyBox when we flush managed textures with EvictManagedOnUnlock.
- Do nothing in AddDirtyBox for D3DPOOL_DEFAULT textures
2021-03-22 17:43:07 +00:00
Robin Kertels
cb5f8aa392 [d3d9] Properly scale dirty box 2021-03-22 17:43:07 +00:00
Robin Kertels
3f57a3a8cc [d3d9] Use buffer DirtyRange to track managed uploads 2021-03-22 17:43:07 +00:00
Robin Kertels
4f45e74d96 [d3d9] Improve naming of texture dirty flag and dirty boxes 2021-03-22 17:43:07 +00:00
Robin Kertels
6f139791d2 [d3d9] Improve naming of buffer flags and ranges 2021-03-22 17:43:07 +00:00
Philip Rebohle
e3b92bcfac
[dxvk] Add conservative rasterization mode to rasterizer state 2021-03-13 20:22:32 +01:00
Joshua Ashton
0367bf95c4 [build] MSVC check cleanup 2021-03-03 18:57:42 +01:00
Rémi Bernon
1589f516c9 [d3d9] Convert window position relative to its parent. 2021-03-03 15:49:52 +00:00
Joshua Ashton
31063252eb
[d3d9] Don't implicit discard if read locked 2021-02-28 15:06:23 +00:00
Joshua Ashton
741070785a
[d3d9] Allow implicit discard for all backed buffers 2021-02-28 13:01:00 +00:00
Joshua Ashton
6bb271b299
[d3d9] Cleanup options code 2021-02-27 20:35:37 +00:00
Joshua Ashton
8c2ec5d9c9
[d3d9] Clean up resource locking code 2021-02-27 20:15:39 +00:00
Joshua Ashton
e8fc7ea23a
[d3d9] Add d3d9.allowImplicitDiscard option 2021-02-27 20:08:57 +00:00
Joshua Ashton
50d223e614
[d3d9] Add option to use device local memory for constant buffers
Useful for testing performance.
2021-02-27 19:29:52 +00:00
Robin Kertels
eec4481ca0 [d3d9] Fix various issues in UpdateTexture
- Skip copies for empty or invalid rects
- align up the extent
- use util functions to slightly clean up the code
2021-02-27 17:31:15 +00:00
Philip Rebohle
12693b17f9 [d3d9] Use DxvkSwapchainBlitter for presentation 2021-02-27 14:54:14 +00:00
Philip Rebohle
dcf4599c98 [d3d9] Use ATTACHMENT_OPTIMAL layout for render targets
Significantly improves GPU-bound performance on RADV in a number of games.
2021-02-26 05:02:32 +00:00
Philip Rebohle
73a06aea72
[d3d9] Manually discard swap chain image view on present 2021-02-21 02:18:55 +01:00
Joshua Ashton
59816a71b9
Revert "[d3d9] Don't minimise in WM_ACTIVATEAPP"
Not needed as this was an FSHack bug.

This reverts commit d87200c4d993c7645ec7aff7810a8bb6047be235.
2021-02-19 03:14:56 +00:00
Joshua Ashton
d87200c4d9
[d3d9] Don't minimise in WM_ACTIVATEAPP
Sometimes mode-setting jank can occur and technically we'd need to re-set the mode on the next present if the game gets actually minimised.
2021-02-15 17:29:45 +00:00
Robin Kertels
ec5c324643 [d3d9] Mark generated mip maps as dirty 2021-02-14 23:55:00 +00:00
Robin Kertels
021ffe7350 [d3d9] Regenerate auto mip gen textures in UpdateTexture
.. instead of copying them
2021-02-14 23:55:00 +00:00
Robin Kertels
338f6dfb0e [d3d9] Track dirty regions for UpdateTexture 2021-02-14 23:55:00 +00:00
Philip Rebohle
4f184b3424 [d3d9] Mark images as shared if necessary 2021-02-14 04:00:02 +01:00
Joshua Ashton
fcaab6aa46
[d3d9] Expose adapter/backbuffer formats properly
Matches native behaviour in my testing.
2021-02-06 08:57:32 +00:00
Joshua Ashton
58d6f018bb
[d3d9] Allow A2R10G10B10 backbuffer format in Windowed 2021-02-06 08:43:37 +00:00
Philip Rebohle
01a511aa99
[dxvk,dxgi,d3d9] Fix shader spec constant IDs
These changed after changing the render target output swizzle stuff.
2021-01-29 16:46:01 +01:00
Joshua Ashton
0eec95843f
[d3d9] Fix warnings with query caching 2021-01-08 13:49:38 +00:00
Gabriel Ivăncescu
83f6400a07 d3d9: Send necessary messages for full-screen windows during WM_ACTIVATEAPP. 2021-01-08 13:40:34 +00:00
Robin Kertels
60a2aeb6ef [d3d9] End query before the stall heuristic flush 2021-01-07 21:19:28 +00:00